浏览代码

fix: add extension, filename and size to PluginFileEntity

Yeuoly 5 月之前
父节点
当前提交
574a6c1ded
共有 2 个文件被更改,包括 17 次插入2 次删除
  1. 3 0
      api/core/tools/entities/file_entities.py
  2. 14 2
      api/core/tools/plugin_tool/tool.py

+ 3 - 0
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

+ 14 - 2
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(