浏览代码

Update agent_service: use multiple messages to extract profile

StrayWarrior 1 周之前
父节点
当前提交
df4b111cd0
共有 1 个文件被更改,包括 3 次插入3 次删除
  1. 3 3
      agent_service.py

+ 3 - 3
agent_service.py

@@ -98,8 +98,8 @@ class AgentService:
                     traceback.print_exc()
                     traceback.print_exc()
             time.sleep(1)
             time.sleep(1)
 
 
-    def _update_user_profile(self, user_id, user_profile, message: str):
-        profile_to_update = self.user_profile_extractor.extract_profile_info(user_profile, message)
+    def _update_user_profile(self, user_id, user_profile, recent_dialogue: List[Dict]):
+        profile_to_update = self.user_profile_extractor.extract_profile_info(user_profile, recent_dialogue)
         if not profile_to_update:
         if not profile_to_update:
             logger.debug("user_id: {}, no profile info extracted".format(user_id))
             logger.debug("user_id: {}, no profile info extracted".format(user_id))
             return
             return
@@ -142,7 +142,7 @@ class AgentService:
                     self._schedule_aggregation_trigger(staff_id, user_id, agent.message_aggregation_sec)
                     self._schedule_aggregation_trigger(staff_id, user_id, agent.message_aggregation_sec)
             elif need_response:
             elif need_response:
                 # 先更新用户画像再处理回复
                 # 先更新用户画像再处理回复
-                self._update_user_profile(user_id, user_profile, message_text)
+                self._update_user_profile(user_id, user_profile, agent.dialogue_history[-10:])
                 self._get_chat_response(user_id, agent, message_text)
                 self._get_chat_response(user_id, agent, message_text)
             else:
             else:
                 logger.debug(f"staff[{staff_id}], user[{user_id}]: do not need response")
                 logger.debug(f"staff[{staff_id}], user[{user_id}]: do not need response")