2026/2/7 10:22:47
网站建设
项目流程
帝国cms 网站地图 自定义,成都网站建设制作公司,兰州网站,郑州seo使用教程文章目录 前言 环境与配置 依赖引入 SystemMessage 验证 最初的方式 设定进阶 RAG easy-rag 精简实现 easy-rag 标准实现 第三方向量存储 前言
在之前结合Langchain4j进行对话操作时,采取限定对话前的system消息类型,能够稍微缩小AI回答的范围。 但根据user类消息的不同,AI…文章目录前言环境与配置依赖引入SystemMessage 验证最初的方式设定进阶RAGeasy-rag 精简实现easy-rag 标准实现第三方向量存储前言在之前结合Langchain4j进行对话操作时,采取限定对话前的system消息类型,能够稍微缩小AI回答的范围。但根据user类消息的不同,AI总会出现类似已读乱回、幻觉等问题现象。为了让Agent回答的问题更准确,可以使用RAG的思想,提前告知AI回答问题的范围,做数据的限制与参照。环境与配置springboot 3.4.0maven 3.6.3jdk 17langchain4j 1.1.0-beta7langchain4j-easy-rag 1.1.0-beta7依赖引入dependencygroupIddev.langchain4j/groupIdartifactIdlangchain4j-community-dashscope-spring-boot-starter/artifactIdversion1.1.0-beta7/version/dependencydependencygroupIddev.langchain4j/groupIdartifactIdlangchain4j-spring-boot-starter/artifactIdversion1.1.0-beta7/version/dependencySystemMessage 验证最初的方式Langchain4j中的模型chat(...)支持传递多个message类型,进行systemmessage的预设。配置文件中引入模型设置langchain4j.community.dashscope.chat-model.api-key=${ALI_AI_KEY}langchain4j.community.dashscope.chat-model.model-name=qwen-max设定测试类,进行验证。importdev.langchain4j.community.model.dashscope.QwenChatModel;importdev.langchain4j.data.message.SystemMessage;importdev.langchain4j.data.message.UserMessage;importdev.langchain4j.model.chat.response.ChatResponse;importorg.junit.jupiter.api.Test;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.boot.test.context.SpringBootTest;@SpringBootTestpublicclassSystemMsgTest{@AutowiredprivateQwenChatModelqwenChatModel;@TestpublicvoidsystemMsg(){SystemMessagesystemMessage=SystemMessage.from(""" 你是智能助手,帮助用户解决编程类的疑问,并给出相关建议。重点关注4个方向: 1、规划清晰的编程学习路线 2、提供相关编程技术的学习建议 3、分享专业知识技能点和面试技巧 请用简洁明了的语言回答。 """);ChatResponsechat=qwenChatModel.chat(systemMessage,UserMessage.from("你好,我是程序猿专注写bug"));System.out.println("chat.aiMessage().text() = "+chat.aiMessage().text());}}执行后,AI返回消息如下所示:chat.aiMessage().text() = 你好!程序员之路充满挑战也乐趣多多。如果你在写代码时遇到了bug,或者想要提升自己的编程技能,我很乐意帮助你。 请告诉我你当前使用的主要编程语言和技术栈是什么?还有,你最想解决或学习的问题是什么?这样我可以给你更具体的建议。回答内容在指定SystemMessage限制之内。设定进阶除了给大模型直接传递SystemMessage之外,还能在使用AiService进行AOP操作前,利用注解的方式进行设定。如下所示:importdev.langchain4j.memory.ChatMemory;importdev.langchain4j.memory.chat.MessageWindowChatMemory;importdev.langchain4j.model.chat.ChatModel;importdev.langchain4j.service.AiServices;importdev.langchain4j.service.SystemMessage;importjakarta.annotation.Resource;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;/** * 验证AI使用注解填充 SystemMessage */@ConfigurationpublicclassAiSystemFactory{/** * 由 AiService 进行aop */publicinterfaceSystemMsgAssisent{/** * 注解绑定 systemmessage * 类似角色扮演 * @param userMessage * @return */@SystemMessage(""" 你是智能助手,帮助用户解决编程类的疑问,并给出相关建议。重点关注4个方向: 1、规划清晰的编程学习路线 2、提供相关编程技术的学习建议 3、分享专业知识技能点和面试技巧 请用简洁明了的语言回答。 """)Stringchat(StringuserMessage);}/** * dev.langchain4j.community.dashscope.spring.AutoConfig#qwenChatModel */@ResourceprivateChatModelqwenChatModel;@BeanpublicSystemMsgAssisentcreateSystemMsgAssisent(){ChatMemorychatMemory=MessageWindowChatMemory.withMaxMessages(10);SystemMsgAssisentsystemMsgAssisent=AiServices.builder(SystemMsgAssisent.class