Ver Fonte

Update message_reply_agent: support multimodal message output

StrayWarrior há 3 semanas atrás
pai
commit
55d62be489
1 ficheiros alterados com 10 adições e 5 exclusões
  1. 10 5
      pqai_agent/agents/message_reply_agent.py

+ 10 - 5
pqai_agent/agents/message_reply_agent.py

@@ -40,7 +40,7 @@ DEFAULT_SYSTEM_PROMPT = '''
 </心理学技巧>
 </心理学技巧>
 
 
 <风险规避原则>
 <风险规避原则>
-* 避免过度打扰和重复:注意分析历史对话,如果用户之前没有回复,48小时内不再问候
+* 避免过度打扰和重复:注意分析历史对话
 * 避免过度解读:不要过度解读用户的信息
 * 避免过度解读:不要过度解读用户的信息
 * 文化适配:注意不同地域的用户文化差异
 * 文化适配:注意不同地域的用户文化差异
 * 准确性要求:不要使用虚构的信息
 * 准确性要求:不要使用虚构的信息
@@ -139,7 +139,9 @@ if __name__ == '__main__':
     import pqai_agent.logging_service
     import pqai_agent.logging_service
     pqai_agent.logging_service.setup_root_logger()
     pqai_agent.logging_service.setup_root_logger()
     from pqai_agent.chat_service import VOLCENGINE_MODEL_DEEPSEEK_V3
     from pqai_agent.chat_service import VOLCENGINE_MODEL_DEEPSEEK_V3
-    agent = MessageReplyAgent(model=VOLCENGINE_MODEL_DEEPSEEK_V3)
+    from pqai_agent.toolkit.pq_video_searcher import PQVideoSearcher
+    agent = MessageReplyAgent(model=VOLCENGINE_MODEL_DEEPSEEK_V3,
+                              tools=[*PQVideoSearcher().get_tools()])
     query = """
     query = """
 现在,请以客服的角色分析以下会话并生成给用户的回复。
 现在,请以客服的角色分析以下会话并生成给用户的回复。
 # 客服的基本信息
 # 客服的基本信息
@@ -167,17 +169,20 @@ if __name__ == '__main__':
 [用户][2025-05-20 21:58:24][文本]我喜欢跑步
 [用户][2025-05-20 21:58:24][文本]我喜欢跑步
 [客服][2025-05-20 21:58:52][文本]大哥,跑步是特别棒的爱好呢!既锻炼了身体,又能让人心情愉悦~最近有去哪里跑步呀?
 [客服][2025-05-20 21:58:52][文本]大哥,跑步是特别棒的爱好呢!既锻炼了身体,又能让人心情愉悦~最近有去哪里跑步呀?
 [用户][2025-05-20 21:59:05][文本]我要睡觉了
 [用户][2025-05-20 21:59:05][文本]我要睡觉了
-[用户][2025-05-20 21:59:52][表情包]http://dl.weshineapp.com/gif/20250503/a7a5afcefa8bc7d293c2d0bfde0007be.gif?id=a7a5afcefa8bc7d293c2d0bfde0007be
+[用户][2025-05-20 21:59:13][表情包]http://dl.weshineapp.com/gif/20250503/a7a5afcefa8bc7d293c2d0bfde0007be.gif?id=a7a5afcefa8bc7d293c2d0bfde0007be
+[客服][2025-05-20 21:59:15][文本]晚安啦
+[用户][2025-05-20 21:59:52][文本]晚安
 # 当前上下文信息
 # 当前上下文信息
 时间:2025-05-20 22:00:00
 时间:2025-05-20 22:00:00
 
 
 注意对话信息的格式为: [角色][时间][消息类型]对话内容
 注意对话信息的格式为: [角色][时间][消息类型]对话内容
 注意分析客服和用户当前的社交阶段,先确立对话的目的。
 注意分析客服和用户当前的社交阶段,先确立对话的目的。
 注意一定要分析对话信息中的时间,避免和当前时间段不符的内容!注意一定要结合历史的对话情况进行分析和问候方式的选择!
 注意一定要分析对话信息中的时间,避免和当前时间段不符的内容!注意一定要结合历史的对话情况进行分析和问候方式的选择!
-使用message_notify_user发送最终的回复内容,调用时不要传入除了回复内容外的其它任何信息
+使用output_multimodal_message发送最终的回复消息,如果有多条消息需要发送,可以多次调用output_multimodal_message,请务必保证所有回复内容都通过output_multimodal_message发出
 请注意这是微信聊天,如果用户使用了表情包,请使用analyse_image描述表情包,并分析其含义和情绪,如果要回复请尽量用简短的emoji或文字进行回复。
 请注意这是微信聊天,如果用户使用了表情包,请使用analyse_image描述表情包,并分析其含义和情绪,如果要回复请尽量用简短的emoji或文字进行回复。
+特殊情况处理:
 如果用户连续2次以上感到疑惑,请先发送<人工介入>,后接你认为需要人工介入的原因。如果判断对话可自然结束、无需再回复用户,请发送<结束>。如果用户表现出强烈的负向情绪、要求不再对话,请发送<负向情绪结束>。
 如果用户连续2次以上感到疑惑,请先发送<人工介入>,后接你认为需要人工介入的原因。如果判断对话可自然结束、无需再回复用户,请发送<结束>。如果用户表现出强烈的负向情绪、要求不再对话,请发送<负向情绪结束>。
-以上特殊消息发送请使用message_notify_user。
+以上特殊情况的消息发送请使用message_notify_user。
 Now, start to process your task. Please think step by step.
 Now, start to process your task. Please think step by step.
 """
 """
     response = agent.run(query)
     response = agent.run(query)