|
@@ -18,6 +18,7 @@ from apscheduler.schedulers.background import BackgroundScheduler
|
|
|
|
|
|
from pqai_agent import configs
|
|
from pqai_agent import configs
|
|
from pqai_agent.configs import apollo_config
|
|
from pqai_agent.configs import apollo_config
|
|
|
|
+from pqai_agent.exceptions import NoRetryException
|
|
from pqai_agent.logging_service import logger
|
|
from pqai_agent.logging_service import logger
|
|
from pqai_agent import chat_service
|
|
from pqai_agent import chat_service
|
|
from pqai_agent.chat_service import CozeChat, ChatServiceType
|
|
from pqai_agent.chat_service import CozeChat, ChatServiceType
|
|
@@ -30,7 +31,6 @@ from pqai_agent.message_queue_backend import MessageQueueBackend, MemoryQueueBac
|
|
from pqai_agent.user_profile_extractor import UserProfileExtractor
|
|
from pqai_agent.user_profile_extractor import UserProfileExtractor
|
|
from pqai_agent.message import MessageType, Message, MessageChannel
|
|
from pqai_agent.message import MessageType, Message, MessageChannel
|
|
|
|
|
|
-
|
|
|
|
class AgentService:
|
|
class AgentService:
|
|
def __init__(
|
|
def __init__(
|
|
self,
|
|
self,
|
|
@@ -152,11 +152,13 @@ class AgentService:
|
|
if message:
|
|
if message:
|
|
try:
|
|
try:
|
|
self.process_single_message(message)
|
|
self.process_single_message(message)
|
|
|
|
+ except NoRetryException as e:
|
|
|
|
+ logger.error("Error processing message and skip retry: {}".format(e))
|
|
self.receive_queue.ack(message)
|
|
self.receive_queue.ack(message)
|
|
except Exception as e:
|
|
except Exception as e:
|
|
- logger.error("Error processing message: {}".format(e))
|
|
|
|
- traceback.print_exc()
|
|
|
|
- time.sleep(1)
|
|
|
|
|
|
+ error_stack = traceback.format_exc()
|
|
|
|
+ logger.error("Error processing message: {}, {}".format(e, error_stack))
|
|
|
|
+ time.sleep(0.5)
|
|
logger.info("Message processing thread exit")
|
|
logger.info("Message processing thread exit")
|
|
|
|
|
|
def start(self, blocking=False):
|
|
def start(self, blocking=False):
|
|
@@ -230,7 +232,7 @@ class AgentService:
|
|
agent = self.get_agent_instance(staff_id, user_id)
|
|
agent = self.get_agent_instance(staff_id, user_id)
|
|
if not agent.is_valid():
|
|
if not agent.is_valid():
|
|
logger.error(f"staff[{staff_id}] user[{user_id}]: agent is invalid")
|
|
logger.error(f"staff[{staff_id}] user[{user_id}]: agent is invalid")
|
|
- return
|
|
|
|
|
|
+ raise Exception('agent is invalid')
|
|
|
|
|
|
# 更新对话状态
|
|
# 更新对话状态
|
|
logger.debug("process message: {}".format(message))
|
|
logger.debug("process message: {}".format(message))
|