Spaces:
Paused
Paused
| from abc import ABC, abstractmethod | |
| from typing import Optional | |
| from core.extension.extensible import Extensible, ExtensionModule | |
| class ExternalDataTool(Extensible, ABC): | |
| """ | |
| The base class of external data tool. | |
| """ | |
| module: ExtensionModule = ExtensionModule.EXTERNAL_DATA_TOOL | |
| app_id: str | |
| """the id of app""" | |
| variable: str | |
| """the tool variable name of app tool""" | |
| def __init__(self, tenant_id: str, app_id: str, variable: str, config: Optional[dict] = None) -> None: | |
| super().__init__(tenant_id, config) | |
| self.app_id = app_id | |
| self.variable = variable | |
| def validate_config(cls, tenant_id: str, config: dict) -> None: | |
| """ | |
| Validate the incoming form config data. | |
| :param tenant_id: the id of workspace | |
| :param config: the form config data | |
| :return: | |
| """ | |
| raise NotImplementedError | |
| def query(self, inputs: dict, query: Optional[str] = None) -> str: | |
| """ | |
| Query the external data tool. | |
| :param inputs: user inputs | |
| :param query: the query of chat app | |
| :return: the tool query result | |
| """ | |
| raise NotImplementedError | |