微信扫码
添加专属顾问
我要投稿
掌握Java后端开发的你不容错过,本文手把手教你如何使用SpringAI技术实现流式对话。 核心内容: 1. 引入SpringAI依赖,简化模型使用和管理 2. 配置API和SpringBoot工程,一键启动对话应用 3. 编写AI应用,实现基于DeepSeek模型的流式对话
<dependencyManagement> <dependencies> <!-- Spring AI的管理依赖 --> <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-bom</artifactId> <version>${spring-ai.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies></dependencyManagement><dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-openai-spring-boot-starter</artifactId> <version>${spring-ai.version}</version></dependency><properties> <java.version>17</java.version> <spring-ai.version>1.0.0-M5</spring-ai.version></properties>
server: port: 8080spring: application: name: ai-demo ai: openai: base-url: https://api.deepseek.com api-key: 个人key chat: options: model: deepseek-chat temperature: 0.7
public class ChatConfig {/*** 默认形式* @param model* @return*/public ChatClient chatClient(OpenAiChatModel model) {return ChatClient.builder(model).build();}}
public class ChatController {private final ChatClient chatClient;/*** 聊天对话-阻塞式* @param message* @return*/public String chat( String message) {return chatClient.prompt().user(message).call().content();}}
/*** 聊天对话-流式** @param message* @return*/(value = "/stream",produces = "text/html;charset=utf-8")public Flux<String> chatStream(("message") String message) {log.info("流式测试...");return chatClient.prompt().user(message).stream().content();}
/** * 添加提示词 已通过 * @param model * @return */ @Bean public ChatClient chatClient(OpenAiChatModel model) { return ChatClient .builder(model) .defaultSystem("你的名字是小明,身份为学生,请以学生的语气回答问题.") .build(); }/*** 会话日志* @param model* @return*/public ChatClient chatClient(OpenAiChatModel model, ChatMemory chatMemory) {return ChatClient.builder(model).defaultSystem("你的名字是小明,身份为学生,请以学生的语气回答问题.").defaultAdvisors(new SimpleLoggerAdvisor(),new MessageChatMemoryAdvisor(chatMemory)).build();}/*** 会话记忆 基于内存-缓存* @return*/public ChatMemory chatMemory() {return new InMemoryChatMemory();}
/*** 会话记忆 已通过* @param message* @param chatId* @return*/(value = "/memoryChat",produces = "text/html;charset=utf-8")public Flux<String> memoryChat(("message") String message, String chatId) {log.info("流式测试...");return chatClient.prompt().user(message).advisors(a-> a.param(CHAT_MEMORY_CONVERSATION_ID_KEY, chatId)).stream().content();}
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2025-10-29
向量搜索已过时,混合搜索都有三大流派了!你看好哪个流派?
2025-10-28
BCG最新报告:企业如何跨越AI价值鸿沟,进入复利增长?
2025-10-28
Claude 新王牌 “Skills” 深度解析:让你的 AI 秒变行业专家,告别重复劳动
2025-10-28
如何构建企业级数据智能体:Data Agent 开发实践
2025-10-28
OpenAI前CTO Mira Murati团队又放大招,让大模型训练成本暴降10倍
2025-10-28
如何用飞书多维表格快速搭建一个可落地应用?
2025-10-28
Claude Skills使用教程,AI Agent终于迎来可复用的工作流引擎
2025-10-28
ChatGPT 更新了内置模型:gpt-5-oct-3
2025-08-21
2025-08-21
2025-08-19
2025-09-16
2025-09-08
2025-10-02
2025-09-17
2025-08-19
2025-09-29
2025-08-20
2025-10-29
2025-10-28
2025-10-28
2025-10-27
2025-10-26
2025-10-25
2025-10-23
2025-10-23