Skip to main content
Version: 1.0

aixplain.factories.tool_factory

ToolFactory Objects

class ToolFactory(ModelGetterMixin, ModelListMixin)

[view_source]

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

[view_source]

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

[view_source]

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