Sfoglia il codice sorgente

分段获取结果

xueyiming 4 giorni fa
parent
commit
96c1bb8c53
1 ha cambiato i file con 24 aggiunte e 8 eliminazioni
  1. 24 8
      pqai_agent_server/task_server.py

+ 24 - 8
pqai_agent_server/task_server.py

@@ -405,13 +405,6 @@ class TaskManager:
             )
 
         try:
-            # 创建独立的agent实例(确保线程安全)
-            agent = MultiModalChatAgent(
-                model=agent_configuration.execution_model,
-                system_prompt=agent_configuration.system_prompt,
-                tools=json.loads(agent_configuration.tools)
-            )
-
             # 获取对话数据
             conversation_data = self.dataset_service.get_conversation_data_by_id(
                 task_conversation.conversation_id)
@@ -438,6 +431,21 @@ class TaskManager:
                 case _:
                     raise ValueError("evaluate_type must be 0 or 1")
             send_time = datetime.fromtimestamp(send_timestamp).strftime('%Y-%m-%d %H:%M:%S')
+        except Exception as e:
+            logger.error(f"Subtask {task_conversation.id} failed: {str(e)}")
+            self.update_task_conversations_status(
+                task_conversation.id,
+                TestTaskConversationsStatus.FAILED.value
+            )
+            return
+
+        try:
+            # 创建独立的agent实例(确保线程安全)
+            agent = MultiModalChatAgent(
+                model=agent_configuration.execution_model,
+                system_prompt=agent_configuration.system_prompt,
+                tools=json.loads(agent_configuration.tools)
+            )
             message = agent._generate_message(
                 context={
                     "formatted_staff_profile": staff_profile,
@@ -463,7 +471,15 @@ class TaskManager:
                     TestTaskConversationsStatus.MESSAGE_FAILED.value
                 )
                 return
+        except Exception as e:
+            logger.error(f"Subtask {task_conversation.id} failed: {str(e)}")
+            self.update_task_conversations_status(
+                task_conversation.id,
+                TestTaskConversationsStatus.MESSAGE_FAILED.value
+            )
+            return
 
+        try:
             param = {}
             param["dialogue_history"] = conversations
             param["message"] = message
@@ -492,7 +508,7 @@ class TaskManager:
             logger.error(f"Subtask {task_conversation.id} failed: {str(e)}")
             self.update_task_conversations_status(
                 task_conversation.id,
-                TestTaskConversationsStatus.FAILED.value
+                TestTaskConversationsStatus.SCORE_FAILED.value
             )
             raise  # 重新抛出异常以便主线程捕获