Pārlūkot izejas kodu

Update agent_service: use dialogue state cache

StrayWarrior 2 nedēļas atpakaļ
vecāks
revīzija
39ea56bfb2
1 mainītis faili ar 4 papildinājumiem un 4 dzēšanām
  1. 4 4
      agent_service.py

+ 4 - 4
agent_service.py

@@ -16,7 +16,7 @@ import chat_service
 import configs
 import logging_service
 from chat_service import CozeChat, ChatServiceType
-from dialogue_manager import DialogueManager, DialogueState
+from dialogue_manager import DialogueManager, DialogueState, DialogueStateCache
 from user_manager import UserManager, LocalUserManager, MySQLUserManager, MySQLUserRelationManager, UserRelationManager
 from openai import OpenAI
 from message_queue_backend import MessageQueueBackend, MemoryQueueBackend, AliyunRocketMQQueueBackend
@@ -41,6 +41,7 @@ class AgentService:
         self.human_queue = human_backend
 
         # 核心服务模块
+        self.agent_state_cache = DialogueStateCache()
         self.user_manager = user_manager
         self.user_relation_manager = user_relation_manager
         self.user_profile_extractor = UserProfileExtractor()
@@ -78,7 +79,7 @@ class AgentService:
         agent_key = 'agent_{}_{}'.format(staff_id, user_id)
         if agent_key not in self.agent_registry:
             self.agent_registry[agent_key] = DialogueManager(
-                staff_id, user_id, self.user_manager)
+                staff_id, user_id, self.user_manager, self.agent_state_cache)
         return self.agent_registry[agent_key]
 
     def process_messages(self):
@@ -88,11 +89,10 @@ class AgentService:
             if message:
                 try:
                     self.process_single_message(message)
+                    self.receive_queue.ack(message)
                 except Exception as e:
                     logging.error("Error processing message: {}".format(e))
                     traceback.print_exc()
-                # 无论处理是否有异常,都ACK消息
-                self.receive_queue.ack(message)
             time.sleep(1)
 
     def _update_user_profile(self, user_id, user_profile, message: str):