当前位置: 首页 > news >正文

SpringAI+Deepsenk+Tool + Advisor 架构实践和深入刨析

Spring AI + DeepSeek + Tool + Advisor:架构实践与深入剖析

一、Spring AI 核心架构概览

Spring AI 是 Spring 官方推出的 AI 应用开发框架,在 2025 年 5 月发布了 1.0 正式版本。其核心设计理念是抽象与统一——为开发者提供一套标准化的 API,屏蔽不同大模型厂商(OpenAI、DeepSeek、Anthropic、Google等)的接口差异。

1.1 整体架构层次

text

┌─────────────────────────────────────────────────────────┐ │ Application Layer │ │ (ChatClient / RestController / Service) │ ├─────────────────────────────────────────────────────────┤ │ Advisor Chain │ │ (MessageChatMemoryAdvisor | ToolCallAdvisor | ...) │ ├─────────────────────────────────────────────────────────┤ │ ChatModel Abstraction │ │ (统一接口: call / stream / tool calling) │ ├─────────────────────────────────────────────────────────┤ │ Provider Adapters │ │ (DeepSeek | OpenAI | Anthropic | ...) │ └─────────────────────────────────────────────────────────┘

1.2 核心组件

组件职责关键接口
ChatModel大语言模型交互的统一抽象call(Prompt)stream(Prompt)
ChatClient流式构建器,支持链式调用prompt()advisors()tools()
Advisor横切关注点(记忆、日志、重试)aroundCall()
Tool/Function Calling模型调用外部API的能力@Tool 注解

二、DeepSeek 接入实践

2.1 依赖配置

xml

<properties> <spring-boot.version>3.3.4</spring-boot.version> <spring-ai.version>1.0.0</spring-ai.version> </properties> <dependencies> <!-- DeepSeek Starter --> <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-starter-model-deepseek</artifactId> <version>${spring-ai.version}</version> </dependency> <!-- WebFlux for streaming support --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-webflux</artifactId> </dependency> </dependencies>

注意:Spring AI 要求 JDK 17+,因为 Spring Boot 3.x 基于 Spring Framework 6。

2.2 配置详解

yaml

spring: ai: deepseek: api-key: ${DEEPSEEK_API_KEY} # 从环境变量读取,增强安全性 base-url: "https://api.deepseek.com" chat: options: model: deepseek-chat # 或 deepseek-reasoner temperature: 0.8 # 0-2,越高越随机 max-tokens: 4096 top-p: 1.0 # 重试配置
http://www.jsqmd.com/news/622608/

相关文章:

  • 2026 企微私域运营超全攻略(四):数据报表自动化,从企微API到BI看板
  • 读2025世界前沿技术发展报告38高性能纤维及其复合材料
  • PCB板子走线的线宽如何设置
  • WeMod增强器终极指南:零成本解锁专业版功能与高级用户体验
  • 图片优化大师:专业高效无损压缩PNGJPEG等图片,提升传输与存储效率,节省磁盘空间
  • InstructPix2Pix代码实例:Python API调用方法详解
  • Qwen3-4B-Thinking-2507-GPT-5-Codex-Distill-GGUF效果实测:JSON Schema生成+校验代码自动编写
  • Sunshine游戏流媒体服务器实战排错指南:从编码故障到系统优化的深度解析
  • 摄像机的调节参数和本地功能
  • 【Java Loom响应式转型权威指南】:20年架构师亲授5大避坑法则与3套落地模板
  • 深入分析量子科技解锁新算力
  • nRF52 DK开发实战:从硬件解析到VS Code项目调试
  • Claude Code使用:如何写一个好的 CLAUDE.md
  • 闲置购物卡回收攻略:轻松变现你的沃尔玛购物卡! - 团团收购物卡回收
  • 分析惠驰舒适家实力如何,江苏地区其性价比高不高 - 工业推荐榜
  • Qt桌面应用集成AI:开发一个带PyTorch模型推理功能的跨平台图像处理软件
  • Tessent MBIST实战:从Memory分组策略到DFTspec优化配置
  • Python3.11镜像场景应用:一键搭建AI实验环境,支持PyTorch/TensorFlow
  • Qwen-Image-Edit自动化测试:图像质量评估体系构建
  • Cassandra集群配置详解:从cassandra.yaml文件到种子节点(seed)的保姆级解读
  • Listen1音乐聚合:打破平台壁垒,一站式畅听全网免费音乐
  • Qwen2.5-7B-Instruct快速入门:vLLM部署+Chainlit界面一步到位
  • 终极魔兽争霸3兼容性解决方案:WarcraftHelper 完全指南 [特殊字符]
  • 如何快速上手空洞骑士模组管理:Lumafly的完整入门指南
  • OBS多平台直播插件完整指南:如何一键实现多平台同步推流
  • SMUDebugTool:解锁AMD Ryzen处理器性能潜力的专业调试工具
  • Harness engineering 深度解析
  • 零流程税时代:效率取代规模,成为终极竞争壁垒
  • NVIDIA Profile Inspector深度解析:解锁显卡驱动隐藏性能的终极解决方案
  • 【数据结构与算法】第37篇:图论(一):图的存储结构(邻接矩阵与邻接表)