diff --git a/aixplain/factories/index_factory.py b/aixplain/factories/index_factory.py index 80dc6f07..85be5cc6 100644 --- a/aixplain/factories/index_factory.py +++ b/aixplain/factories/index_factory.py @@ -1,7 +1,7 @@ from aixplain.modules.model.index_model import IndexModel from aixplain.factories import ModelFactory -from aixplain.enums import ResponseStatus -from typing import Text +from aixplain.enums import Function, ResponseStatus, SortBy, SortOrder, OwnershipType, Supplier +from typing import Optional, Text, Union, List, Tuple class IndexFactory(ModelFactory): @@ -21,3 +21,26 @@ def create(cls, name: Text, description: Text) -> IndexModel: if error_message == "": error_message = "Index Factory Exception:An error occurred while creating the index collection." raise Exception(error_message) + + @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]: + """List all indexes""" + return super().list( + function=Function.SEARCH, + query=query, + suppliers=suppliers, + ownership=ownership, + sort_by=sort_by, + sort_order=sort_order, + page_number=page_number, + page_size=page_size, + ) diff --git a/tests/functional/model/run_model_test.py b/tests/functional/model/run_model_test.py index 47bd4f12..c794face 100644 --- a/tests/functional/model/run_model_test.py +++ b/tests/functional/model/run_model_test.py @@ -59,6 +59,9 @@ def test_index_model(): from aixplain.modules.model.record import Record from aixplain.factories import IndexFactory + for index in IndexFactory.list()["results"]: + index.delete() + index_model = IndexFactory.create(name=str(uuid4()), description=str(uuid4())) index_model.upsert([Record(value="Hello, world!", value_type="text", uri="", id="1", attributes={})]) response = index_model.search("Hello")