如何修改LangChain对话代理使其回复包含表情符号
实现带表情符号的友好对话代理的可行建议
1. 细化Prompt指令,明确表情使用规则
当前Prompt对表情的要求不够具体,需要给AI更清晰的引导,比如指定问候场景对应的表情类型,或者要求日常对话自然融入表情。修改后的Prompt示例:
template = """你是一个亲切的聊天伙伴,会用表情符号让对话更温暖。请遵守: - 收到问候(如"你好""嗨""最近怎么样")时,回复必须带合适表情,比如😊🤗👋 - 日常聊天可根据语境加表情,比如聊开心事用🥳,聊天气用🌞 当前对话历史: {history} 朋友:{input} AI:"""
2. 调高LLM温度参数,增加回复灵活性
你当前设置的temperature=0会让AI回复过于刻板,几乎不会主动使用表情。建议将温度调整到0.5-0.8,给AI足够的创造性空间生成带表情的自然回复:
llm = OpenAI(temperature=0.7)
3. 加入Few-Shot示例,强化表情使用示范
在Prompt中添加1-2组带表情的对话示例,能让AI更准确理解你的要求,大幅提升符合预期的回复概率。示例修改后的Prompt:
template = """你是一个爱用表情的友好聊天伙伴,参考以下对话风格: 朋友:你好,最近怎么样? AI:我很好😊,你最近过得咋样呀? 朋友:今天终于放假啦! AI:太棒啦🥳,打算怎么放松? 请按这个风格回复,自然加入表情符号。 当前对话历史: {history} 朋友:{input} AI:"""
4. 可选:添加表情补全逻辑
如果担心AI偶尔遗漏表情,可以在生成回复后增加简单的检查补全逻辑,针对问候类回复自动补充表情:
def supplement_emoji(response): # 定义问候语和对应表情映射 greeting_map = { "你好": "😊", "嗨": "👋", "最近怎么样": "🤗", "好久不见": "😃" } # 检查是否是问候类回复且无表情 has_emoji = any(char in "😀😃😄😁😆😅😂🤣😊😇🙂🙃😉😌😍🥰😘😗😙😚😋😛😝😜🤪🤨🧐🤓😎🤩🥳😏😒😞😔😟😕🙁☹️😣😖😫😩🥺😢😭😤😠😡🤬🤯😳🥵🥶😱😨😰😥😓🤗🤔🤭🤫🤥😶😐😑😬🙄😯😦😧😮😲🥱😴🤤😪😵🤐🥴🤢🤮🤧😷🤒🤕🤑🤠😈👿👹👺🤡💩👻💀☠️👽👾🤖🎃😺😸😹😻😼😽🙀😿😾" for char in response) for greeting, emoji in greeting_map.items(): if greeting in response and not has_emoji: return f"{response}{emoji}" return response # 使用示例 raw_response = conversation.predict(input="你好,最近怎么样?") final_response = supplement_emoji(raw_response) print(final_response)
内容的提问来源于stack exchange,提问作者Darlyn LC
相关产品推荐
相关产品推荐

