Compartir a través de


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

Sintaxis

evaluateai_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 falseen .

Configuración de directivas de identidad administrada y llamada

Para usar el ai_embed_text complemento, debe configurar las siguientes directivas:

Para configurar estas directivas, use los comandos de los pasos siguientes:

  1. Configure la identidad administrada:

    .alter-merge cluster policy managed_identity
    ```
    [
      {
        "ObjectId": "system",
        "AllowedUsages": "AzureAI"
      }
    ]
    ```
    
  2. 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).