台北市网站建设_网站建设公司_网站开发_seo优化
2026/1/16 3:35:01 网站建设 项目流程

问题

使用langchain4j的版本为 1.9.1-beta17 ,引入聊天记忆后运行报错

原因:

AiCodeHelperServiceFactory 中使用了单一的 ChatMemory 实例,但 AiCodeHelperService 接口使用了 @MemoryId 注解来支持多会话记忆。

当使用 @MemoryId 时,需要配置 ChatMemoryProvider 而不是单一的 ChatMemory。当前配置只有一个共享的 ChatMemory,所以所有用户(不管 memoryId 是 123 还是 234)都会共享同一个对话历史。

解决

AiCodeHelperService

import dev.langchain4j.service.MemoryId;
import dev.langchain4j.service.SystemMessage;
import dev.langchain4j.service.UserMessage;
import dev.langchain4j.service.spring.AiService;@AiService
public interface AiCodeHelperService {@SystemMessage(fromResource = "system-prompt.txt")String chat(@UserMessage String userMessage, @MemoryId int memoryId);}

AiCodeHelperServiceFactory

import dev.langchain4j.memory.chat.ChatMemoryProvider;
import dev.langchain4j.memory.chat.MessageWindowChatMemory;
import dev.langchain4j.model.chat.ChatModel;
import dev.langchain4j.service.AiServices;
import jakarta.annotation.Resource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class AiCodeHelperServiceFactory {@Resourceprivate ChatModel qwenChatModel;@BeanChatMemoryProvider chatMemoryProvider() {return memoryId ->MessageWindowChatMemory.withMaxMessages(10);}
}

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询