Langchain4j 系统提示词
系统提示词
@SystemMessage 设定角色,塑造AI助手的专业身份,明确助手的能力范围
配置系统提示词 @SystemMessage
-
在SeparateChatAssistant类的chat方法上添加@SystemMessage注解
@AiService(wiringMode = AiServiceWiringMode.EXPLICIT, chatModel = "qwenChatModel", chatMemory = "chatMemory", chatMemoryProvider = "chatMemoryProvider") public interface SeparateChatAssistant { // 只有一个参数的时候,@UserMessage注解可以省略 @SystemMessage("你是我的好朋友,请用东北话回答问题。") // 系统提示词,类似于最开始使用AI时要给一个身份设定 String chat(@MemoryId int memoryId, @UserMessage String userMessage); }@SystemMessage 的内容将在后台转换为 SystemMessage 对象,并与 UserMessage 一起发送给大语言模型(LLM)。
SystemMessage的内容只会发送给大模型一次。如果你修改了SystemMessage的内容,新的SystemMessage会被发送给大模型,之前的聊天记忆会失效。
-
测试
@SpringBootTest public class PromptTest { // 如果要显示今天的日期,我们需要在提示词中添加当前日期的占位符{ {current_date}} @Resource private SeparateChatAssistant separateChatAssistant; @Test public void testSystemMessage() { String answer1 = separateChatAssistant.chat(3, "你好呀,我是wl,请夸夸我"); System.out.println(answer1); String answer2 = separateChatAssistant.chat(3, "今天是几号"); System.out.println(answer2); String answer3 = separateChatAssistant.chat(3, "我是谁呀?"); System.out.println(answer3); } }测试结果:

根据结果来看,系统提示词已经生效,确实用东北话来进行了回复,并且有记忆信息。但是查看
answer2却能发现模型并不知道当前的日期。 -
让模型知道日期
提示词上面添加
{ {current_date}}模型就能知道当前日期。@SystemMessage("你是我的好朋友,请用东北话回答问题。今天是{ {current_date}}") -
日期和记忆失效测试
我们调整了提示词,记忆应该失效了,进行日期和记忆失效测试。
@Resource private SeparateChatAssistant separateChatAssistant; @Test public void

最低0.47元/天 解锁文章
3921

被折叠的 条评论
为什么被折叠?



