尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

使用Spring AI流式调用DeepSeek

使用Spring AI流式调用DeepSeek
📅 发布时间:2026/6/18 21:03:15

1.新建MAVEN项目并引入依赖(MAVEN3.5+ JDK21+)

 1  <dependencies>
 2         <dependency>
 3             <groupId>org.springframework.boot</groupId>
 4             <artifactId>spring-boot-starter-web</artifactId>
 5             <version>3.4.11</version>
 6         </dependency>
 7         <dependency>
 8             <groupId>org.mybatis.spring.boot</groupId>
 9             <artifactId>mybatis-spring-boot-starter</artifactId>
10             <version>3.0.5</version>
11         </dependency>
12         <dependency>
13             <groupId>com.mysql</groupId>
14             <artifactId>mysql-connector-j</artifactId>
15             <version>9.4.0</version>
16             <scope>runtime</scope>
17         </dependency>
18         <dependency>
19             <groupId>org.projectlombok</groupId>
20             <artifactId>lombok</artifactId>
21             <version>1.18.42</version>
22             <optional>true</optional>
23         </dependency>
24         <dependency>
25             <groupId>org.springframework.boot</groupId>
26             <artifactId>spring-boot-starter-test</artifactId>
27             <version>3.5.7</version>
28             <scope>test</scope>
29         </dependency>
30         <dependency>
31             <groupId>org.springframework.ai</groupId>
32             <artifactId>spring-ai-core</artifactId>
33             <version>1.0.0-M6</version>
34         </dependency>
35         <dependency>
36             <groupId>org.springframework.ai</groupId>
37             <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
38             <version>1.0.0-M6</version>
39         </dependency>
40     </dependencies>

2.application.yml配置文件,注意将api-key必须替换成你自己的真实key,数据库可暂时不替换成真实配置。

server:port: 8080
spring:datasource:url: jdbc:mysql://localhost:3306/your_databaseusername: your_usernamepassword: your_passworddriver-class-name: com.mysql.cj.jdbc.Driverai:openai:api-key: your_keybase-url: https://api.deepseek.comchat:options:model: deepseek-reasonertemperature: 0.7stream: true

3.代码

 1 import lombok.extern.slf4j.Slf4j;
 2 import org.springframework.ai.chat.client.ChatClient;
 3 import org.springframework.ai.chat.messages.AssistantMessage;
 4 import org.springframework.ai.chat.messages.Message;
 5 import org.springframework.ai.chat.messages.UserMessage;
 6 import org.springframework.ai.chat.prompt.Prompt;
 7 import org.springframework.http.MediaType;
 8 import org.springframework.web.bind.annotation.GetMapping;
 9 import org.springframework.web.bind.annotation.RequestMapping;
10 import org.springframework.web.bind.annotation.RequestParam;
11 import org.springframework.web.bind.annotation.RestController;
12 import reactor.core.publisher.Flux;
13 
14 import java.util.ArrayList;
15 import java.util.Collections;
16 import java.util.List;
17 
18 @Slf4j
19 @RestController
20 @RequestMapping("/deepseek")
21 public class DeepSeekController {
22 
23     private final static List<Message> messageList = Collections.synchronizedList(new ArrayList<>());
24 
25     private final ChatClient chatClient;
26 
27     public DeepSeekController(ChatClient.Builder builder) {
28         this.chatClient = builder.build();
29     }
30 
31     @GetMapping(value = "/chat", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
32     public Flux<String> chat(@RequestParam("prompt") String q) {
33         messageList.add(new UserMessage(q));
34         Prompt prompt = new Prompt(messageList);
35         StringBuilder result = new StringBuilder();
36         return chatClient.prompt(prompt).stream()
37                 .content()
38                 .doOnNext(content -> {
39                     log.info("content: {}", content);
40                     result.append(content);
41                 }).doOnComplete(() -> {
42                     log.info("result:" + System.lineSeparator() + " {}", result);
43                     messageList.add(new AssistantMessage(result.toString()));
44                 });
45     }
46 
47 }

 

相关新闻

  • 机器学习:逻辑回归 - 实践
  • 读书笔记摘抄:恋爱
  • 大模型结构化输出json, 最新方法更方便

最新新闻

  • 电脑日常维护与故障处理,《保姆级教程》
  • 术语俗话 --- 防火墙/IDS/IPS/WAF
  • 2026 沈阳翡翠回收横评!跑遍沈河和平,靠谱商家盘点 - 逸程
  • 鸣潮智能管家:重新定义你的游戏时间管理艺术
  • drand核心概念解析:阈值签名与BLS12-381密码学原理
  • 2026聊城放心贵金属回收,CCIC 中检授权收黄金回收铂金回收白银回收持证实体门店 - 诚金汇钻回收公司

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号