Team Ai
Apppublic

Underground-Digital/Workflow-Engine

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
api_entities.py67 linesDownload Raw Back to entities
1from typing import Literal, Optional2 3from pydantic import BaseModel4 5from core.model_runtime.utils.encoders import jsonable_encoder6from core.tools.entities.common_entities import I18nObject7from core.tools.entities.tool_entities import ToolProviderCredentials, ToolProviderType8from core.tools.tool.tool import ToolParameter9 10 11class UserTool(BaseModel):12    author: str13    name: str  # identifier14    label: I18nObject  # label15    description: I18nObject16    parameters: Optional[list[ToolParameter]] = None17    labels: list[str] = None18 19 20UserToolProviderTypeLiteral = Optional[Literal["builtin", "api", "workflow"]]21 22 23class UserToolProvider(BaseModel):24    id: str25    author: str26    name: str  # identifier27    description: I18nObject28    icon: str29    label: I18nObject  # label30    type: ToolProviderType31    masked_credentials: Optional[dict] = None32    original_credentials: Optional[dict] = None33    is_team_authorization: bool = False34    allow_delete: bool = True35    tools: list[UserTool] | None = None36    labels: list[str] | None = None37 38    def to_dict(self) -> dict:39        # -------------40        # overwrite tool parameter types for temp fix41        tools = jsonable_encoder(self.tools)42        for tool in tools:43            if tool.get("parameters"):44                for parameter in tool.get("parameters"):45                    if parameter.get("type") == ToolParameter.ToolParameterType.SYSTEM_FILES.value:46                        parameter["type"] = "files"47        # -------------48 49        return {50            "id": self.id,51            "author": self.author,52            "name": self.name,53            "description": self.description.to_dict(),54            "icon": self.icon,55            "label": self.label.to_dict(),56            "type": self.type.value,57            "team_credentials": self.masked_credentials,58            "is_team_authorization": self.is_team_authorization,59            "allow_delete": self.allow_delete,60            "tools": tools,61            "labels": self.labels,62        }63 64 65class UserToolProviderCredentials(BaseModel):66    credentials: dict[str, ToolProviderCredentials]67