Langchain4j 提示词 (4)

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);
        }
    }
    

    测试结果:

    image-20250529142336849

    根据结果来看,系统提示词已经生效,确实用东北话来进行了回复,并且有记忆信息。但是查看answer2却能发现模型并不知道当前的日期。

  • 让模型知道日期

    提示词上面添加{ {current_date}}模型就能知道当前日期。

    @SystemMessage("你是我的好朋友,请用东北话回答问题。今天是{
        
        {current_date}}") 
    
  • 日期和记忆失效测试

    我们调整了提示词,记忆应该失效了,进行日期和记忆失效测试。

    @Resource
    private SeparateChatAssistant separateChatAssistant;
    
    @Test
    public void 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值