From 574a6c1ded8db6e2731d3f5786754709a927a565 Mon Sep 17 00:00:00 2001 From: Yeuoly Date: Tue, 3 Dec 2024 16:51:51 +0800 Subject: [PATCH] fix: add extension, filename and size to PluginFileEntity --- api/core/tools/entities/file_entities.py | 3 +++ api/core/tools/plugin_tool/tool.py | 16 ++++++++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/api/core/tools/entities/file_entities.py b/api/core/tools/entities/file_entities.py index f0dd7ba1a8..9a38eadda5 100644 --- a/api/core/tools/entities/file_entities.py +++ b/api/core/tools/entities/file_entities.py @@ -11,5 +11,8 @@ class PluginFileEntity(BaseModel): dify_model_identity: str = FILE_MODEL_IDENTITY mime_type: str | None + filename: str | None + extension: str | None + size: int | None type: FileType url: str diff --git a/api/core/tools/plugin_tool/tool.py b/api/core/tools/plugin_tool/tool.py index 47ab5dba09..dc809d0df5 100644 --- a/api/core/tools/plugin_tool/tool.py +++ b/api/core/tools/plugin_tool/tool.py @@ -44,7 +44,12 @@ class PluginTool(Tool): if url is None: raise ValueError(f"File {parameter.id} does not have a valid URL") tool_parameters[parameter_name] = PluginFileEntity( - url=url, mime_type=parameter.mime_type, type=parameter.type + url=url, + mime_type=parameter.mime_type, + type=parameter.type, + filename=parameter.filename, + extension=parameter.extension, + size=parameter.size, ).model_dump() elif isinstance(parameter, list) and all(isinstance(p, File) for p in parameter): tool_parameters[parameter_name] = [] @@ -54,7 +59,14 @@ class PluginTool(Tool): if url is None: raise ValueError(f"File {p.id} does not have a valid URL") tool_parameters[parameter_name].append( - PluginFileEntity(url=url, mime_type=p.mime_type, type=p.type).model_dump() + PluginFileEntity( + url=url, + mime_type=p.mime_type, + type=p.type, + filename=p.filename, + extension=p.extension, + size=p.size, + ).model_dump() ) return manager.invoke(