mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-08-19 01:45:57 +08:00
fix: support other file types for Tool
This commit is contained in:
parent
0af9c4fd9d
commit
01efdee1dd
@ -157,6 +157,7 @@ class ToolInvokeMessage(BaseModel):
|
|||||||
BLOB = "blob"
|
BLOB = "blob"
|
||||||
JSON = "json"
|
JSON = "json"
|
||||||
IMAGE_LINK = "image_link"
|
IMAGE_LINK = "image_link"
|
||||||
|
BINARY_LINK = "binary_link"
|
||||||
VARIABLE = "variable"
|
VARIABLE = "variable"
|
||||||
FILE = "file"
|
FILE = "file"
|
||||||
|
|
||||||
|
@ -85,7 +85,7 @@ class ToolFileMessageTransformer:
|
|||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
yield ToolInvokeMessage(
|
yield ToolInvokeMessage(
|
||||||
type=ToolInvokeMessage.MessageType.LINK,
|
type=ToolInvokeMessage.MessageType.BINARY_LINK,
|
||||||
message=ToolInvokeMessage.TextMessage(text=url),
|
message=ToolInvokeMessage.TextMessage(text=url),
|
||||||
meta=message.meta.copy() if message.meta is not None else {},
|
meta=message.meta.copy() if message.meta is not None else {},
|
||||||
)
|
)
|
||||||
|
@ -190,7 +190,11 @@ class ToolNode(BaseNode[ToolNodeData]):
|
|||||||
variables: dict[str, Any] = {}
|
variables: dict[str, Any] = {}
|
||||||
|
|
||||||
for message in message_stream:
|
for message in message_stream:
|
||||||
if message.type in {ToolInvokeMessage.MessageType.IMAGE_LINK, ToolInvokeMessage.MessageType.IMAGE}:
|
if message.type in {
|
||||||
|
ToolInvokeMessage.MessageType.IMAGE_LINK,
|
||||||
|
ToolInvokeMessage.MessageType.BINARY_LINK,
|
||||||
|
ToolInvokeMessage.MessageType.IMAGE,
|
||||||
|
}:
|
||||||
assert isinstance(message.message, ToolInvokeMessage.TextMessage)
|
assert isinstance(message.message, ToolInvokeMessage.TextMessage)
|
||||||
|
|
||||||
url = message.message.text
|
url = message.message.text
|
||||||
@ -209,7 +213,7 @@ class ToolNode(BaseNode[ToolNodeData]):
|
|||||||
|
|
||||||
mapping = {
|
mapping = {
|
||||||
"tool_file_id": tool_file_id,
|
"tool_file_id": tool_file_id,
|
||||||
"type": FileType.IMAGE,
|
"type": file_factory.get_file_type_by_mime_type(tool_file.mimetype),
|
||||||
"transfer_method": transfer_method,
|
"transfer_method": transfer_method,
|
||||||
"url": url,
|
"url": url,
|
||||||
}
|
}
|
||||||
|
@ -289,3 +289,7 @@ def _get_file_type_by_mimetype(mime_type: str) -> FileType | None:
|
|||||||
else:
|
else:
|
||||||
file_type = FileType.CUSTOM
|
file_type = FileType.CUSTOM
|
||||||
return file_type
|
return file_type
|
||||||
|
|
||||||
|
|
||||||
|
def get_file_type_by_mime_type(mime_type: str) -> FileType:
|
||||||
|
return _get_file_type_by_mimetype(mime_type) or FileType.CUSTOM
|
||||||
|
Loading…
x
Reference in New Issue
Block a user