diff --git a/api/configs/feature/__init__.py b/api/configs/feature/__init__.py index 9f1646ea7d..d2fe3bf5cd 100644 --- a/api/configs/feature/__init__.py +++ b/api/configs/feature/__init__.py @@ -655,6 +655,11 @@ class ToolConfig(BaseSettings): default=3600, ) + TOOL_FILE_MAX_SIZE: PositiveInt = Field( + description="Maximum size in bytes for tool generated files", + default=30 * 1024 * 1024, + ) + class MailConfig(BaseSettings): """ diff --git a/api/core/plugin/impl/tool.py b/api/core/plugin/impl/tool.py index 04225f95ee..6f0e47d44a 100644 --- a/api/core/plugin/impl/tool.py +++ b/api/core/plugin/impl/tool.py @@ -3,6 +3,7 @@ from typing import Any, Optional from pydantic import BaseModel +from configs import dify_config from core.plugin.entities.plugin import GenericProviderID, ToolProviderID from core.plugin.entities.plugin_daemon import PluginBasicBooleanResponse, PluginToolProviderEntity from core.plugin.impl.base import BasePluginClient @@ -149,8 +150,8 @@ class PluginToolManager(BasePluginClient): meta=resp.meta, ) else: - # Check if file is too large (30MB limit) - if files[chunk_id].bytes_written + len(blob_data) > 30 * 1024 * 1024: + # Check if file is too large + if files[chunk_id].bytes_written + len(blob_data) > dify_config.TOOL_FILE_MAX_SIZE: # Delete the file if it's too large del files[chunk_id] # Skip yielding this message