dify/api/core/tools/entities/tool_bundle.py

36 lines
912 B
Python

from typing import Any, Optional
from pydantic import BaseModel
from core.tools.entities.tool_entities import ToolParameter, ToolProviderType
class ApiBasedToolBundle(BaseModel):
"""
This class is used to store the schema information of an api based tool. such as the url, the method, the parameters, etc.
"""
# server_url
server_url: str
# method
method: str
# summary
summary: Optional[str] = None
# operation_id
operation_id: str = None
# parameters
parameters: Optional[list[ToolParameter]] = None
# author
author: str
# icon
icon: Optional[str] = None
# openapi operation
openapi: dict
class AppToolBundle(BaseModel):
"""
This class is used to store the schema information of an tool for an app.
"""
type: ToolProviderType
credential: Optional[dict[str, Any]] = None
provider_id: str
tool_name: str