|
@@ -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):
|