Compartir a través de


ai_embeddings plugin (versión preliminar)

Se aplica a: ✅Microsoft FabricAzure Data Explorer

El ai_embeddings 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 usa los modelos de inserción del servicio OpenAI de Azure y se puede acceder a ellos mediante una identidad administrada o la identidad del usuario (suplantación).

El ai_embeddings 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 usa los modelos de inserción del servicio Azure OpenAI y se puede acceder a ellos mediante la identidad del usuario (suplantación).

Prerrequisitos

  • Un servicio De Azure OpenAI configurado con al menos el rol (usuario openAI de Cognitive Services) asignado a la identidad que se usa.
  • Directiva de llamada configurada para permitir llamadas a servicios de INTELIGENCIA ARTIFICIAL.
  • Al usar la identidad administrada para acceder al servicio Azure OpenAI, configure la directiva de identidad administrada para permitir la comunicación con el servicio.

Sintaxis

evaluate ai_embeddings ( text, connectionString [ options,]]

Obtenga más información sobre las convenciones de sintaxis.

Parámetros

Nombre Tipo Obligatorio Descripción
Mensaje de texto 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.
Opciones 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 Tipo 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 la directiva de llamada

La azure_openaidirectiva de llamada habilita las llamadas externas a los servicios de Azure AI.

Para configurar la directiva de llamada para autorizar el dominio de punto de conexión del modelo de IA:

.alter-merge cluster policy callout
```
[
  {
    "CalloutType": "azure_openai",
    "CalloutUriRegex": "https://[A-Za-z0-9\\-]{3,63}\\.openai\\.azure\\.com/.*",
    "CanCall": true
  }
]
```

Configuración de la identidad administrada

Al usar la identidad administrada para acceder al servicio Azure OpenAI, debe configurar la directiva de identidad administrada para permitir que la identidad administrada asignada por el sistema se autentique en el servicio Azure OpenAI.

Para configurar la identidad administrada:

.alter-merge cluster policy managed_identity
```
[
  {
    "ObjectId": "system",
    "AllowedUsages": "AzureAI"
  }
]
```

Devoluciones

Devuelve las siguientes columnas de inserción nuevas:

  • Una columna con el sufijo _embeddings que contiene los valores de incrustació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_embeddings(expression, connectionString)
let connectionString = 'https://myaccount.openai.azure.com/openai/deployments/text-embedding-3-small/embeddings?api-version=2024-06-01;impersonate';
evaluate ai_embeddings(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_embeddings(TextData, connectionString, options , true)
let connectionString = 'https://myaccount.openai.azure.com/openai/deployments/text-embedding-3-small/embeddings?api-version=2024-06-01;impersonate';
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_embeddings(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_embeddings 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).