Compartir vía


Origen de datos: Índice de Azure Machine Learning (versión preliminar)

Opciones configurables del índice de Azure Machine Learning al usar Azure OpenAI en los datos. Este origen de datos se admite en la versión 2024-02-15-preview de la API.

Nombre Type Obligatorio Descripción
parameters Parámetros True Parámetros que se usarán al configurar el índice de Azure Machine Learning.
type string True Debe ser azure_ml_index.

Parámetros

Nombre Type Obligatorio Description
project_resource_id string True Id. de recurso del proyecto de Azure Machine Learning.
name string True Nombre del índice de Azure Machine Learning.
version string True Versión del índice de Azure Machine Learning.
authentication Uno de los elementos AccessTokenAuthenticationOptions, SystemAssignedManagedIdentityAuthenticationOptions o UserAssignedManagedIdentityAuthenticationOptions True Método de autenticación que se va a usar al acceder al origen de datos definido.
in_scope boolean False Si las consultas deben restringirse al uso de datos indexados. El valor predeterminado es True.
role_information string False Proporcione instrucciones al modelo sobre cómo debe comportarse y cualquier contexto al que debe hacer referencia al generar una respuesta. Puede describir la personalidad del asistente y indicarle cómo dar formato a las respuestas.
strictness integer False La configuración estricta del filtrado de relevancia de búsqueda. Cuanto más estricta sea, mayor será la precisión, pero una menor coincidencia de la respuesta. El valor predeterminado es 3.
top_n_documents integer False El número superior configurado de documentos que se van a presentar para la consulta configurada. El valor predeterminado es 5.
filter string False Filtro de búsqueda. Solo se admite si el índice de Azure Machine Learning es de tipo Azure Cognitive Search.

Opciones de autenticación de token de acceso

Las opciones de autenticación de Azure OpenAI en los datos al usar un token de acceso.

Nombre Type Obligatorio Description
access_token string True El token de acceso para usar en la autenticación.
type string True Debe ser access_token.

Opciones de autenticación de identidad administrada asignadas por el sistema

Las opciones de autenticación de Azure OpenAI en los datos al usar una identidad administrada asignada por el sistema.

Nombre Type Obligatorio Description
type string True Debe ser system_assigned_managed_identity.

Opciones de autenticación de identidad administrada asignadas por el usuario

Las opciones de autenticación de Azure OpenAI en los datos al usar una identidad administrada asignada por el usuario.

Nombre Type Obligatorio Description
managed_identity_resource_id string True Identificador de recurso de la identidad administrada asignada por el usuario que se va a usar para la autenticación.
type string True Debe ser user_assigned_managed_identity.

Ejemplos

Requisitos previos:

  • Configura las asignaciones de roles desde la identidad administrada asignada por el sistema de Azure OpenAI al recurso del área de trabajo de Azure Machine Learning. Rol necesario: AzureML Data Scientist.
  • Configure las asignaciones de roles del usuario al recurso de Azure OpenAI. Rol necesario: Cognitive Services OpenAI User.
  • Instale la CLI de Az y ejecute az login.
  • Define las siguientes variables de entorno: AzureOpenAIEndpoint, ChatCompletionsDeploymentName, ProjectResourceId, IndexName y IndexVersion.
  • Ejecuta export MSYS_NO_PATHCONV=1 si usas MINGW.
export AzureOpenAIEndpoint=https://example.openai.azure.com/
export ChatCompletionsDeploymentName=turbo
export ProjectResourceId='/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.MachineLearningServices/workspaces/{workspace-id}'
export IndexName=testamlindex
export IndexVersion=2

Instale los paquetes de pip más recientes openai, azure-identity.

import os
from openai import AzureOpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider

endpoint = os.environ.get("AzureOpenAIEndpoint")
deployment = os.environ.get("ChatCompletionsDeploymentName")
project_resource_id = os.environ.get("ProjectResourceId")
index_name = os.environ.get("IndexName")
index_version = os.environ.get("IndexVersion")

token_provider = get_bearer_token_provider(
    DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default")

client = AzureOpenAI(
    azure_endpoint=endpoint,
    azure_ad_token_provider=token_provider,
    api_version="2024-02-15-preview",
)

completion = client.chat.completions.create(
    model=deployment,
    messages=[
        {
            "role": "user",
            "content": "Who is DRI?",
        },
    ],
    extra_body={
        "data_sources": [
            {
                "type": "azure_ml_index",
                "parameters": {
                    "project_resource_id": project_resource_id,
                    "name": index_name,
                    "version": index_version,
                    "authentication": {
                        "type": "system_assigned_managed_identity"
                    },
                }
            }
        ]
    }
)

print(completion.model_dump_json(indent=2))