mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-08-12 02:29:03 +08:00
fix: workflow_as_tool output files raise error (#12061)
This commit is contained in:
parent
2a909e634b
commit
b66c03dfe9
@ -1,12 +1,13 @@
|
|||||||
import json
|
import json
|
||||||
import logging
|
import logging
|
||||||
from copy import deepcopy
|
from copy import deepcopy
|
||||||
from typing import Any, Optional, Union
|
from typing import Any, Optional, Union, cast
|
||||||
|
|
||||||
from core.file import FILE_MODEL_IDENTITY, File, FileTransferMethod
|
from core.file import FILE_MODEL_IDENTITY, File, FileTransferMethod
|
||||||
from core.tools.entities.tool_entities import ToolInvokeMessage, ToolParameter, ToolProviderType
|
from core.tools.entities.tool_entities import ToolInvokeMessage, ToolParameter, ToolProviderType
|
||||||
from core.tools.tool.tool import Tool
|
from core.tools.tool.tool import Tool
|
||||||
from extensions.ext_database import db
|
from extensions.ext_database import db
|
||||||
|
from factories.file_factory import build_from_mapping
|
||||||
from models.account import Account
|
from models.account import Account
|
||||||
from models.model import App, EndUser
|
from models.model import App, EndUser
|
||||||
from models.workflow import Workflow
|
from models.workflow import Workflow
|
||||||
@ -194,10 +195,18 @@ class WorkflowTool(Tool):
|
|||||||
if isinstance(value, list):
|
if isinstance(value, list):
|
||||||
for item in value:
|
for item in value:
|
||||||
if isinstance(item, dict) and item.get("dify_model_identity") == FILE_MODEL_IDENTITY:
|
if isinstance(item, dict) and item.get("dify_model_identity") == FILE_MODEL_IDENTITY:
|
||||||
file = File.model_validate(item)
|
item["tool_file_id"] = item.get("related_id")
|
||||||
|
file = build_from_mapping(
|
||||||
|
mapping=item,
|
||||||
|
tenant_id=str(cast(Tool.Runtime, self.runtime).tenant_id),
|
||||||
|
)
|
||||||
files.append(file)
|
files.append(file)
|
||||||
elif isinstance(value, dict) and value.get("dify_model_identity") == FILE_MODEL_IDENTITY:
|
elif isinstance(value, dict) and value.get("dify_model_identity") == FILE_MODEL_IDENTITY:
|
||||||
file = File.model_validate(value)
|
value["tool_file_id"] = value.get("related_id")
|
||||||
|
file = build_from_mapping(
|
||||||
|
mapping=value,
|
||||||
|
tenant_id=str(cast(Tool.Runtime, self.runtime).tenant_id),
|
||||||
|
)
|
||||||
files.append(file)
|
files.append(file)
|
||||||
|
|
||||||
result[key] = value
|
result[key] = value
|
||||||
|
Loading…
x
Reference in New Issue
Block a user