企业级AI落地标杆!Spring AI + Skill架构,手把手搭建可生产金融智能体(附完整代码+架构全解析)

news2026/5/6 16:47:55
大家好我是直奔標杆专注于分享企业级AI落地实战经验今天给大家带来一篇干货满满的实战教程——从0到1搭建基于JavaSpring AISkill架构的金融智能体全程干货无废话包含完整架构图、接口定义、核心代码、启动流程可直接复用为项目、毕设或面试作品新手也能跟着上手看完必有所获导读在大模型爆发的当下90%的开发者还停留在“调用API实现简单聊天”的浅层阶段。但真正能落地到金融、医疗、政企等核心生产环境的AI系统必须满足可计算、可审计、可扩展、可管控四大核心要求。今天就带大家从头到尾完整实现一套AI智能体Skill双层架构Java/Python混合计算金融级审计的生产可用系统一起跳出“聊天demo”迈向企业级AI落地一、项目定位为什么一定要用AgentSkill架构1.1 传统大模型应用的致命缺陷金融场景必避坑在金融场景中单纯调用大模型接口根本无法满足生产需求主要有四大致命问题也是很多开发者落地失败的关键计算不准DCF估值、VaR风险价值、波动率等金融核心计算要求绝对精确而大模型的“幻觉”问题会直接导致计算失真无法用于实际业务不可管控技能无法插拔、无法覆盖更新也没有完善的审计机制不符合金融行业的管控要求性能拉胯全量加载Prompt容易出现Token爆炸、系统启动缓慢的问题影响用户体验不合规缺乏完整的日志记录、AI自动质检和风险校验无法通过金融监管审核根本无法进入核心业务环节。正是这些问题让很多大模型应用停留在demo阶段无法真正落地到金融生产环境。1.2 解决方案AI智能体 Skill工具链企业级落地核心结合金融场景的特殊性我们设计了一套清晰易懂、可落地的架构方案核心逻辑一句话讲明白LLM 大脑只负责理解用户需求、逻辑推理、决策下一步操作不做具体计算和执行Skill 专业能力包封装金融领域知识、标准化执行流程、指令规范相当于给AI大脑配备“专业知识库”Tool 执行手脚负责精确计算、脚本调用、外部接口访问解决大模型计算不准的问题Agent 指挥官统一管理Skill、调度Tool同时负责会话管理、日志记录确保系统可管控、可审计。简单总结LLM负责想Skill负责专业Tool负责干Agent负责管各司其职、协同发力完美解决传统大模型应用的痛点。1.3 项目核心亮点落地优势值得收藏这套系统之所以能作为企业级落地标杆核心亮点如下也是大家实际项目中最需要的功能双层Skill存储架构内置只读基础技能保障安全 外部可写灵活扩展适配业务迭代兼顾安全与合规Skill三阶段加载发现→激活→执行避免全量加载节省Token、提升系统启动速度Agent可插拔设计支持动态挂载技能一键切换不同类型的金融顾问适配多场景需求JavaPython混合计算发挥Java的稳定性优势借助Python的计算强项兼顾系统可靠与计算精准全链路审计完整记录对话日志搭配AI自动质检完全满足金融监管要求SSE流式输出和ChatGPT一样丝滑的交互体验避免用户长时间等待多模态支持图片、音频、文本统一处理适配更多金融交互场景DDD领域驱动架构模块解耦可维护、可扩展、可替换便于后期迭代升级。二、整体架构设计图文解析一看就懂2.1 项目模块结构图Maven多模块规范清晰项目采用Maven多模块设计分层清晰、依赖明确便于团队协作和后期维护模块结构如下建议收藏实际项目可直接复用fin-ai-agent父工程├─ fin-ai-agent-domain 领域模型层核心实体Skill、AuditLog纯业务无依赖├─ fin-ai-agent-framework 框架层定义Agent、SkillPackage核心接口系统骨架├─ fin-ai-agent-infrastructure 基础设施层Skill加载、Python执行、仓储实现支撑核心功能├─ fin-ai-agent-agents 智能体层具体智能体实现如金融顾问Agent└─ fin-ai-agent-api 接口层提供HTTP、流式、多模态接口对外提供服务依赖方向api → agents → infrastructure → framework → domain分层解耦降低依赖耦合度2.2 运行流程图两步理清新手也能看懂启动流程简单5步系统快速启动启动SpringBoot项目自动扫描Component、Service等组件完成Bean初始化并行加载双层Skill内置外部完成技能初始化创建Agent实例注入对应的Skill包注册到AgentRegistry智能体注册中心启动Web服务等待前端请求。对话流程核心流程理解系统运转逻辑前端发起HTTP请求访问接口/api/chat/stream根据请求参数中的agentName匹配对应的Agent准备上下文信息会话ID、Tool工具集Agent调用LLM进行思考分析用户需求LLM根据需求选择合适的Skill和Tool调用Python脚本执行精确计算如DCF、VaR通过SSE流式返回结果提升用户体验记录全链路审计日志完成AI自动质检确保合规。三、领域层设计Domain—— 架构的灵魂纯业务无侵入领域层是整个系统最稳定的部分只关注业务实体不依赖任何框架和技术便于后期扩展和替换。核心实体类如下可直接复制到项目中使用3.1 Skill实体类技能核心实体Data Builder public class Skill { private String name; // 技能唯一标识不可重复 private String description; // 技能描述说明技能用途 private String instructions; // 执行指令技能的具体执行逻辑 private String fullContent; // 完整SKILL.md内容存储技能完整信息 }3.2 审计日志实体合规核心实体Data Builder public class AuditLog { private String sessionId; // 会话ID关联单次对话 private String skillName; // 调用的技能名称 private String userMessage; // 用户提问内容 private String agentResponse; // AI回答内容 private String evaluation; // AI质检结果合规校验 private LocalDateTime timestamp;// 操作时间戳 private long durationMs; // 接口耗时性能监控 }设计意义纯业务逻辑封装脱离框架依赖即使后期替换框架领域层代码也无需修改保证系统的稳定性和可维护性。四、框架层设计Framework—— 系统骨架定义核心标准框架层负责定义系统的核心接口和模板类统一规范Agent和Skill的实现标准让后续开发更规范、更高效。4.1 SkillPackage接口技能包标准public interface SkillPackage { String getName(); // 获取技能包名称 String getDescription(); // 获取技能包描述 String getContent(); // 获取技能包内容 boolean isAvailable(); // 判断技能包是否可用 MapString, Object getProperties(); // 获取技能包配置属性 }4.2 SkillPackage实现类接口具体实现Data Builder public class SkillPackageImpl implements SkillPackage { private String name; private String description; private String content; private boolean available; private MapString, Object properties; }4.3 Agent核心接口智能体标准public interface Agent { String getId(); // 获取智能体ID String getName(); // 获取智能体名称 ListSkillPackage getSkillPackages(); // 获取智能体拥有的技能包 void addSkillPackage(SkillPackage skillPackage); // 新增技能包 FluxString processStream(String message, MapString, Object context); // 流式处理对话 boolean isAvailable(); // 判断智能体是否可用 }4.4 BaseAgent模板类最核心代码可直接复用BaseAgent实现了Agent接口的通用方法定义了智能体的基础逻辑后续所有智能体如金融顾问都可继承此类减少重复开发。Slf4j Getter Setter public abstract class BaseAgent implements Agent { protected String id; protected String name; protected String description; protected Listlt;SkillPackagegt; skillPackages new ArrayList(); protected ChatClient chatClientWithSkills; protected File skillsDirectory; public BaseAgent(String name, String desc, ChatClient chatClient, ChatClient.Builder builder) { this.id UUID.randomUUID().toString(); this.name name; this.description desc; // 初始化带技能的ChatClient if (builder ! null) { this.chatClientWithSkills builder.defaultSystem(desc).build(); } else { this.chatClientWithSkills chatClient; } } // 设置技能目录自动绑定SkillsTool public void setSkillsDirectory(File skillsDirectory) { this.skillsDirectory skillsDirectory; try { var skillsTool SkillsTool.builder() .addSkillsDirectory(skillsDirectory.getAbsolutePath()) .build(); // 重建带工具的客户端 this.chatClientWithSkills chatClientBuilder .defaultSystem(description) .defaultToolCallbacks(skillsTool) .build(); } catch (Exception e) { log.error(初始化SkillsTool失败, e); } } // 流式处理对话核心方法 Override public FluxString processStream(String message, MapString, Object context) { if (!isAvailable()) { return Flux.just(当前智能体不可用); } String sessionId (String) context.get(sessionId); Object tools context.get(tools); var prompt chatClientWithSkills.prompt().user(message); if (tools ! null) { prompt.tools(tools); } if (sessionId ! null) { prompt.advisors(a - a.param(ChatMemory.CONVERSATION_ID, sessionId)); } return prompt.stream().content(); } }五、基础设施层Infrastructure—— 核心支撑实现落地能力基础设施层是系统的“后勤保障”负责Skill加载、Python脚本执行、审计日志记录等核心支撑功能解决系统落地的技术难题。5.1 Skill解析器SKILL.md → Java对象将编写的SKILL.md文件技能描述文件解析为Java中的Skill对象便于系统识别和调用核心代码如下Slf4j public class SkillParser { private static final Pattern PATTERN Pattern.compile( ^---\\s*[\\r\\n]name:\\s*(.?)\\s*[\\r\\n]description:\\s*(.?)\\s*[\\r\\n]---\\s*[\\r\\n](.*)$, Pattern.DOTALL ); public static Skill parse(String content) { if (content null || content.isBlank()) return null; Matcher matcher PATTERN.matcher(content); if (matcher.find()) { return Skill.builder() .name(matcher.group(1).trim()) .description(matcher.group(2).trim()) .instructions(matcher.group(3).trim()) .fullContent(content) .build(); } log.warn(技能解析失败请检查SKILL.md格式); return null; } }5.2 双层Skill加载器核心功能安全合规负责加载内置只读技能和外部可写技能确保技能加载的安全性和灵活性启动时自动加载核心代码如下Service Slf4j public class SkillLoaderService { private final FileSystemSkillRepository repository; PostConstruct public void loadAllSkills() { // 1. 加载内置技能只读不可修改保障基础功能安全 int classpathCount repository.loadFromPath(classpath:skills/**/SKILL.md); // 2. 加载外部技能可写可扩展适配业务迭代 File dynamicDir new File(data/skills); int fileCount 0; if (dynamicDir.exists()) { fileCount repository.loadFromPath(file:data/skills/**/SKILL.md); } log.info(技能加载完成内置{}个外部{}个共{}个技能, classpathCount, fileCount, classpathCount fileCount); } }5.3 Python脚本执行器Java调Python解决计算难题金融计算如DCF、VaR用Python更高效因此封装了Python脚本执行器实现Java调用Python脚本核心代码如下Component Slf4j public class PythonScriptExecutor { private final String pythonCommand; public PythonScriptExecutor() { this.pythonCommand detectPython(); // 自动检测Python环境 } // 自动检测系统中的Python命令兼容python3和python private String detectPython() { if (testCommand(python3)) return python3; if (testCommand(python)) return python; log.warn(未检测到Python环境请先安装Python); return null; } // 执行Python脚本返回执行结果 public ScriptResult execute(String skillPath, String scriptName, String... args) { Path script Paths.get(skills, skillPath, scripts, scriptName); ListString command new ArrayList(); command.add(pythonCommand); command.add(-u); // 实时输出日志 command.add(script.toString()); Collections.addAll(command, args); try { Process process new ProcessBuilder(command) .redirectErrorStream(true) .start(); String output new String(process.getInputStream().readAllBytes(), StandardCharsets.UTF_8); int exitCode process.waitFor(); return exitCode 0 ? ScriptResult.success(output) : ScriptResult.error(output); } catch (Exception e) { log.error(执行Python脚本失败, e); return ScriptResult.error(e.getMessage()); } } }5.4 审计日志服务AI自动质检满足金融合规记录全链路对话日志并调用AI自动质检确保对话内容合规满足金融监管要求核心代码如下Service Slf4j public class AuditLogService { private final EvaluationRepository repository; private final ChatClient.Builder chatClientBuilder; private final SkillLoaderService skillLoaderService; // 记录日志并进行AI自动质检 public void logAndEvaluate(AuditLog log) { // 调用critic-agent技能自动评估对话合规性 Skill critic skillLoaderService.findByName(critic-agent).orElse(null); if (critic ! null) { String eval chatClientBuilder.build() .prompt() .system(critic.getFullContent()) .user(String.format(用户%s\nAI%s, log.getUserMessage(), log.getAgentResponse())) .call() .content(); log.setEvaluation(eval); // 设置质检结果 } repository.save(log); // 保存审计日志 } }六、智能体层Agents—— 金融顾问具体实现基于BaseAgent模板类实现具体的金融顾问智能体注入对应的技能包完成金融场景的业务适配可直接复用Component Slf4j public class SuperFinancialAdvisorAgent extends BaseAgent { public SuperFinancialAdvisorAgent( ChatClient.Builder chatClientBuilder, ResourceLoader resourceLoader) { super( 全能金融顾问大师, // 智能体名称 我提供投资分析、风控计算、组合优化、技术指标分析等金融核心服务, // 智能体描述 chatClientBuilder.build(), chatClientBuilder ); try { // 加载金融顾问对应的技能目录 Resource resource resourceLoader.getResource(classpath:skills/super-financial-advisor); setSkillsDirectory(resource.getFile()); } catch (Exception e) { log.error(金融顾问技能目录加载失败, e); } } }七、接口层API—— 流式对话接口对外提供服务封装HTTP接口提供SSE流式输出让前端能实现丝滑的对话体验核心接口代码如下可直接复制到项目中RestController RequestMapping(/api/chat) Slf4j public class ChatController { private final AgentRegistry agentRegistry; private final FinancialTools financialTools; private final AuditLogService auditLogService; // 流式对话接口核心接口 GetMapping(value /stream, produces MediaType.TEXT_EVENT_STREAM_VALUE) public SseEmitter stream( RequestParam String agentName, // 智能体名称 RequestParam String message, // 用户提问 RequestParam(defaultValue default-session) String sessionId) { // 会话ID // 设置超时时间3分钟 SseEmitter emitter new SseEmitter(180000L); // 根据名称获取智能体 Agent agent agentRegistry.getAgentByName(agentName).orElse(null); // 准备上下文信息 MapString, Object context new HashMap(); context.put(sessionId, sessionId); context.put(tools, financialTools); // 流式处理对话并返回结果 agent.processStream(message, context).subscribe( chunk - { try { emitter.send(SseEmitter.event().name(content).data(Map.of(chunk, chunk))); } catch (IOException e) { log.error(流式返回失败, e); } }, error - emitter.completeWithError(error), () - { try { emitter.send(SseEmitter.event().name(done)); } catch (IOException e) { log.error(流式结束通知失败, e); } emitter.complete(); } ); return emitter; } }八、四大金融Tool封装核心业务工具直接复用封装金融场景最常用的四大工具结合Python脚本执行实现精确计算满足金融业务需求核心代码如下Component Slf4j public class FinancialTools { private final PythonScriptExecutor executor; // DCF现金流折现估值工具参数现金流、折现率、终端增长率、流通股数 Tool(description DCF现金流折现估值参数cashFlows、discountRate、terminalGrowth、sharesOutstanding) public String calculateDcf(double[] cashFlows, double discountRate, double terminalGrowth, double sharesOutstanding) { return executor.executeDcfCalculator(cashFlows, discountRate, terminalGrowth, sharesOutstanding).getOutput(); } // 技术指标计算工具MA、RSI、MACD Tool(description 计算技术指标 MA、RSI、MACD参数股票价格数组) public String calculateTechnicalIndicators(double[] prices) { return executor.executeTechnicalIndicators(prices).getOutput(); } // VaR风险价值计算工具投资组合风险评估 Tool(description 计算投资组合VaR风险价值参数组合价值、平均收益率、标准差、置信水平) public String calculateVar(double portfolioValue, double meanReturn, double stdDev, double confidenceLevel) { return executor.executeVarCalculator(portfolioValue, meanReturn, stdDev, confidenceLevel).getOutput(); } // 马科维茨投资组合优化工具资产配置优化 Tool(description 马科维茨投资组合优化参数资产名称数组、预期收益率数组、无风险利率) public String optimizePortfolio(String[] assets, double[] expectedReturns, double riskFreeRate) { return executor.executePortfolioOptimizer(assets, expectedReturns, riskFreeRate).getOutput(); } }九、项目启动与测试新手必看快速上手按照以下步骤操作即可快速启动项目进行测试全程无坑配置application.yml根据自身需求配置OpenAI、Azure或通义千问等大模型接口准备技能文件将SKILL.md文件和对应的Python脚本放入指定的skills目录启动项目运行SkAgentApiApplication类启动SpringBoot项目测试接口访问以下地址即可进行流式对话测试替换参数即可http://localhost:8080/api/chat/stream?agentName全能金融顾问大师message分析贵州茅台DCF估值十、总结与学习建议直奔標杆共同进步本文完整实现了一套可直接上生产的AI智能体金融项目从DDD领域驱动架构设计到Skill标准化封装、Agent调度机制再到Python混合计算、全链路审计、流式接口全程打通完美解决了大模型在金融场景落地的四大痛点可计算借助Python实现精确金融计算彻底解决大模型幻觉问题可管控Skill可插拔、可覆盖、可审计满足金融管控要求可扩展模块解耦支持多Agent、多Skill便于后期业务迭代合规安全双层技能存储、全链路日志、AI自动质检符合金融监管规范。对于开发者来说这套项目不仅可以直接复用为自己的项目、毕设或面试作品更能帮助大家理解企业级AI落地的核心逻辑——脱离“聊天demo”聚焦“生产可用”。我是直奔標杆后续会持续分享更多企业级AI落地实战教程欢迎大家关注、点赞、收藏一起交流学习共同成长少走弯路直奔技术标杆如果大家在搭建过程中有任何问题欢迎在评论区留言我会一一回复一起解决问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2543531.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;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…