fix: missing tool invoke messages

This commit is contained in:
Yeuoly 2024-11-28 19:09:04 +08:00
parent eead6abe85
commit 0452dfd029
No known key found for this signature in database
GPG Key ID: A66E7E320FB19F61

View File

@ -7,6 +7,7 @@ from sqlalchemy.orm import Session
from core.callback_handler.workflow_tool_callback_handler import DifyWorkflowCallbackHandler
from core.file import File, FileTransferMethod, FileType
from core.plugin.manager.exc import PluginInvokeError
from core.tools.entities.tool_entities import ToolInvokeMessage, ToolParameter
from core.tools.tool_engine import ToolEngine
from core.tools.tool_manager import ToolManager
@ -101,8 +102,18 @@ class ToolNode(BaseNode[ToolNodeData]):
)
)
try:
# convert tool messages
yield from self._transform_message(message_stream, tool_info, parameters_for_log)
except PluginInvokeError as e:
yield RunCompletedEvent(
run_result=NodeRunResult(
status=WorkflowNodeExecutionStatus.FAILED,
inputs=parameters_for_log,
metadata={NodeRunMetadataKey.TOOL_INFO: tool_info},
error=f"Failed to transform tool message: {str(e)}",
)
)
def _generate_parameters(
self,