소스 검색

feat(tool_node): Suppress exceptions thrown by the Tool (#11724)

Signed-off-by: -LAN- <laipz8200@outlook.com>
tags/0.14.1
-LAN- 10 달 전
부모
커밋
92a840f1b2
No account linked to committer's email address
2개의 변경된 파일13개의 추가작업 그리고 3개의 파일을 삭제
  1. 3
    3
      api/core/app/task_pipeline/workflow_cycle_manage.py
  2. 10
    0
      api/core/workflow/nodes/tool/tool_node.py

+ 3
- 3
api/core/app/task_pipeline/workflow_cycle_manage.py 파일 보기

@@ -271,9 +271,9 @@ class WorkflowCycleManage:

db.session.close()

with Session(db.engine, expire_on_commit=False) as session:
session.add(workflow_run)
session.refresh(workflow_run)
# with Session(db.engine, expire_on_commit=False) as session:
# session.add(workflow_run)
# session.refresh(workflow_run)

if trace_manager:
trace_manager.add_trace_task(

+ 10
- 0
api/core/workflow/nodes/tool/tool_node.py 파일 보기

@@ -92,6 +92,16 @@ class ToolNode(BaseNode[ToolNodeData]):
error=f"Failed to invoke tool: {str(e)}",
error_type=type(e).__name__,
)
except Exception as e:
return NodeRunResult(
status=WorkflowNodeExecutionStatus.FAILED,
inputs=parameters_for_log,
metadata={
NodeRunMetadataKey.TOOL_INFO: tool_info,
},
error=f"Failed to invoke tool: {str(e)}",
error_type="UnknownError",
)

# convert tool messages
plain_text, files, json = self._convert_tool_messages(messages)

Loading…
취소
저장