Selaa lähdekoodia

Update agent_service: add FIXME

StrayWarrior 1 viikko sitten
vanhempi
commit
7f0fec7b71
1 muutettua tiedostoa jossa 8 lisäystä ja 3 poistoa
  1. 8 3
      agent_service.py

+ 8 - 3
agent_service.py

@@ -240,8 +240,13 @@ class AgentService:
             if should_initiate:
             if should_initiate:
                 logger.warning("user: {}, initiate conversation".format(user_id))
                 logger.warning("user: {}, initiate conversation".format(user_id))
                 try:
                 try:
-                    # resp = self._get_chat_response(user_id, agent, None)
-                    resp = self._generate_active_greeting_message(agent)
+                    if agent.previous_state == DialogueState.INITIALIZED:
+                        # 完全无交互历史的用户才使用此策略
+                        # 问题:agent状态更新后即无法再次发起此策略
+                        # TODO:增加基于对话历史的判断、策略去重;如果对话间隔过长需要使用长期记忆检索;在无长期记忆时,可采用用户添加时间来判断
+                        resp = self._generate_active_greeting_message(agent, user_tags)
+                    else:
+                        resp = self._get_chat_response(user_id, agent, None)
                     if resp:
                     if resp:
                         self._send_response(staff_id, user_id, resp, MessageType.TEXT)
                         self._send_response(staff_id, user_id, resp, MessageType.TEXT)
                         if self.limit_initiative_conversation_rate:
                         if self.limit_initiative_conversation_rate:
@@ -251,7 +256,7 @@ class AgentService:
             else:
             else:
                 logger.debug("user: {}, do not initiate conversation".format(user_id))
                 logger.debug("user: {}, do not initiate conversation".format(user_id))
 
 
-    def _generate_active_greeting_message(self, agent: DialogueManager):
+    def _generate_active_greeting_message(self, agent: DialogueManager, user_tags: List[str]=None):
         chat_config = agent.build_active_greeting_config()
         chat_config = agent.build_active_greeting_config()
         chat_response = self._call_chat_api(chat_config, ChatServiceType.OPENAI_COMPATIBLE)
         chat_response = self._call_chat_api(chat_config, ChatServiceType.OPENAI_COMPATIBLE)
         chat_response = self.sanitize_response(chat_response)
         chat_response = self.sanitize_response(chat_response)