写点什么

Spring AI 使用教程

作者:知识浅谈
  • 2025-05-29
    广东
  • 本文字数:1621 字

    阅读完需:约 5 分钟

Spring AI 使用教程


一、环境搭建与项目初始化

  1. 创建 Spring Boot 项目

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

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

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


     <dependency>         <groupId>org.springframework.ai</groupId>         <artifactId>spring-ai-openai-spring-boot-starter</artifactId>         <version>1.0.0-M6</version>     </dependency>
复制代码


  1. 配置 API 密钥

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


   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=写一首春天的诗即可获取响应。


  1. 文档处理(ETL)

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


     <dependency>         <groupId>org.springframework.ai</groupId>         <artifactId>spring-ai-tika-document-reader</artifactId>     </dependency>
复制代码


  • 读取并转换本地文档:


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



三、高级应用场景

  1. RAG(检索增强生成)

  2. 结合本地数据与大模型,实现知识库增强问答:

  3. 使用spring-ai-spark集成讯飞星火:


       <dependency>           <groupId>com.iflytek.spark</groupId>           <artifactId>spring-ai-spark-spring-boot-starter</artifactId>           <version>1.0.0-M6-SNAPSHOT</version>       </dependency>
复制代码


 - 将本地数据向量化存储,通过语义检索生成精准答案。
复制代码


  1. MCP 服务集成

  2. 搭建 MCP(Model Context Protocol)服务:


     <dependency>         <groupId>org.springframework.ai</groupId>         <artifactId>spring-ai-starter-mcp-server-webmvc</artifactId>     </dependency>
复制代码


  • 通过 JSON-RPC 与模型交互,支持多模态输入输出。


四、实战案例:构建网页聊天应用

  1. 前端集成

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

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


     @GetMapping("/stream-chat")     public SseEmitter streamChat(@RequestParam String prompt) {         SseEmitter emitter = new SseEmitter();         chatClient.prompt(prompt).stream().subscribe(content -> {             emitter.send(content);         });         return emitter;     }
复制代码


  1. 记忆存储与会话管理

  2. 使用ChatMemory组件保存上下文:


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



五、注意事项与调试技巧

  1. 常见问题

  2. 模型响应慢:调整超时配置spring.ai.openai.chat.options.timeout=60s

  3. 中文支持不佳:在prompt中明确指定“用中文回答”。

  4. 日志调试

  5. 启用详细日志:


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



六、总结与扩展

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


  • 多模型混合调用:通过@Qualifier注解切换不同模型。

  • 工具调用:集成外部 API(如天气查询)增强 AI 能力。

  • 企业级部署:结合 Kubernetes 实现弹性扩缩容。

发布于: 刚刚阅读数: 5
用户头像

知识浅谈

关注

公众号:知识浅谈 2022-06-22 加入

🍁 作者:知识浅谈,InfoQ签约作者,CSDN博客专家/签约讲师,华为云云享专家,阿里云签约博主,51CTO明日之星 📌 擅长领域:全栈工程师、爬虫、ACM算法 💒 公众号:知识浅谈 🔥网站:vip.zsqt.cc

评论

发布
暂无评论
Spring AI 使用教程_AI_知识浅谈_InfoQ写作社区