Skip to main content
Version: 1.0

aixplain.factories.index_factory

__author__

Copyright 2022 The aiXplain SDK authors

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Author: Abdul Basit Anees, Thiago Castro Ferreira, Zaina Abushaban Date: December 26th 2024 Description: Index Factory Class

validate_embedding_model

def validate_embedding_model(model_id: Union[EmbeddingModel, str]) -> bool

[view_source]

Validate that a model is a text embedding model.

Arguments:

  • model_id Union[EmbeddingModel, str] - The model ID or EmbeddingModel enum value to validate.

Returns:

  • bool - True if the model is a text embedding model, False otherwise.

IndexFactory Objects

class IndexFactory(ModelFactory, Generic[T])

[view_source]

Factory class for creating and managing index collections.

This class extends ModelFactory to provide specialized functionality for managing index collections, which are used for efficient data retrieval and searching. It supports various index types through the generic parameter T.

Attributes:

  • T TypeVar - Type variable bound to BaseIndexParams, representing the specific index parameters type.

create

@classmethod
def create(cls,
name: Optional[Text] = None,
description: Optional[Text] = None,
embedding_model: Union[EmbeddingModel,
str] = EmbeddingModel.OPENAI_ADA002,
params: Optional[T] = None,
**kwargs) -> IndexModel

[view_source]

Create a new index collection for efficient data retrieval.

This method supports two ways of creating an index:

  1. Using individual parameters (name, description, embedding_model) - Deprecated
  2. Using a params object of type T (recommended)

Arguments:

  • name Optional[Text], optional - Name of the index collection. Deprecated, use params instead. Defaults to None.
  • description Optional[Text], optional - Description of the index collection. Deprecated, use params instead. Defaults to None.
  • embedding_model Union[EmbeddingModel, str], optional - Model to use for text embeddings. Deprecated, use params instead. Defaults to EmbeddingModel.OPENAI_ADA002.
  • params Optional[T], optional - Index parameters object. This is the recommended way to create an index. Defaults to None.
  • **kwargs - Additional keyword arguments.

Returns:

  • IndexModel - Created index collection model.

Raises:

  • AssertionError - If neither params nor all legacy parameters are provided, or if both params and legacy parameters are provided.
  • Exception - If index creation fails.

list

@classmethod
def list(cls,
query: Optional[Text] = "",
suppliers: Optional[Union[Supplier, List[Supplier]]] = None,
ownership: Optional[Tuple[OwnershipType, List[OwnershipType]]] = None,
sort_by: Optional[SortBy] = None,
sort_order: SortOrder = SortOrder.ASCENDING,
page_number: int = 0,
page_size: int = 20) -> List[IndexModel]

[view_source]

List available index collections with optional filtering and sorting.

Arguments:

  • query Optional[Text], optional - Search query to filter indexes. Defaults to "".
  • suppliers Optional[Union[Supplier, List[Supplier]]], optional - Filter by supplier(s). Defaults to None. ownership (Optional[Tuple[OwnershipType, List[OwnershipType]]], optional): Filter by ownership type. Defaults to None.
  • sort_by Optional[SortBy], optional - Field to sort results by. Defaults to None.
  • sort_order SortOrder, optional - Sort direction (ascending/descending). Defaults to SortOrder.ASCENDING.
  • page_number int, optional - Page number for pagination. Defaults to 0.
  • page_size int, optional - Number of results per page. Defaults to 20.

Returns:

  • List[IndexModel] - List of index models matching the specified criteria.