Spring AI 使用教程

Spring AI 使用教程(2025年5月24日更新)


一、环境搭建与项目初始化
  1. 创建Spring Boot项目

    • 使用IDEA或Spring Initializr创建项目,选择JDK 17或更高版本(推荐21)。

    • 勾选依赖项:Spring WebLombok,Maven或Gradle作为构建工具。

    • 添加Spring AI依赖(以OpenAI为例):

      xml 复制代码
      <dependency>
          <groupId>org.springframework.ai</groupId>
          <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
          <version>1.0.0-M6</version>
      </dependency>
  2. 配置API密钥

    application.yml中配置模型服务(以DeepSeek为例):

    yaml 复制代码
    spring:
      ai:
        openai:
          api-key: sk-your-api-key
          base-url: https://api.deepseek.com/v1
          chat:
            options:
              model: deepseek-chat
    ```<sup>5</sup><sup>8</sup><sup>11</sup>

二、基础功能实现
  1. 调用大模型生成文本

    • 通过ChatClient发送请求:

      java 复制代码
      @RestController
      public class ChatController {
          @Autowired
          private ChatClient chatClient;
          
          @GetMapping("/chat")
          public String chat(@RequestParam String prompt) {
              return chatClient.prompt(prompt).call().content();
          }
      }
    • 启动应用后,访问http://localhost:8080/chat?prompt=写一首春天的诗即可获取响应。

  2. 文档处理(ETL)

    • 添加文档处理依赖(如PDF解析):

      xml 复制代码
      <dependency>
          <groupId>org.springframework.ai</groupId>
          <artifactId>spring-ai-tika-document-reader</artifactId>
      </dependency>
    • 读取并转换本地文档:

      java 复制代码
      DocumentReader reader = new TikaDocumentReader();
      List<Document> docs = reader.read("file:///data.pdf");

三、高级应用场景
  1. RAG(检索增强生成)

    • 结合本地数据与大模型,实现知识库增强问答:
      • 使用spring-ai-spark集成讯飞星火:

        xml 复制代码
        <dependency>
            <groupId>com.iflytek.spark</groupId>
            <artifactId>spring-ai-spark-spring-boot-starter</artifactId>
            <version>1.0.0-M6-SNAPSHOT</version>
        </dependency>
      • 将本地数据向量化存储,通过语义检索生成精准答案。

  2. MCP服务集成

    • 搭建MCP(Model Context Protocol)服务:

      xml 复制代码
      <dependency>
          <groupId>org.springframework.ai</groupId>
          <artifactId>spring-ai-starter-mcp-server-webmvc</artifactId>
      </dependency>
    • 通过JSON-RPC与模型交互,支持多模态输入输出。


四、实战案例:构建网页聊天应用
  1. 前端集成

    • 使用Thymeleaf或React/Vue搭建前端页面,通过WebSocket或SSE与后端通信。

    • 示例代码片段(SSE推送):

      java 复制代码
      @GetMapping("/stream-chat")
      public SseEmitter streamChat(@RequestParam String prompt) {
          SseEmitter emitter = new SseEmitter();
          chatClient.prompt(prompt).stream().subscribe(content -> {
              emitter.send(content);
          });
          return emitter;
      }
  2. 记忆存储与会话管理

    • 使用ChatMemory组件保存上下文:

      java 复制代码
      @Bean
      public ChatMemory chatMemory() {
          return new InMemoryChatMemory(50); // 保留最近50轮对话
      }

五、注意事项与调试技巧
  1. 常见问题

    • 模型响应慢:调整超时配置spring.ai.openai.chat.options.timeout=60s
    • 中文支持不佳:在prompt中明确指定"用中文回答"。
  2. 日志调试

    • 启用详细日志:

      yaml 复制代码
      logging:
        level:
          org.springframework.ai: DEBUG

六、总结与扩展

Spring AI通过模块化设计,支持快速接入主流模型(如DeepSeek、讯飞星火)和高级功能(RAG、MCP)。开发者可结合业务需求扩展以下场景:

  • 多模型混合调用 :通过@Qualifier注解切换不同模型。
  • 工具调用:集成外部API(如天气查询)增强AI能力。
  • 企业级部署:结合Kubernetes实现弹性扩缩容。
相关推荐
梦梦代码精1 小时前
从工程视角拆解 BuildingAI:一个企业级开源智能体平台的架构设计与实现
人工智能·gitee·开源·github
supericeice1 小时前
复杂项目管理如何用好大模型:RAG、知识图谱与AI编排的落地框架
人工智能·知识图谱
AI机器学习算法6 小时前
深度学习模型演进:6个里程碑式CNN架构
人工智能·深度学习·cnn·大模型·ai学习路线
Ztopcloud极拓云视角6 小时前
从 OpenRouter 数据看中美 AI 调用量反转:统计口径、模型路由与多云应对方案
人工智能·阿里云·大模型·token·中美ai
AI医影跨模态组学7 小时前
如何将深度学习MTSR与膀胱癌ITGB8/TGF-β/WNT机制建立关联,并进一步解释其与患者预后及肿瘤侵袭、免疫抑制的生物学联系
人工智能·深度学习·论文·医学影像
搬砖的前端7 小时前
AI编辑器开源主模型搭配本地模型辅助对标GPT5.2/GPT5.4/Claude4.6(前端开发专属)
人工智能·开源·claude·mcp·trae·qwen3.6·ops4.6
Python私教7 小时前
Hermes Agent 安全加固与生态扩展:2026-04-23 更新解析
人工智能
饼干哥哥7 小时前
Kimi K2.6 干成了Claude Design国产版,一句话生成电影级的动态品牌网站
人工智能
肖有米XTKF86468 小时前
带货者精品优选模式系统的平台解析
人工智能·信息可视化·团队开发·csdn开发云
天天进步20158 小时前
打破沙盒限制:OpenWork 如何通过权限模型实现安全的系统级调用?
人工智能·安全