aixplain.v1.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:
integrationOptional[Union[Text, Model]], optional - The integration model or its ID. Defaults to None.toolOptional[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.dataOptional[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