Aptitud de inserción de Azure OpenAI
La aptitud de inserción de Azure OpenAI se conecta a un modelo de inserción implementado en el recurso de Azure OpenAI para generar inserciones durante la indexación. Los datos se procesan en la ubicación geográfica en la que se implementa el modelo.
Requisitos previos
El servicio Azure OpenAI debe tener un subdominio personalizado asociado. Si el servicio se creó a través de Azure Portal, este subdominio se genera automáticamente como parte de la configuración del servicio. Asegúrese de que el servicio incluye un subdominio personalizado antes de usarlo con la integración de la Búsqueda de Azure AI.
No se admiten los recursos del servicio OpenAI de Azure (con acceso a los modelos de inserción) creados en el portal de Azure AI Foundry. Solo los recursos de Azure OpenAI Service creados en Azure Portal son compatibles con la integración de aptitudes de Incrustación de Azure OpenAI.
El Asistente para importación y vectorización de datos en Azure Portal usa la aptitud Inserción de Azure OpenAI para vectorizar contenido. Puede ejecutar el asistente y revisar el conjunto de aptitudes generado para ver cómo el asistente compila la aptitud para insertar modelos.
Nota:
Esta aptitud está enlazada a Azure OpenAI y se cobra por el precio de pago por uso de Azure OpenAI existente.
@odata.type
Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill
Límites de datos
El tamaño máximo de una entrada de texto debe ser de 8000 tokens. Si la entrada supera el máximo permitido, el modelo produce un error de solicitud no válido. Para más información, consulte el concepto clave tokens en la documentación de Azure OpenAI. Considere la posibilidad de usar la aptitud División de texto si necesita fragmentación de datos.
Parámetros de la aptitud
Los parámetros distinguen mayúsculas de minúsculas.
Entradas | Descripción |
---|---|
resourceUri |
El URI del proveedor de modelos, en este caso, un recurso de Azure OpenAI. Este parámetro solo admite direcciones URL con dominio openai.azure.com , como https://<resourcename>.openai.azure.com . Si el punto de conexión de Azure OpenAI tiene una dirección URL con el dominio cognitiveservices.azure.com , como https://<resourcename>.cognitiveservices.azure.com , se debe crear primero un subdominio personalizado con openai.azure.com para el recurso de Azure OpenAI y usarlo https://<resourcename>.openai.azure.com en su lugar. |
apiKey |
Clave secreta que se usa para acceder al modelo. Si proporciona una clave, deje authIdentity vacío. Si establece apiKey y authIdentity , apiKey se usa en la conexión. |
deploymentId |
El nombre del modelo de inserción de Azure OpenAI implementado. El modelo debe ser un modelo de inserción, como text-embeding-ada-002. Consulte la lista de modelos de Azure OpenAI para ver los modelos admitidos. |
authIdentity |
Una identidad administrada por el usuario que usa el servicio de búsqueda para conectarse a Azure OpenAI. Puede usar una identidad administrada por el usuario o por el sistema. Para usar una identidad administrada del sistema, deje apiKey y authIdentity en blanco. La identidad administrada por el sistema se usa automáticamente. Una identidad administrada debe tener permisos de usuario de OpenAI de Cognitive Services para enviar texto a Azure OpenAI. |
modelName |
Esta propiedad es necesaria si el conjunto de aptitudes se crea mediante la API REST 2024-05-01-preview o 2024-07-01. Establezca esta propiedad en el nombre de implementación de un modelo de inserción de Azure OpenAI implementado en el proveedor especificado mediante resourceUri e identificado mediante deploymentId . Actualmente, los valores admitidos son text-embedding-ada-002 , text-embedding-3-large y text-embedding-3-small . |
dimensions |
(Opcional, introducido en la API REST 2024-05-01-preview). Dimensiones de las inserciones que quiere generar si el modelo admite la reducción de las dimensiones de inserción. Los rangos admitidos se indican a continuación. El valor predeterminado es el valor máximo de las dimensiones de cada modelo si no se especifica. En el caso de los conjuntos de aptitudes creados con 2023-10-01-preview, las dimensiones se fijan en 1536. |
Dimensiones admitidas por modelName
Las dimensiones admitidas para una aptitud de inserción de Azure OpenAI dependen del valor modelName
configurado.
modelName |
Dimensiones mínimas | Dimensiones máximas |
---|---|---|
text-embedding-ada-002 | 1536 | 1536 |
text-embedding-3-large | 1 | 3072 |
text-embedding-3-small | 1 | 1536 |
Entradas de la aptitud
Entrada | Descripción |
---|---|
text |
El texto de entrada que se va a vectorizar. Si usa la fragmentación de datos, el origen podría ser /document/pages/* . |
Salidas de la aptitud
Salida | Descripción |
---|---|
embedding |
Inserción vectorial para el texto de entrada. |
Definición de ejemplo
Considere un registro que tiene los siguientes campos:
{
"content": "Microsoft released Windows 10."
}
A continuación, la definición de la aptitud podría tener este aspecto:
{
"@odata.type": "#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill",
"description": "Connects a deployed embedding model.",
"resourceUri": "https://my-demo-openai-eastus.openai.azure.com/",
"deploymentId": "my-text-embedding-ada-002-model",
"modelName": "text-embedding-ada-002",
"dimensions": 1536,
"inputs": [
{
"name": "text",
"source": "/document/content"
}
],
"outputs": [
{
"name": "embedding"
}
]
}
Salida de muestra
Para el texto de entrada especificado, se genera una salida de inserción vectorizada.
{
"embedding": [
0.018990106880664825,
-0.0073809814639389515,
....
0.021276434883475304,
]
}
La salida reside en la memoria. Para enviar esta salida a un campo del índice de búsqueda, debe definir un valor outputFieldMapping que asigne la salida de inserción vectorizada (que es una matriz) a un campo de vector. Si la salida de la aptitud reside en el nodo de inserción del documento y content_vector es el campo del índice de búsqueda, el valor outputFieldMapping en el indexador debe ser similar al siguiente:
"outputFieldMappings": [
{
"sourceFieldName": "/document/embedding/*",
"targetFieldName": "content_vector"
}
]
procedimientos recomendados
A continuación se muestran algunos procedimientos recomendados que debe tener en cuenta al usar esta aptitud:
Si alcanza el límite de TPM (tokens por minuto) de Azure OpenAI, tenga en cuenta el aviso de límites de cuota para que pueda solucionarlo en consecuencia. Consulte la documentación de supervisión de Azure OpenAI para más información sobre el rendimiento de la instancia de Azure OpenAI.
La implementación del modelo de inserciones de Azure OpenAI que se usa para esta aptitud debe ser idealmente independiente de la implementación que se utiliza para otros casos de uso, incluido el vectorizador de consultas. Esto ayuda a que cada implementación se adapte a su caso de uso específico, lo que conduce a optimizar el rendimiento e identificar el tráfico desde el indexador y las llamadas de inserción de índices fácilmente.
La instancia de Azure OpenAI debe estar en la misma región o al menos geográficamente cerca de la región donde se hospeda el servicio AI Search. Esto reduce la latencia y mejora la velocidad de transferencia de datos entre los servicios.
Si tiene un límite de TPM (Tokens por minuto) de Azure OpenAI mayor que el predeterminado publicado en la documentación de cuotas y límites, abra un caso de soporte técnico con el equipo de Azure AI Search, para que esto se pueda ajustar en consecuencia. Esto ayuda a que el proceso de indexación no se ralentice innecesariamente mediante el límite de TPM predeterminado documentado, si tiene límites más altos.
Para obtener ejemplos y muestras de código funcionales con esta aptitud, consulte los vínculos siguientes:
Errores y advertencias
Condición | Resultado |
---|---|
URI nulo o no válido | Error |
DeploymentID nulo o no válido | Error |
El texto está vacío | Advertencia |
El texto tiene más de 8000 tokens | Error |