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 依赖配置xmlproperties spring-boot.version3.3.4/spring-boot.version spring-ai.version1.0.0/spring-ai.version /properties dependencies !-- DeepSeek Starter -- dependency groupIdorg.springframework.ai/groupId artifactIdspring-ai-starter-model-deepseek/artifactId version${spring-ai.version}/version /dependency !-- WebFlux for streaming support -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-webflux/artifactId /dependency /dependencies注意:Spring AI 要求 JDK 17+,因为 Spring Boot 3.x 基于 Spring Framework 6。2.2 配置详解yamlspring: 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 # 重试配置