Skip to main content
Version: v1.0

aixplain.v1.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