diff --git a/src/main/java/com/zhangmeng/deepseek/local/chat/controller/ChatController.java b/src/main/java/com/zhangmeng/deepseek/local/chat/controller/ChatController.java index 0dd8d98..8fd4808 100644 --- a/src/main/java/com/zhangmeng/deepseek/local/chat/controller/ChatController.java +++ b/src/main/java/com/zhangmeng/deepseek/local/chat/controller/ChatController.java @@ -1,7 +1,10 @@ package com.zhangmeng.deepseek.local.chat.controller; +import com.zhangmeng.deepseek.local.chat.repository.ChatHistoryRepository; import lombok.RequiredArgsConstructor; import org.springframework.ai.chat.client.ChatClient; +import org.springframework.ai.chat.client.advisor.AbstractChatMemoryAdvisor; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @@ -20,14 +23,23 @@ import java.util.List; @RestController public class ChatController { + @Autowired private final ChatClient chatClient; + @Autowired + private final ChatHistoryRepository chatHistoryRepository; + @RequestMapping(value = "/chat", produces = "text/html;charset=utf-8") public Flux chat( @RequestParam("prompt") String prompt, @RequestParam("chatId") String chatId, @RequestParam(value = "files", required = false) List files) { - return chatClient.prompt().user(prompt).stream().content(); + // 1.保存会话id + chatHistoryRepository.save("chat", chatId); + // 2.发送消息 + return chatClient.prompt().user(prompt) + .advisors(a -> a.param(AbstractChatMemoryAdvisor.CHAT_MEMORY_CONVERSATION_ID_KEY, chatId)) + .stream().content(); } }