complemento ai_embed_text (versión preliminar)
Se aplica a: ✅Azure Data Explorer
El ai_embed_text
complemento permite insertar texto mediante modelos de lenguaje, lo que permite varios escenarios relacionados con la inteligencia artificial, como aplicaciones de generación aumentada de recuperación (RAG) y búsqueda semántica. El complemento admite la inserción de modelos de inserción del servicio OpenAI de Azure a los que se accede mediante la identidad administrada.
Requisitos previos
- Un servicio OpenAI de Azure configurado con identidad administrada
- Directivas de identidad administrada y llamada configuradas para permitir la comunicación con los servicios de Azure OpenAI
Sintaxis
evaluate
ai_embed_text
(
text, connectionString [ options [,
,
IncludeErrorMessages]])
Obtenga más información sobre las convenciones de sintaxis.
Parámetros
Nombre | Type | Obligatorio | Descripción |
---|---|---|---|
text | string |
✔️ | Texto que se va a insertar. El valor puede ser una referencia de columna o un escalar constante. |
connectionString | string |
✔️ | El cadena de conexión para el modelo de lenguaje con el formato <ModelDeploymentUri>;<AuthenticationMethod> ; reemplace <ModelDeploymentUri> y <AuthenticationMethod> por el URI de implementación del modelo de IA y el método de autenticación respectivamente. |
options | dynamic |
Las opciones que controlan las llamadas al punto de conexión del modelo de inserción. Vea Opciones. | |
IncludeErrorMessages | bool |
Indica si se van a generar errores en una nueva columna de la tabla de salida. Valor predeterminado: false . |
Opciones
En la tabla siguiente se describen las opciones que controlan la forma en que se realizan las solicitudes al punto de conexión del modelo de inserción.
Nombre | Escribir | Descripción |
---|---|---|
RecordsPerRequest |
int |
Especifica el número de registros que se van a procesar por solicitud. Valor predeterminado: 1 . |
CharsPerRequest |
int |
Especifica el número máximo de caracteres que se van a procesar por solicitud. Valor predeterminado: 0 (ilimitado). Azure OpenAI cuenta tokens, con cada token que se traduce aproximadamente a cuatro caracteres. |
RetriesOnThrottling |
int |
Especifica el número de reintentos cuando se produce la limitación. Valor predeterminado: 0 . |
GlobalTimeout |
timespan |
Especifica el tiempo máximo para esperar una respuesta del modelo de inserción. Valor predeterminado: null |
ModelParameters |
dynamic |
Parámetros específicos del modelo de inserción, como insertar dimensiones o identificadores de usuario con fines de supervisión. Valor predeterminado: null . |
ReturnSuccessfulOnly |
bool |
Indica si se devuelven solo los elementos procesados correctamente. Valor predeterminado: false . Si el parámetro IncludeErrorMessages está establecido en true , esta opción siempre se establece false en . |
Configuración de directivas de identidad administrada y llamada
Para usar el ai_embed_text
complemento, debe configurar las siguientes directivas:
- identidad administrada: permita que la identidad administrada asignada por el sistema se autentique en los servicios de Azure OpenAI.
- callout: autorice el dominio de punto de conexión del modelo de IA.
Para configurar estas directivas, use los comandos de los pasos siguientes:
Configure la identidad administrada:
.alter-merge cluster policy managed_identity ``` [ { "ObjectId": "system", "AllowedUsages": "AzureAI" } ] ```
Configure la directiva de llamada:
.alter-merge cluster policy callout ``` [ { "CalloutType": "azure_openai", "CalloutUriRegex": "https://[A-Za-z0-9\\-]{3,63}\\.openai\\.azure\\.com/.*", "CanCall": true } ] ```
Devoluciones
Devuelve las siguientes columnas de inserción nuevas:
- Columna con el sufijo _embedding que contiene los valores de inserción
- Si está configurado para devolver errores, una columna con el sufijo _embedding_error , que contiene cadenas de error o se deja vacía si la operación se realiza correctamente.
Dependiendo del tipo de entrada, el complemento devuelve resultados diferentes:
- Referencia de columna: devuelve uno o varios registros con columnas adicionales prefijos por el nombre de columna de referencia. Por ejemplo, si la columna de entrada se denomina TextData, las columnas de salida se denominan TextData_embedding y, si están configuradas para devolver errores, TextData_embedding_error.
- Escalar constante: devuelve un único registro con columnas adicionales que no tienen el prefijo. Los nombres de columna se _embedding y, si están configurados para devolver errores, _embedding_error.
Ejemplos
En el ejemplo siguiente se inserta el texto Embed this text using AI
mediante el modelo de inserción de Azure OpenAI.
let expression = 'Embed this text using AI';
let connectionString = 'https://myaccount.openai.azure.com/openai/deployments/text-embedding-3-small/embeddings?api-version=2024-06-01;managed_identity=system';
evaluate ai_embed_text(expression, connectionString)
En el ejemplo siguiente se insertan varios textos mediante el modelo de inserción de Azure OpenAI.
let connectionString = 'https://myaccount.openai.azure.com/openai/deployments/text-embedding-3-small/embeddings?api-version=2024-06-01;managed_identity=system';
let options = dynamic({
"RecordsPerRequest": 10,
"CharsPerRequest": 10000,
"RetriesOnThrottling": 1,
"GlobalTimeout": 2m
});
datatable(TextData: string)
[
"First text to embed",
"Second text to embed",
"Third text to embed"
]
| evaluate ai_embed_text(TextData, connectionString, options , true)
procedimientos recomendados
Los modelos de inserción de Azure OpenAI están sujetos a una limitación intensa y las llamadas frecuentes a este complemento pueden alcanzar rápidamente los límites.
Para usar eficazmente el ai_embed_text
complemento al minimizar la limitación y los costos, siga estos procedimientos recomendados:
- Tamaño de la solicitud de control: ajuste el número de registros (
RecordsPerRequest
) y caracteres por solicitud (CharsPerRequest
). - Control del tiempo de espera de la consulta: se establece
GlobalTimeout
en un valor inferior al tiempo de espera de la consulta para asegurarse de que el progreso no se pierde en llamadas correctas hasta ese momento. - Controlar los límites de velocidad de forma más correcta: establezca reintentos en la limitación (
RetriesOnThrottling
).