From 9501a12c8b42681a0f32534f120b6faf807365d1 Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Tue, 11 Jun 2024 23:02:16 +0000 Subject: [PATCH 01/17] address comments --- .../_indexes/input/_ai_search_config.py | 19 ++++++++------- .../entities/_indexes/input/_index_config.py | 3 ++- .../_indexes/input/_index_data_source.py | 24 +++++++++++-------- .../ai/ml/entities/_indexes/model_config.py | 10 ++++---- .../ai/ml/operations/_index_operations.py | 14 ++++++----- 5 files changed, 40 insertions(+), 30 deletions(-) diff --git a/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_ai_search_config.py b/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_ai_search_config.py index 7eefd426d1cd..5b7bfd1ef0f3 100644 --- a/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_ai_search_config.py +++ b/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_ai_search_config.py @@ -7,23 +7,24 @@ # Defines stuff related to the resulting created index, like the index type. +from azure.ai.ml._utils._experimental import experimental from typing import Optional - +@experimental class AzureAISearchConfig: """Config class for creating an Azure AI Search index. - :param ai_search_index_name: The name of the Azure AI Search index. - :type ai_search_index_name: Optional[str] - :param ai_search_connection_id: The Azure AI Search connection ID. - :type ai_search_connection_id: Optional[str] + :param index_name: The name of the Azure AI Search index. + :type index_name: Optional[str] + :param connection_id: The Azure AI Search connection ID. + :type connection_id: Optional[str] """ def __init__( self, *, - ai_search_index_name: Optional[str] = None, - ai_search_connection_id: Optional[str] = None, + index_name: Optional[str] = None, + connection_id: Optional[str] = None, ) -> None: - self.ai_search_index_name = ai_search_index_name - self.ai_search_connection_id = ai_search_connection_id + self.index_name = index_name + self.connection_id = connection_id diff --git a/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_index_config.py b/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_index_config.py index 0eec691a76f2..54722c9dd23f 100644 --- a/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_index_config.py +++ b/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_index_config.py @@ -2,9 +2,10 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- +from azure.ai.ml._utils._experimental import experimental from typing import Optional - +@experimental class IndexConfig: # pylint: disable=too-many-instance-attributes """Convenience class that contains all config values that for index creation that are NOT specific to the index source data or the created index type. Meant for internal use only diff --git a/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_index_data_source.py b/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_index_data_source.py index 5c13822a3a13..92b62b6bf9ff 100644 --- a/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_index_data_source.py +++ b/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_index_data_source.py @@ -3,6 +3,7 @@ # --------------------------------------------------------- from typing import Union +from azure.ai.ml._utils._experimental import experimental from azure.ai.ml.entities._inputs_outputs import Input from azure.ai.ml.constants._common import IndexInputType @@ -12,6 +13,7 @@ # Defines stuff related to supplying inputs for an index AKA the base data. +@experimental class IndexDataSource: """Base class for configs that define data that will be processed into an ML index. This class should not be instantiated directly. Use one of its child classes instead. @@ -28,24 +30,26 @@ def __init__(self, *, input_type: Union[str, IndexInputType]): # Field bundle for creating an index from files located in a Git repo. # TODO Does git_url need to specifically be an SSH or HTTPS style link? # TODO What is git connection id? +@experimental class GitSource(IndexDataSource): """Config class for creating an ML index from files located in a git repository. - :param git_url: A link to the repository to use. - :type git_url: str - :param git_branch_name: The name of the branch to use from the target repository. - :type git_branch_name: str - :param git_connection_id: The connection ID for GitHub - :type git_connection_id: str + :param url: A link to the repository to use. + :type url: str + :param branch_name: The name of the branch to use from the target repository. + :type branch_name: str + :param connection_id: The connection ID for GitHub + :type connection_id: str """ - def __init__(self, *, git_url: str, git_branch_name: str, git_connection_id: str): - self.git_url = git_url - self.git_branch_name = git_branch_name - self.git_connection_id = git_connection_id + def __init__(self, *, url: str, branch_name: str, connection_id: str): + self.url = url + self.branch_name = branch_name + self.connection_id = connection_id super().__init__(input_type=IndexInputType.GIT) +@experimental class LocalSource(IndexDataSource): """Config class for creating an ML index from a collection of local files. diff --git a/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/model_config.py b/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/model_config.py index 6c7f0bf91b2c..b0899d7ef3ba 100644 --- a/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/model_config.py +++ b/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/model_config.py @@ -3,6 +3,7 @@ # --------------------------------------------------------- from dataclasses import dataclass from typing import Any, Dict, Optional +from azure.ai.ml._utils._experimental import experimental from azure.ai.ml._utils.utils import camel_to_snake from azure.ai.ml.entities._workspace.connections.workspace_connection import WorkspaceConnection from azure.ai.ml.entities._workspace.connections.connection_subtypes import ( @@ -12,6 +13,7 @@ @dataclass +@experimental class ModelConfiguration: """Configuration for a embedding model. @@ -47,7 +49,7 @@ def from_connection( connection: WorkspaceConnection, model_name: Optional[str] = None, deployment_name: Optional[str] = None, - **model_kwargs + **kwargs ) -> "ModelConfiguration": """Create an model configuration from a Connection. @@ -57,8 +59,8 @@ def from_connection( :type model_name: Optional[str] :param deployment_name: The name of the deployment. :type deployment_name: Optional[str] - :keyword model_kwargs: Additional keyword arguments for the model. - :paramtype model_kwargs: Dict[str, Any] + :keyword kwargs: Additional keyword arguments for the model. + :paramtype kwargs: Dict[str, Any] :return: The model configuration. :rtype: ~azure.ai.ml.entities._indexes.entities.ModelConfiguration :raises TypeError: If the connection is not an AzureOpenAIConnection. @@ -97,5 +99,5 @@ def from_connection( connection_type=connection_type, model_name=model_name, deployment_name=deployment_name, - model_kwargs=model_kwargs, + model_kwargs=kwargs, ) diff --git a/sdk/ml/azure-ai-ml/azure/ai/ml/operations/_index_operations.py b/sdk/ml/azure-ai-ml/azure/ai/ml/operations/_index_operations.py index af7778c11734..48e31329d19c 100644 --- a/sdk/ml/azure-ai-ml/azure/ai/ml/operations/_index_operations.py +++ b/sdk/ml/azure-ai-ml/azure/ai/ml/operations/_index_operations.py @@ -24,6 +24,7 @@ ) from azure.ai.ml._telemetry import ActivityType, monitor_with_activity from azure.ai.ml._utils._asset_utils import _resolve_label_to_asset +from azure.ai.ml._utils._experimental import experimental from azure.ai.ml._utils._http_utils import HttpPipeline from azure.ai.ml._utils._logger_utils import OpsLogger from azure.ai.ml._utils.utils import _get_base_urls_from_discovery_service @@ -252,6 +253,7 @@ def cls(rest_indexes: Iterable[RestIndex]) -> List[Index]: return self._azure_ai_assets.indexes.list(name, list_view_type=list_view_type, cls=cls, **kwargs) # pylint: disable=too-many-locals + @experimental def build_index( self, *, @@ -270,7 +272,7 @@ def build_index( ######## data source info ######## input_source: Union[IndexDataSource, str], input_source_credential: Optional[Union[ManagedIdentityConfiguration, UserIdentityConfiguration]] = None, - ) -> Union["MLIndex", "Job"]: # type: ignore[name-defined] + ) -> "Job": # type: ignore[name-defined] """Builds an index on the cloud using the Azure AI Resources service. :keyword name: The name of the index to be created. @@ -333,8 +335,8 @@ def build_index( index=( IndexStore( type="acs", - connection=build_connection_id(index_config.ai_search_connection_id, self._operation_scope), - name=index_config.ai_search_index_name, + connection=build_connection_id(index_config.connection_id, self._operation_scope), + name=index_config.index_name, ) if index_config is not None else IndexStore(type="faiss") @@ -390,9 +392,9 @@ def git_to_index( return index_job.outputs git_index_job = git_to_index( - git_url=input_source.git_url, - branch_name=input_source.git_branch_name, - git_connection_id=input_source.git_connection_id, + git_url=input_source.url, + branch_name=input_source.branch_name, + git_connection_id=input_source.connection_id, ) # Ensure repo cloned each run to get latest, comment out to have first clone reused. git_index_job.settings.force_rerun = True From b1ccde040a613c407fe05e508b2d2a71c280b5d2 Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Wed, 12 Jun 2024 16:39:37 +0000 Subject: [PATCH 02/17] reintroduce index --- sdk/ml/azure-ai-ml/azure/ai/ml/operations/_index_operations.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/ml/azure-ai-ml/azure/ai/ml/operations/_index_operations.py b/sdk/ml/azure-ai-ml/azure/ai/ml/operations/_index_operations.py index 48e31329d19c..944cd64d7195 100644 --- a/sdk/ml/azure-ai-ml/azure/ai/ml/operations/_index_operations.py +++ b/sdk/ml/azure-ai-ml/azure/ai/ml/operations/_index_operations.py @@ -272,7 +272,7 @@ def build_index( ######## data source info ######## input_source: Union[IndexDataSource, str], input_source_credential: Optional[Union[ManagedIdentityConfiguration, UserIdentityConfiguration]] = None, - ) -> "Job": # type: ignore[name-defined] + ) -> Union["Index", "Job"]: # type: ignore[name-defined] """Builds an index on the cloud using the Azure AI Resources service. :keyword name: The name of the index to be created. From ba75bb8504d694a6eaf67b170c2c6744e7d4aed1 Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Wed, 12 Jun 2024 18:52:25 +0000 Subject: [PATCH 03/17] retrigger checks From fef5871d17b53db4bba707544fffe3574d5e2b9e Mon Sep 17 00:00:00 2001 From: Miles Holland Date: Wed, 12 Jun 2024 16:23:59 -0400 Subject: [PATCH 04/17] lint fixes --- .../azure/ai/ml/entities/_indexes/input/_ai_search_config.py | 3 ++- .../azure/ai/ml/entities/_indexes/input/_index_config.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_ai_search_config.py b/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_ai_search_config.py index 5b7bfd1ef0f3..b2163c40fe47 100644 --- a/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_ai_search_config.py +++ b/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_ai_search_config.py @@ -7,8 +7,9 @@ # Defines stuff related to the resulting created index, like the index type. -from azure.ai.ml._utils._experimental import experimental from typing import Optional +from azure.ai.ml._utils._experimental import experimental + @experimental class AzureAISearchConfig: diff --git a/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_index_config.py b/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_index_config.py index 54722c9dd23f..840ec6eda42a 100644 --- a/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_index_config.py +++ b/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_index_config.py @@ -2,8 +2,9 @@ # Copyright (c) Microsoft Corporation. All rights reserved. # --------------------------------------------------------- -from azure.ai.ml._utils._experimental import experimental from typing import Optional +from azure.ai.ml._utils._experimental import experimental + @experimental class IndexConfig: # pylint: disable=too-many-instance-attributes From a3c9e1a73319fd35709521884b6e4bb8110af191 Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Thu, 13 Jun 2024 02:25:51 +0000 Subject: [PATCH 05/17] retrigger checks From 810969c837e7eaabce37ddeb6e0bd987b8061055 Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Thu, 13 Jun 2024 02:57:42 +0000 Subject: [PATCH 06/17] remove experimental tag --- sdk/ml/azure-ai-ml/azure/ai/ml/operations/_index_operations.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/sdk/ml/azure-ai-ml/azure/ai/ml/operations/_index_operations.py b/sdk/ml/azure-ai-ml/azure/ai/ml/operations/_index_operations.py index 944cd64d7195..947111e7140a 100644 --- a/sdk/ml/azure-ai-ml/azure/ai/ml/operations/_index_operations.py +++ b/sdk/ml/azure-ai-ml/azure/ai/ml/operations/_index_operations.py @@ -24,7 +24,6 @@ ) from azure.ai.ml._telemetry import ActivityType, monitor_with_activity from azure.ai.ml._utils._asset_utils import _resolve_label_to_asset -from azure.ai.ml._utils._experimental import experimental from azure.ai.ml._utils._http_utils import HttpPipeline from azure.ai.ml._utils._logger_utils import OpsLogger from azure.ai.ml._utils.utils import _get_base_urls_from_discovery_service @@ -253,7 +252,6 @@ def cls(rest_indexes: Iterable[RestIndex]) -> List[Index]: return self._azure_ai_assets.indexes.list(name, list_view_type=list_view_type, cls=cls, **kwargs) # pylint: disable=too-many-locals - @experimental def build_index( self, *, From a14e746a948b33a0bcba45cdf4e045489f0d28df Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Thu, 13 Jun 2024 04:07:56 +0000 Subject: [PATCH 07/17] investigating build issues --- .../azure/ai/ml/entities/_indexes/input/_index_config.py | 1 - .../azure/ai/ml/entities/_indexes/input/_index_data_source.py | 4 ---- .../azure-ai-ml/azure/ai/ml/operations/_index_operations.py | 2 ++ 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_index_config.py b/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_index_config.py index 840ec6eda42a..91cbe06d13c6 100644 --- a/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_index_config.py +++ b/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_index_config.py @@ -6,7 +6,6 @@ from azure.ai.ml._utils._experimental import experimental -@experimental class IndexConfig: # pylint: disable=too-many-instance-attributes """Convenience class that contains all config values that for index creation that are NOT specific to the index source data or the created index type. Meant for internal use only diff --git a/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_index_data_source.py b/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_index_data_source.py index 92b62b6bf9ff..0e0a06c6a8e7 100644 --- a/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_index_data_source.py +++ b/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_index_data_source.py @@ -3,7 +3,6 @@ # --------------------------------------------------------- from typing import Union -from azure.ai.ml._utils._experimental import experimental from azure.ai.ml.entities._inputs_outputs import Input from azure.ai.ml.constants._common import IndexInputType @@ -13,7 +12,6 @@ # Defines stuff related to supplying inputs for an index AKA the base data. -@experimental class IndexDataSource: """Base class for configs that define data that will be processed into an ML index. This class should not be instantiated directly. Use one of its child classes instead. @@ -30,7 +28,6 @@ def __init__(self, *, input_type: Union[str, IndexInputType]): # Field bundle for creating an index from files located in a Git repo. # TODO Does git_url need to specifically be an SSH or HTTPS style link? # TODO What is git connection id? -@experimental class GitSource(IndexDataSource): """Config class for creating an ML index from files located in a git repository. @@ -49,7 +46,6 @@ def __init__(self, *, url: str, branch_name: str, connection_id: str): super().__init__(input_type=IndexInputType.GIT) -@experimental class LocalSource(IndexDataSource): """Config class for creating an ML index from a collection of local files. diff --git a/sdk/ml/azure-ai-ml/azure/ai/ml/operations/_index_operations.py b/sdk/ml/azure-ai-ml/azure/ai/ml/operations/_index_operations.py index 947111e7140a..944cd64d7195 100644 --- a/sdk/ml/azure-ai-ml/azure/ai/ml/operations/_index_operations.py +++ b/sdk/ml/azure-ai-ml/azure/ai/ml/operations/_index_operations.py @@ -24,6 +24,7 @@ ) from azure.ai.ml._telemetry import ActivityType, monitor_with_activity from azure.ai.ml._utils._asset_utils import _resolve_label_to_asset +from azure.ai.ml._utils._experimental import experimental from azure.ai.ml._utils._http_utils import HttpPipeline from azure.ai.ml._utils._logger_utils import OpsLogger from azure.ai.ml._utils.utils import _get_base_urls_from_discovery_service @@ -252,6 +253,7 @@ def cls(rest_indexes: Iterable[RestIndex]) -> List[Index]: return self._azure_ai_assets.indexes.list(name, list_view_type=list_view_type, cls=cls, **kwargs) # pylint: disable=too-many-locals + @experimental def build_index( self, *, From 35bbba670025af2c19bd5d9da46b1b93275d5a3f Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Thu, 13 Jun 2024 05:03:55 +0000 Subject: [PATCH 08/17] revert experimental changes --- .../azure/ai/ml/entities/_indexes/input/_index_data_source.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_index_data_source.py b/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_index_data_source.py index 0e0a06c6a8e7..92b62b6bf9ff 100644 --- a/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_index_data_source.py +++ b/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_index_data_source.py @@ -3,6 +3,7 @@ # --------------------------------------------------------- from typing import Union +from azure.ai.ml._utils._experimental import experimental from azure.ai.ml.entities._inputs_outputs import Input from azure.ai.ml.constants._common import IndexInputType @@ -12,6 +13,7 @@ # Defines stuff related to supplying inputs for an index AKA the base data. +@experimental class IndexDataSource: """Base class for configs that define data that will be processed into an ML index. This class should not be instantiated directly. Use one of its child classes instead. @@ -28,6 +30,7 @@ def __init__(self, *, input_type: Union[str, IndexInputType]): # Field bundle for creating an index from files located in a Git repo. # TODO Does git_url need to specifically be an SSH or HTTPS style link? # TODO What is git connection id? +@experimental class GitSource(IndexDataSource): """Config class for creating an ML index from files located in a git repository. @@ -46,6 +49,7 @@ def __init__(self, *, url: str, branch_name: str, connection_id: str): super().__init__(input_type=IndexInputType.GIT) +@experimental class LocalSource(IndexDataSource): """Config class for creating an ML index from a collection of local files. From 2a48be7f977f504b25e86333533b43de50c5d6b0 Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Thu, 13 Jun 2024 17:58:07 +0000 Subject: [PATCH 09/17] make dataclass kw-only --- .../azure-ai-ml/azure/ai/ml/entities/_indexes/model_config.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/model_config.py b/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/model_config.py index b0899d7ef3ba..8fa0fff43f4a 100644 --- a/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/model_config.py +++ b/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/model_config.py @@ -12,7 +12,7 @@ ) -@dataclass +@dataclass(kw_only=True) @experimental class ModelConfiguration: """Configuration for a embedding model. From 93720bdcd8d7c3583a2c8a7a40d56bfdf49949e3 Mon Sep 17 00:00:00 2001 From: Miles Holland Date: Thu, 13 Jun 2024 14:00:36 -0400 Subject: [PATCH 10/17] commit docstring --- .../azure-ai-ml/azure/ai/ml/operations/_index_operations.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sdk/ml/azure-ai-ml/azure/ai/ml/operations/_index_operations.py b/sdk/ml/azure-ai-ml/azure/ai/ml/operations/_index_operations.py index 944cd64d7195..a2a31da7750b 100644 --- a/sdk/ml/azure-ai-ml/azure/ai/ml/operations/_index_operations.py +++ b/sdk/ml/azure-ai-ml/azure/ai/ml/operations/_index_operations.py @@ -272,7 +272,7 @@ def build_index( ######## data source info ######## input_source: Union[IndexDataSource, str], input_source_credential: Optional[Union[ManagedIdentityConfiguration, UserIdentityConfiguration]] = None, - ) -> Union["Index", "Job"]: # type: ignore[name-defined] + ) -> "Job": # type: ignore[name-defined] """Builds an index on the cloud using the Azure AI Resources service. :keyword name: The name of the index to be created. @@ -297,7 +297,7 @@ def build_index( :paramtype input_source_credential: Optional[Union[~azure.ai.ml.entities.ManagedIdentityConfiguration, ~azure.ai.ml.entities.UserIdentityConfiguration]] :return: If the `source_input` is a GitSource, returns a created DataIndex Job object. - :rtype: Union[~azure.ai.ml.entities._indexes.MLIndex, ~azure.ai.ml.entities.Job] + :rtype: ~azure.ai.ml.entities.Job :raises ValueError: If the `source_input` is not type ~typing.Str or ~azure.ai.ml.entities._indexes.LocalSource. """ From e873bf8df8ffc3245b355d4b482d1e3014579342 Mon Sep 17 00:00:00 2001 From: Miles Holland Date: Thu, 13 Jun 2024 14:03:04 -0400 Subject: [PATCH 11/17] make index config experimental --- .../azure/ai/ml/entities/_indexes/input/_index_config.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_index_config.py b/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_index_config.py index 91cbe06d13c6..76d873d1d9bf 100644 --- a/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_index_config.py +++ b/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_index_config.py @@ -5,7 +5,7 @@ from typing import Optional from azure.ai.ml._utils._experimental import experimental - +@experimental class IndexConfig: # pylint: disable=too-many-instance-attributes """Convenience class that contains all config values that for index creation that are NOT specific to the index source data or the created index type. Meant for internal use only From 1f0c8eaa41a2f0e2644f88f0b963677485acc964 Mon Sep 17 00:00:00 2001 From: Miles Holland Date: Thu, 13 Jun 2024 14:04:06 -0400 Subject: [PATCH 12/17] remove unused experimental import --- .../azure/ai/ml/entities/_indexes/input/_index_config.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_index_config.py b/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_index_config.py index 76d873d1d9bf..44e34a911913 100644 --- a/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_index_config.py +++ b/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_index_config.py @@ -3,9 +3,7 @@ # --------------------------------------------------------- from typing import Optional -from azure.ai.ml._utils._experimental import experimental -@experimental class IndexConfig: # pylint: disable=too-many-instance-attributes """Convenience class that contains all config values that for index creation that are NOT specific to the index source data or the created index type. Meant for internal use only From 31fd5880e43288453cdb212af5407e34ae04243b Mon Sep 17 00:00:00 2001 From: Miles Holland Date: Thu, 13 Jun 2024 14:14:19 -0400 Subject: [PATCH 13/17] correct build_index docstring/typehint --- .../azure-ai-ml/azure/ai/ml/operations/_index_operations.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sdk/ml/azure-ai-ml/azure/ai/ml/operations/_index_operations.py b/sdk/ml/azure-ai-ml/azure/ai/ml/operations/_index_operations.py index a2a31da7750b..6c7e08ad6b9f 100644 --- a/sdk/ml/azure-ai-ml/azure/ai/ml/operations/_index_operations.py +++ b/sdk/ml/azure-ai-ml/azure/ai/ml/operations/_index_operations.py @@ -272,7 +272,7 @@ def build_index( ######## data source info ######## input_source: Union[IndexDataSource, str], input_source_credential: Optional[Union[ManagedIdentityConfiguration, UserIdentityConfiguration]] = None, - ) -> "Job": # type: ignore[name-defined] + ) -> Union["Index", "Job"]: # type: ignore[name-defined] """Builds an index on the cloud using the Azure AI Resources service. :keyword name: The name of the index to be created. @@ -297,7 +297,7 @@ def build_index( :paramtype input_source_credential: Optional[Union[~azure.ai.ml.entities.ManagedIdentityConfiguration, ~azure.ai.ml.entities.UserIdentityConfiguration]] :return: If the `source_input` is a GitSource, returns a created DataIndex Job object. - :rtype: ~azure.ai.ml.entities.Job + :rtype: Union[~azure.ai.ml.entities.Index, ~azure.ai.ml.entities.Job] :raises ValueError: If the `source_input` is not type ~typing.Str or ~azure.ai.ml.entities._indexes.LocalSource. """ From ceea2d3af7a16fc277555803bd367b94f1428c18 Mon Sep 17 00:00:00 2001 From: Miles Holland Date: Thu, 13 Jun 2024 14:19:00 -0400 Subject: [PATCH 14/17] kevin's suggestion - remove redundant experimental warning --- sdk/ml/azure-ai-ml/azure/ai/ml/operations/_index_operations.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/sdk/ml/azure-ai-ml/azure/ai/ml/operations/_index_operations.py b/sdk/ml/azure-ai-ml/azure/ai/ml/operations/_index_operations.py index 6c7e08ad6b9f..0eddd0a42b20 100644 --- a/sdk/ml/azure-ai-ml/azure/ai/ml/operations/_index_operations.py +++ b/sdk/ml/azure-ai-ml/azure/ai/ml/operations/_index_operations.py @@ -24,7 +24,6 @@ ) from azure.ai.ml._telemetry import ActivityType, monitor_with_activity from azure.ai.ml._utils._asset_utils import _resolve_label_to_asset -from azure.ai.ml._utils._experimental import experimental from azure.ai.ml._utils._http_utils import HttpPipeline from azure.ai.ml._utils._logger_utils import OpsLogger from azure.ai.ml._utils.utils import _get_base_urls_from_discovery_service @@ -253,7 +252,6 @@ def cls(rest_indexes: Iterable[RestIndex]) -> List[Index]: return self._azure_ai_assets.indexes.list(name, list_view_type=list_view_type, cls=cls, **kwargs) # pylint: disable=too-many-locals - @experimental def build_index( self, *, From 79b288ae11acf4ed7a77587d562f62c869d2dbe0 Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Thu, 13 Jun 2024 20:35:41 +0000 Subject: [PATCH 15/17] make all init args keyword only --- .../ai/ml/entities/_indexes/model_config.py | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/model_config.py b/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/model_config.py index 8fa0fff43f4a..be26b0ccd4eb 100644 --- a/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/model_config.py +++ b/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/model_config.py @@ -12,7 +12,7 @@ ) -@dataclass(kw_only=True) +@dataclass @experimental class ModelConfiguration: """Configuration for a embedding model. @@ -44,6 +44,26 @@ class ModelConfiguration: deployment_name: Optional[str] model_kwargs: Dict[str, Any] + def __init__( + self, + *, + api_base: Optional[str], + api_key: Optional[str], + api_version: Optional[str], + connection_name: Optional[str], + connection_type: Optional[str], + model_name: Optional[str], + deployment_name: Optional[str], + model_kwargs: Dict[str, Any]): + self.api_base = api_base + self.api_key = api_key + self.api_version = api_version + self.connection_name = connection_name + self.connection_type = connection_type + self.model_name = model_name + self.deployment_name = deployment_name + self.model_kwargs = model_kwargs + @staticmethod def from_connection( connection: WorkspaceConnection, From f635647fbb4d35bdc3456ab6db651152e27cdc52 Mon Sep 17 00:00:00 2001 From: Miles Holland Date: Thu, 13 Jun 2024 17:22:36 -0400 Subject: [PATCH 16/17] re-order annotations --- .../azure-ai-ml/azure/ai/ml/entities/_indexes/model_config.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/model_config.py b/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/model_config.py index be26b0ccd4eb..2c570c7350e4 100644 --- a/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/model_config.py +++ b/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/model_config.py @@ -12,8 +12,8 @@ ) -@dataclass @experimental +@dataclass class ModelConfiguration: """Configuration for a embedding model. From c0b2256fb33a54b59e1b28942d05ae92780ca37e Mon Sep 17 00:00:00 2001 From: Miles Holland Date: Thu, 13 Jun 2024 20:02:39 -0400 Subject: [PATCH 17/17] run black --- .../entities/_indexes/input/_index_config.py | 1 + .../ai/ml/entities/_indexes/model_config.py | 21 ++++++++++--------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_index_config.py b/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_index_config.py index 44e34a911913..0eec691a76f2 100644 --- a/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_index_config.py +++ b/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/input/_index_config.py @@ -4,6 +4,7 @@ from typing import Optional + class IndexConfig: # pylint: disable=too-many-instance-attributes """Convenience class that contains all config values that for index creation that are NOT specific to the index source data or the created index type. Meant for internal use only diff --git a/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/model_config.py b/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/model_config.py index 2c570c7350e4..41212cb1650f 100644 --- a/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/model_config.py +++ b/sdk/ml/azure-ai-ml/azure/ai/ml/entities/_indexes/model_config.py @@ -45,16 +45,17 @@ class ModelConfiguration: model_kwargs: Dict[str, Any] def __init__( - self, - *, - api_base: Optional[str], - api_key: Optional[str], - api_version: Optional[str], - connection_name: Optional[str], - connection_type: Optional[str], - model_name: Optional[str], - deployment_name: Optional[str], - model_kwargs: Dict[str, Any]): + self, + *, + api_base: Optional[str], + api_key: Optional[str], + api_version: Optional[str], + connection_name: Optional[str], + connection_type: Optional[str], + model_name: Optional[str], + deployment_name: Optional[str], + model_kwargs: Dict[str, Any] + ): self.api_base = api_base self.api_key = api_key self.api_version = api_version