aixplain.factories.tool_factory
ToolFactory Objects
class ToolFactory(ModelGetterMixin, ModelListMixin)
A factory class for creating and managing various types of tools including indexes, scripts, and connections.
This class provides functionality to create and manage different types of tools:
- Script models (utility models)
- Search collections (index models)
- Connectors (integration models)
The factory inherits from ModelGetterMixin and ModelListMixin to provide model retrieval and listing capabilities.
Attributes:
backend_url
- The URL endpoint for the backend API.
recreate
@classmethod
def recreate(cls,
integration: Optional[Union[Text, Model]] = None,
tool: Optional[Union[Text, Model]] = None,
params: Optional[Union[BaseUtilityModelParams, BaseIndexParams,
BaseAuthenticationParams]] = None,
data: Optional[Dict] = None,
**kwargs) -> Model
Recreates a tool based on an existing tool's configuration.
This method creates a new tool instance using the configuration of an existing tool. It's useful for creating copies or variations of existing tools.
Arguments:
integration
Optional[Union[Text, Model]], optional - The integration model or its ID. Defaults to None.tool
Optional[Union[Text, Model]], optional - The existing tool model or its ID to recreate from. Defaults to None. params (Optional[Union[BaseUtilityModelParams, BaseIndexParams, BaseAuthenticationParams]], optional): Parameters for the new tool. Defaults to None.data
Optional[Dict], optional - Additional data for tool creation. Defaults to None.**kwargs
- Additional keyword arguments passed to the tool creation process.
Returns:
Model
- The newly created tool model.
create
@classmethod
def create(cls,
integration: Optional[Union[Text, Model]] = None,
params: Optional[Union[BaseUtilityModelParams, BaseIndexParams,
BaseAuthenticationParams]] = None,
authentication_schema: Optional[AuthenticationSchema] = None,
data: Optional[Dict] = None,
**kwargs) -> Model
Factory method to create indexes, script models and connections
Examples:
Create a script model (option 1): Option 1: from aixplain.modules.model.utility_model import BaseUtilityModelParams
def add(a: int, b: int) -> int: return a + b
params = BaseUtilityModelParams( name="My Script Model", description="My Script Model Description", code=add ) tool = ToolFactory.create(params=params)
Option 2: def add(a: int, b: int) -> int: """Add two numbers""" return a + b
tool = ToolFactory.create( name="My Script Model", code=add )
Create a search collection: Option 1: from aixplain.factories.index_factory.utils import AirParams
params = AirParams( name="My Search Collection", description="My Search Collection Description" ) tool = ToolFactory.create(params=params)
Option 2: from aixplain.enums.index_stores import IndexStores
tool = ToolFactory.create( integration=IndexStores.VECTARA.get_model_id(), name="My Search Collection", description="My Search Collection Description" )
Create a connector: Option 1: from aixplain.modules.model.connector import BearerAuthenticationParams
params = BearerAuthenticationParams( connector_id="my_connector_id", token="my_token", name="My Connection" ) tool = ToolFactory.create(params=params)
Option 2: tool = ToolFactory.create( integration="my_connector_id", name="My Connection", token="my_token" )
Arguments:
params
- The parameters for the tool
Returns:
The created tool