<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-demoai:openai:base-url: https://api.deepseek.comapi-key: 个人keychat:options:model: deepseek-chattemperature: 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*/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();}


© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END












