Origen de datos: Búsqueda de Azure AI
Las opciones configurables de Azure AI Search al usar Azure OpenAI en los datos. Este origen de datos se admite en la versión 2024-02-01
de la API.
Nombre | Type | Obligatorio | Descripción |
---|---|---|---|
parameters |
Parámetros | True | Parámetros que se usarán al configurar Azure Search. |
type |
string | True | Debe ser azure_search . |
Parámetros
Nombre | Type | Obligatorio | Description |
---|---|---|---|
endpoint |
string | True | Ruta de acceso del punto de conexión absoluto para el recurso de Azure Search que se va a usar. |
index_name |
string | True | Nombre del índice que se va a usar en el recurso de Azure Search al que se hace referencia. |
authentication |
Una de ApiKeyAuthenticationOptions, SystemAssignedManagedIdentityAuthenticationOptions, UserAssignedManagedIdentityAuthenticationOptions, onYourDataAccessTokenAuthenticationOptions | True | Método de autenticación que se va a usar al acceder al origen de datos definido. |
embedding_dependency |
Uno de DeploymentNameVectorizationSource, EndpointVectorizationSource | False | Dependencia de inserción para el vector de búsqueda. Obligatorio cuando query_type es vector , vector_simple_hybrid o vector_semantic_hybrid . |
fields_mapping |
FieldsMappingOptions | False | Comportamiento personalizado de asignación de campos que se usará al interactuar con el índice de búsqueda. |
filter |
string | False | Filtro de búsqueda. |
in_scope |
boolean | False | Si las consultas deben restringirse al uso de datos indexados. El valor predeterminado es True . |
query_type |
QueryType | False | Tipo de consulta que se va a usar con Azure Search. Valor predeterminado: simple |
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. |
semantic_configuration |
string | False | Configuración semántica de la consulta. Obligatorio cuando query_type es semantic o vector_semantic_hybrid . |
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 . |
max_search_queries |
integer | False | El número máximo de consultas reescritas debe enviarse al proveedor de búsqueda para un mensaje de usuario. Si no se especifica, el sistema decidirá el número de consultas que se van a enviar. |
allow_partial_result |
integer | False | Si se especifica como true, el sistema permitirá usar resultados de búsqueda parciales y se producirá un error en la solicitud si se produce un error en todas las consultas. Si no se especifica o se especifica como false, se producirá un error en la solicitud si se produce lo mismo en alguna consulta de búsqueda. |
include_contexts |
array | False | Las propiedades incluidas del contexto de salida. Si no se especifican, el valor predeterminado es citations y intent . Los valores pueden ser citations , intent y all_retrieved_documents . |
Opciones de autenticación de clave de API
Las opciones de autenticación de Azure OpenAI en los datos al usar una clave de API.
Nombre | Type | Obligatorio | Description |
---|---|---|---|
key |
string | True | Clave de API que se va a usar para la autenticación. |
type |
string | True | Debe ser api_key . |
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 . |
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 . |
Origen de vectorización de nombre de implementación
Los detalles del origen de vectorización, que usa Azure OpenAI en los datos al aplicar el vector de búsqueda. Este origen de vectorización se basa en un nombre de implementación de modelos de inserción interno en el mismo recurso de Azure OpenAI. Este origen de vectorización le permite usar vector de búsqueda sin clave de API de Azure OpenAI y sin acceso a la red pública de Azure OpenAI.
Nombre | Type | Obligatorio | Description |
---|---|---|---|
deployment_name |
string | True | El nombre de implementación de modelo de inserción dentro del mismo recurso de Azure OpenAI. |
type |
string | True | Debe ser deployment_name . |
dimensions |
integer | False | El número de dimensiones que deben tener las inserciones. Solo se admite en modelos text-embedding-3 y versiones posteriores. |
Origen de vectorización de punto de conexión
Los detalles del origen de vectorización, que usa Azure OpenAI en los datos al aplicar el vector de búsqueda. Este origen de vectorización se basa en el punto de conexión de la API de inserción de Azure OpenAI.
Nombre | Type | Obligatorio | Description |
---|---|---|---|
endpoint |
string | True | Especifica la dirección URL del punto de conexión de recurso desde la que se deben recuperar las incrustaciones. Debe tener el formato https://{YOUR_RESOURCE_NAME}.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/embeddings . No se permite el parámetro de consulta api-version. |
authentication |
ApiKeyAuthenticationOptions | True | Especifica las opciones de autenticación que se usarán al recuperar incrustaciones desde el punto de conexión especificado. |
type |
string | True | Debe ser endpoint . |
dimensions |
integer | False | El número de dimensiones que deben tener las inserciones. Solo se admite en modelos text-embedding-3 y versiones posteriores. |
Opciones de asignación de campos
Opciones opcionales para controlar cómo se procesan los campos al usar un recurso de Azure Search configurado.
Nombre | Type | Obligatorio | Descripción |
---|---|---|---|
content_fields |
string[] | False | Nombre de los campos de índice que se deben tratar como contenido. |
vector_fields |
string[] | False | Nombres de campos que representan datos vectoriales. |
content_fields_separator |
string | False | Patrón separador que deben usar los campos de contenido. El valor predeterminado es \n . |
filepath_field |
string | False | Nombre del campo de índice que se va a usar como ruta de acceso de archivo. |
title_field |
string | False | Nombre del campo de índice que se va a usar como título. |
url_field |
string | False | Nombre del campo de índice que se va a usar como dirección URL. |
Tipo de consulta
Tipo de consulta de recuperación de Azure Search que se debe ejecutar al usarlo como una instancia de Azure OpenAI en los datos.
Valor de enumeración | Descripción |
---|---|
simple |
Representa el analizador de consultas simple predeterminado. |
semantic |
Representa el analizador de consultas semánticas para el modelado semántico avanzado. |
vector |
Representa el vector de búsqueda sobre los datos calculados. |
vector_simple_hybrid |
Representa una combinación de la estrategia de consulta simple con datos vectoriales. |
vector_semantic_hybrid |
Representa una combinación de búsqueda semántica y consulta de datos vectoriales. |
Ejemplos
Requisitos previos:
- Configure las asignaciones de roles desde la identidad administrada asignada por el sistema OpenAI de Azure al Servicio Azure Search. Roles necesarios:
Search Index Data Reader
,Search Service Contributor
. - Configure las asignaciones de roles del usuario al recurso de Azure OpenAI. Rol necesario:
Cognitive Services OpenAI User
. - Instale CLI de Az y ejecute
az login
. - Defina las siguientes variables de entorno:
AzureOpenAIEndpoint
,ChatCompletionsDeploymentName
,SearchEndpoint
,SearchIndex
.
export AzureOpenAIEndpoint=https://example.openai.azure.com/
export ChatCompletionsDeploymentName=turbo
export SearchEndpoint=https://example.search.windows.net
export SearchIndex=example-index
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")
search_endpoint = os.environ.get("SearchEndpoint")
search_index = os.environ.get("SearchIndex")
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-01",
)
completion = client.chat.completions.create(
model=deployment,
messages=[
{
"role": "user",
"content": "Who is DRI?",
},
],
extra_body={
"data_sources": [
{
"type": "azure_search",
"parameters": {
"endpoint": search_endpoint,
"index_name": search_index,
"authentication": {
"type": "system_assigned_managed_identity"
}
}
}
]
}
)
print(completion.model_dump_json(indent=2))