|
@@ -4,7 +4,7 @@ import mimetypes
|
|
|
from collections.abc import Generator
|
|
|
from os import listdir, path
|
|
|
from threading import Lock
|
|
|
-from typing import TYPE_CHECKING, Any, Optional, Union, cast
|
|
|
+from typing import TYPE_CHECKING, Any, Union, cast
|
|
|
|
|
|
from yarl import URL
|
|
|
|
|
@@ -57,7 +57,7 @@ logger = logging.getLogger(__name__)
|
|
|
|
|
|
class ToolManager:
|
|
|
_builtin_provider_lock = Lock()
|
|
|
- _hardcoded_providers = {}
|
|
|
+ _hardcoded_providers: dict[str, BuiltinToolProviderController] = {}
|
|
|
_builtin_providers_loaded = False
|
|
|
_builtin_tools_labels: dict[str, Union[I18nObject, None]] = {}
|
|
|
|
|
@@ -203,7 +203,7 @@ class ToolManager:
|
|
|
if builtin_provider is None:
|
|
|
raise ToolProviderNotFoundError(f"builtin provider {provider_id} not found")
|
|
|
else:
|
|
|
- builtin_provider: BuiltinToolProvider | None = (
|
|
|
+ builtin_provider = (
|
|
|
db.session.query(BuiltinToolProvider)
|
|
|
.filter(BuiltinToolProvider.tenant_id == tenant_id, (BuiltinToolProvider.provider == provider_id))
|
|
|
.first()
|
|
@@ -270,9 +270,7 @@ class ToolManager:
|
|
|
raise ToolProviderNotFoundError(f"workflow provider {provider_id} not found")
|
|
|
|
|
|
controller = ToolTransformService.workflow_provider_to_controller(db_provider=workflow_provider)
|
|
|
- controller_tools: Optional[list[Tool]] = controller.get_tools(
|
|
|
- user_id="", tenant_id=workflow_provider.tenant_id
|
|
|
- )
|
|
|
+ controller_tools: list[WorkflowTool] = controller.get_tools(tenant_id=workflow_provider.tenant_id)
|
|
|
if controller_tools is None or len(controller_tools) == 0:
|
|
|
raise ToolProviderNotFoundError(f"workflow provider {provider_id} not found")
|
|
|
|
|
@@ -747,18 +745,21 @@ class ToolManager:
|
|
|
# add tool labels
|
|
|
labels = ToolLabelManager.get_tool_labels(controller)
|
|
|
|
|
|
- return jsonable_encoder(
|
|
|
- {
|
|
|
- "schema_type": provider_obj.schema_type,
|
|
|
- "schema": provider_obj.schema,
|
|
|
- "tools": provider_obj.tools,
|
|
|
- "icon": icon,
|
|
|
- "description": provider_obj.description,
|
|
|
- "credentials": masked_credentials,
|
|
|
- "privacy_policy": provider_obj.privacy_policy,
|
|
|
- "custom_disclaimer": provider_obj.custom_disclaimer,
|
|
|
- "labels": labels,
|
|
|
- }
|
|
|
+ return cast(
|
|
|
+ dict,
|
|
|
+ jsonable_encoder(
|
|
|
+ {
|
|
|
+ "schema_type": provider_obj.schema_type,
|
|
|
+ "schema": provider_obj.schema,
|
|
|
+ "tools": provider_obj.tools,
|
|
|
+ "icon": icon,
|
|
|
+ "description": provider_obj.description,
|
|
|
+ "credentials": masked_credentials,
|
|
|
+ "privacy_policy": provider_obj.privacy_policy,
|
|
|
+ "custom_disclaimer": provider_obj.custom_disclaimer,
|
|
|
+ "labels": labels,
|
|
|
+ }
|
|
|
+ ),
|
|
|
)
|
|
|
|
|
|
@classmethod
|
|
@@ -795,7 +796,8 @@ class ToolManager:
|
|
|
if workflow_provider is None:
|
|
|
raise ToolProviderNotFoundError(f"workflow provider {provider_id} not found")
|
|
|
|
|
|
- return json.loads(workflow_provider.icon)
|
|
|
+ icon: dict = json.loads(workflow_provider.icon)
|
|
|
+ return icon
|
|
|
except Exception:
|
|
|
return {"background": "#252525", "content": "\ud83d\ude01"}
|
|
|
|
|
@@ -811,7 +813,8 @@ class ToolManager:
|
|
|
if api_provider is None:
|
|
|
raise ToolProviderNotFoundError(f"api provider {provider_id} not found")
|
|
|
|
|
|
- return json.loads(api_provider.icon)
|
|
|
+ icon: dict = json.loads(api_provider.icon)
|
|
|
+ return icon
|
|
|
except Exception:
|
|
|
return {"background": "#252525", "content": "\ud83d\ude01"}
|
|
|
|