Phi-3-mini-128k-instruct实战案例:用Chainlit构建面向工程师的Linux命令解释器

news2026/3/19 5:55:38
Phi-3-mini-128k-instruct实战案例用Chainlit构建面向工程师的Linux命令解释器1. 引言当大模型遇上Linux命令行对于很多工程师来说Linux命令行既是强大的工具也是偶尔让人头疼的“黑盒子”。特别是当你面对一个陌生的命令或者需要组合多个命令完成复杂任务时往往需要反复查阅手册、搜索资料这个过程既耗时又容易出错。想象一下这样的场景你需要在服务器上批量处理日志文件但记不清awk和sed的复杂语法或者你想监控系统资源但不确定该用top、htop还是glances。这时候如果有个“命令行助手”能随时解答你的疑问那该多方便今天我就来分享一个实战项目基于Phi-3-mini-128k-instruct模型用Chainlit快速搭建一个专门为工程师服务的Linux命令解释器。这个工具不仅能解释命令的含义还能根据你的需求生成合适的命令甚至分析命令执行结果。2. 为什么选择Phi-3-mini-128k-instruct2.1 轻量级但能力不俗Phi-3-mini-128k-instruct是个38亿参数的“小个子”模型别看它体积小能力可不弱。我在实际测试中发现它在代码理解和指令跟随方面表现相当出色。这个模型有几个特点特别适合我们的需求轻量高效38亿参数意味着它可以在普通配置的服务器上流畅运行响应速度快128K上下文能处理很长的对话历史适合多轮问答场景指令微调专门针对“理解指令并执行”做了优化正好符合我们“解释命令”的需求开源免费完全开源不用担心授权问题2.2 与其他模型的对比你可能想问为什么不用ChatGPT或者Claude我对比过几个方案模型参数规模部署难度响应速度成本GPT-4万亿级云端API中等高Claude 3千亿级云端API中等高Phi-3-mini38亿本地部署快免费Llama 3 8B80亿本地部署中等免费对于命令行解释这种相对“垂直”的任务Phi-3-mini完全够用。它就像个专门研究Linux命令的“专家”虽然知识面不如GPT-4广但在自己擅长的领域表现很好。3. 环境准备与快速部署3.1 基础环境要求在开始之前确保你的环境满足以下要求操作系统Ubuntu 20.04或更高版本其他Linux发行版也可Python版本Python 3.8内存至少8GB RAM模型本身约8GBGPU可选有GPU会更快至少4GB显存磁盘空间15GB以上可用空间如果你用的是云服务器选择带GPU的实例效果会更好。我用的是4核CPU、16GB内存、8GB显存的配置运行起来很流畅。3.2 一键部署Phi-3-mini部署过程比想象中简单。我整理了一个完整的部署脚本你只需要按步骤执行# 1. 创建项目目录 mkdir linux-command-assistant cd linux-command-assistant # 2. 创建虚拟环境推荐 python -m venv venv source venv/bin/activate # 3. 安装基础依赖 pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 pip install vllm pip install chainlit pip install fastapi uvicorn # 4. 下载模型如果网络慢可以用镜像源 # 这里我们使用vLLM来加载模型如果你遇到网络问题可以尝试使用国内的镜像源pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple3.3 启动模型服务模型服务是整个系统的核心。我们用vLLM来部署它能提供高效的推理服务# server.py - 模型服务端 from vllm import LLM, SamplingParams import uvicorn from fastapi import FastAPI from pydantic import BaseModel app FastAPI() # 加载模型 print(正在加载Phi-3-mini-128k-instruct模型...) llm LLM( modelmicrosoft/Phi-3-mini-128k-instruct, tensor_parallel_size1, # 单GPU gpu_memory_utilization0.8, max_model_len128000 ) print(模型加载完成) class ChatRequest(BaseModel): prompt: str max_tokens: int 512 temperature: float 0.7 app.post(/generate) async def generate_text(request: ChatRequest): sampling_params SamplingParams( temperaturerequest.temperature, max_tokensrequest.max_tokens, stop[|endoftext|, |end|] ) outputs llm.generate([request.prompt], sampling_params) return {response: outputs[0].outputs[0].text} if __name__ __main__: uvicorn.run(app, host0.0.0.0, port8000)保存为server.py然后运行python server.py你会看到类似这样的输出说明模型加载成功正在加载Phi-3-mini-128k-instruct模型... 模型加载完成 INFO: Started server process [12345] INFO: Waiting for application startup. INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:80004. 用Chainlit打造交互式前端4.1 Chainlit是什么Chainlit是一个专门为AI应用设计的开源框架它能快速构建漂亮的聊天界面。相比自己写前端用Chainlit能节省大量时间。它的几个优点让我选择了它开箱即用几行代码就能创建完整的聊天应用支持流式输出模型生成内容时能实时显示体验更好丰富的UI组件支持代码高亮、文件上传、Markdown渲染等易于扩展可以自定义样式和功能4.2 创建Chainlit应用接下来我们创建Chainlit应用让它连接我们的模型服务# app.py - Chainlit前端应用 import chainlit as cl import requests import json # 模型服务的地址 MODEL_API http://localhost:8000/generate cl.on_chat_start async def start_chat(): 聊天开始时的初始化 await cl.Message( content 你好我是你的Linux命令助手。\n\n我可以\n- 解释Linux命令的用法\n- 根据需求生成命令\n- 分析命令执行结果\n- 提供最佳实践建议\n\n试试问我ls -la是什么意思 或者 如何批量重命名文件 ).send() cl.on_message async def main(message: cl.Message): 处理用户消息 user_input message.content # 显示思考中的状态 msg cl.Message(content) await msg.send() try: # 调用模型API response requests.post( MODEL_API, json{ prompt: f|user|\n{user_input}\n|assistant|, max_tokens: 1024, temperature: 0.7 }, timeout60 ) if response.status_code 200: result response.json() answer result[response] # 流式输出增强用户体验 for chunk in answer.split(): await msg.stream_token(chunk ) await asyncio.sleep(0.05) await msg.update() else: await msg.update(content抱歉模型服务暂时不可用请稍后再试。) except Exception as e: await msg.update(contentf出错了{str(e)}) if __name__ __main__: # 启动Chainlit应用 cl.run(app, host0.0.0.0, port7860)4.3 优化提示词工程为了让模型更好地理解我们的需求我设计了一套专门的提示词模板# prompt_templates.py - 提示词模板 class PromptTemplates: Linux命令解释器的提示词模板 staticmethod def command_explanation(command): 解释命令的模板 return f你是一个专业的Linux系统专家。请详细解释以下命令 命令{command} 请按以下格式回答 1. **命令功能**这个命令是做什么的 2. **参数说明**各个参数的含义是什么 3. **使用示例**给出2-3个实用的例子 4. **注意事项**使用时需要注意什么 5. **相关命令**还有哪些类似的命令 用中文回答语言要通俗易懂。 staticmethod def command_generation(requirement): 根据需求生成命令的模板 return f用户想要{requirement} 请生成合适的Linux命令并解释 1. **推荐命令**最合适的命令是什么 2. **命令详解**为什么选择这个命令 3. **完整示例**给出完整的命令示例 4. **备选方案**还有哪些替代方案 5. **安全提示**执行前需要注意什么 用中文回答确保命令准确可用。 staticmethod def output_analysis(command, output): 分析命令输出的模板 return f用户执行了命令{command} 得到了以下输出{output}请分析 1. **输出含义**这个输出表示什么 2. **关键信息**输出中有哪些重要信息 3. **问题诊断**如果有错误问题可能是什么 4. **解决建议**应该如何解决 5. **优化建议**如何改进命令或配置 用中文回答要具体明确。在实际调用时我们可以根据用户的问题类型选择合适的模板# 在app.py中优化消息处理 cl.on_message async def main(message: cl.Message): user_input message.content # 判断问题类型并选择模板 if 是什么意思 in user_input or 解释 in user_input: prompt PromptTemplates.command_explanation(user_input) elif 如何 in user_input or 怎么 in user_input: prompt PromptTemplates.command_generation(user_input) elif 输出 in user_input or 结果 in user_input: prompt PromptTemplates.output_analysis(user_input, ) else: prompt f|user|\n{user_input}\n|assistant| # 调用模型...5. 实战效果展示5.1 场景一解释复杂命令让我展示几个实际的使用例子。首先试试解释一个相对复杂的find命令用户提问请解释 find /var/log -name *.log -mtime 7 -exec rm {} \; 这个命令助手回答这是一个用于查找并删除旧日志文件的命令让我详细解释 1. **命令功能** 在/var/log目录及其子目录中查找所有扩展名为.log、且修改时间超过7天的文件然后删除它们。 2. **参数说明** - find /var/log从/var/log目录开始查找 - -name *.log只查找文件名匹配*.log的文件 - -mtime 7查找修改时间超过7天的文件 - -exec rm {} \;对找到的每个文件执行rm删除命令 - {}会被替换为找到的文件名 - \;表示命令结束 3. **使用示例** bash # 先查看会删除哪些文件安全做法 find /var/log -name *.log -mtime 7 # 删除找到的文件 find /var/log -name *.log -mtime 7 -exec rm {} \; # 如果要删除空目录可以加-depth参数 find /var/log -name *.log -mtime 7 -exec rm {} \; -depth注意事项这个命令会直接删除文件没有确认提示建议先用不带-exec的部分查看会影响到哪些文件-exec后面的命令必须以\;结束确保你有执行删除操作的权限相关命令locate快速查找文件但基于数据库which查找可执行文件的位置whereis查找二进制文件、源码和手册页### 5.2 场景二根据需求生成命令 **用户提问**我想监控系统的CPU和内存使用情况应该用什么命令**助手回答**根据你的需求我有几个推荐推荐命令htop这是最直观的实时监控工具彩色界面支持鼠标操作可以排序进程、查看树状结构命令详解# 安装htop如果还没安装 sudo apt install htop # Ubuntu/Debian sudo yum install htop # CentOS/RHEL # 使用htop htop完整示例# 查看特定用户的进程 htop -u username # 只显示某个进程 htop -p PID # 在htop中你可以 # - F2进入设置 # - F3搜索进程 # - F4过滤进程 # - F5树状显示 # - F6按列排序 # - F9杀死进程 # - F10退出备选方案top系统自带无需安装top # 按1显示所有CPU核心 # 按M按内存排序 # 按P按CPU排序glances更全面的监控# 安装 pip install glances # 使用 glances简单查看# CPU使用率 mpstat 1 # 每秒刷新一次 # 内存使用 free -h # 磁盘IO iostat 1安全提示htop需要安装确保有网络权限生产环境建议使用top或glances监控时注意不要过度消耗系统资源### 5.3 场景三分析命令输出 **用户提问**我执行了 df -h得到以下输出请帮我分析 Filesystem Size Used Avail Use% Mounted on /dev/sda1 50G 40G 10G 80% / /dev/sdb1 100G 90G 10G 90% /data tmpfs 3.9G 0 3.9G 0% /dev/shm**助手回答**我来分析你的磁盘使用情况输出含义 这个输出显示了系统中各个文件系统的磁盘使用情况。关键信息/dev/sda1根分区50G总容量已用40G剩余10G使用率80%/dev/sdb1/data分区100G总容量已用90G剩余10G使用率90%tmpfs内存文件系统3.9G总容量完全未使用问题诊断严重警告两个分区使用率都超过80%特别是/data分区达到90%当磁盘使用率超过80%时系统性能可能下降超过90%时可能导致程序崩溃或无法写入解决建议# 1. 查找大文件 # 在根目录查找大于100M的文件 sudo find / -type f -size 100M -exec ls -lh {} \; # 在/data目录查找大文件 sudo find /data -type f -size 100M -exec ls -lh {} \; # 2. 查看目录大小 sudo du -h / --max-depth1 | sort -hr sudo du -h /data --max-depth1 | sort -hr # 3. 清理日志文件 sudo journalctl --vacuum-time7d # 清理7天前的日志 # 4. 清理包缓存 sudo apt clean # Ubuntu/Debian sudo yum clean all # CentOS/RHEL优化建议设置磁盘使用监控告警考虑扩容磁盘或迁移数据定期清理不必要的文件使用ncdu工具可视化查看磁盘使用# 安装ncdu sudo apt install ncdu # 使用 ncdu /## 6. 进阶功能与优化 ### 6.1 添加命令执行功能可选 如果你想让助手更强大可以添加命令执行功能。**注意这需要谨慎处理安全问题** python # command_executor.py - 安全的命令执行器 import subprocess import shlex class CommandExecutor: 安全的命令执行器 # 允许执行的命令白名单 SAFE_COMMANDS { ls, pwd, whoami, date, uptime, df, du, free, top, htop, ps, netstat, ss, ifconfig, ip } staticmethod def is_safe_command(command): 检查命令是否安全 # 获取命令的基础部分第一个单词 base_cmd command.strip().split()[0] if command.strip() else return base_cmd in CommandExecutor.SAFE_COMMANDS staticmethod def execute_safe(command, timeout10): 执行安全的命令 if not CommandExecutor.is_safe_command(command): return 错误该命令不在允许执行的白名单中 try: # 使用shlex分割命令参数 args shlex.split(command) # 执行命令 result subprocess.run( args, capture_outputTrue, textTrue, timeouttimeout, shellFalse ) if result.returncode 0: return result.stdout else: return f命令执行失败\n{result.stderr} except subprocess.TimeoutExpired: return 错误命令执行超时 except Exception as e: return f执行出错{str(e)}然后在Chainlit应用中集成# 在app.py中添加 from command_executor import CommandExecutor cl.on_message async def main(message: cl.Message): user_input message.content # 如果用户想执行命令以执行开头 if user_input.startswith(执行): command user_input[3:].strip() output CommandExecutor.execute_safe(command) # 先显示执行结果 await cl.Message(contentf执行结果\n\n{output}\n).send() # 然后让模型分析结果 prompt PromptTemplates.output_analysis(command, output) # 调用模型分析...6.2 添加历史记录功能为了让助手能记住对话历史我们可以添加简单的上下文管理# context_manager.py - 对话上下文管理 from collections import deque class ConversationContext: 管理对话上下文 def __init__(self, max_history10): self.history deque(maxlenmax_history) def add_message(self, role, content): 添加消息到历史 self.history.append({role: role, content: content}) def get_context_prompt(self, new_query): 构建包含上下文的提示词 context for msg in self.history: role 用户 if msg[role] user else 助手 context f{role}{msg[content]}\n\n context f用户{new_query}\n助手 return context def clear(self): 清空历史 self.history.clear() # 在Chainlit中使用 cl.on_chat_start async def start_chat(): # 初始化上下文 cl.user_session.set(context, ConversationContext()) # ... cl.on_message async def main(message: cl.Message): context cl.user_session.get(context) # 添加上下文到提示词 full_prompt context.get_context_prompt(user_input) # 调用模型... # 保存到历史 context.add_message(user, user_input) context.add_message(assistant, answer)6.3 性能优化建议在实际使用中我总结了一些优化经验启用批处理vLLM支持批处理可以同时处理多个请求# 在server.py中优化 llm LLM( modelmicrosoft/Phi-3-mini-128k-instruct, tensor_parallel_size1, gpu_memory_utilization0.8, max_model_len128000, enable_prefix_cachingTrue, # 启用前缀缓存 max_num_batched_tokens4096 # 批处理大小 )使用量化如果资源紧张可以使用4位或8位量化# 使用bitsandbytes进行4位量化 llm LLM( modelmicrosoft/Phi-3-mini-128k-instruct, quantizationawq, # 或 gptq # ... )添加缓存对常见问题添加缓存减少模型调用import hashlib from functools import lru_cache lru_cache(maxsize100) def get_cached_response(prompt_hash): # 从缓存获取或调用模型 pass7. 总结与展望7.1 项目总结通过这个实战项目我们完成了一个功能完整的Linux命令解释器。回顾一下我们实现的功能核心能力准确解释Linux命令的用法和参数根据需求生成合适的命令组合分析命令执行结果并提供建议支持多轮对话保持上下文技术栈后端Phi-3-mini-128k-instruct vLLM前端Chainlit交互界面部署本地或云服务器一键部署实际价值为工程师提供24/7的命令行助手降低Linux学习门槛提高工作效率减少错误完全免费可私有化部署7.2 遇到的挑战与解决在开发过程中我遇到了一些挑战也找到了解决方案挑战1模型对某些专业命令理解不够准确解决通过提示词工程提供更多上下文和示例挑战2长对话时上下文丢失解决实现对话历史管理保持连贯性挑战3响应速度有时较慢解决启用vLLM的批处理和缓存功能挑战4安全性问题解决实现命令白名单禁止危险操作7.3 未来改进方向这个项目还有很多可以改进的地方功能扩展支持更多Shellbash、zsh、fish等添加命令自动补全建议集成系统监控和告警性能优化实现模型量化降低资源消耗添加分布式部署支持优化提示词减少token消耗用户体验添加WebSocket支持实现更流畅的交互支持文件上传和结果导出添加主题切换和个性化设置部署简化提供Docker镜像一键部署支持Kubernetes集群部署添加Web管理界面7.4 开始你的实践如果你也想搭建自己的命令解释器我建议从简单开始第一步先部署基础版本体验基本功能第二步根据自己的需求添加特定领域的命令支持第三步优化提示词让回答更符合你的使用习惯第四步考虑安全性和性能优化这个项目的代码已经足够完整你可以直接使用也可以根据自己的需求进行修改。最重要的是动手实践在过程中你会学到很多。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2425410.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…