| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- from abc import ABC, abstractmethod
-
- 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: dict | None = None):
- super().__init__(tenant_id, config)
- self.app_id = app_id
- self.variable = variable
-
- @classmethod
- @abstractmethod
- def validate_config(cls, tenant_id: str, config: dict):
- """
- Validate the incoming form config data.
-
- :param tenant_id: the id of workspace
- :param config: the form config data
- :return:
- """
- raise NotImplementedError
-
- @abstractmethod
- def query(self, inputs: dict, query: str | None = 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
|