Partager via


ai_embeddings plugin (aperçu)

S’applique à : ✅Microsoft FabricAzure Data Explorer

Le ai_embeddings plug-in permet l’incorporation de texte à l’aide de modèles de langage, ce qui permet d’activer différents scénarios liés à l’IA, tels que les applications DE génération augmentée de récupération (RAG) et la recherche sémantique. Le plug-in utilise les modèles d’incorporation du service Azure OpenAI et est accessible à l’aide d’une identité managée ou de l’identité de l’utilisateur (emprunt d’identité).

Le ai_embeddings plug-in permet l’incorporation de texte à l’aide de modèles de langage, ce qui permet d’activer différents scénarios liés à l’IA, tels que les applications DE génération augmentée de récupération (RAG) et la recherche sémantique. Le plug-in utilise les modèles d’incorporation du service Azure OpenAI et est accessible à l’aide de l’identité de l’utilisateur (emprunt d’identité).

Conditions préalables

  • Lorsque vous utilisez l’identité managée pour accéder au service Azure OpenAI, configurez la stratégie d’identité managée pour autoriser la communication avec le service.

Syntaxe

evaluate ai_embeddings ( text, connectionString [,options [,IncludeErrorMessages]])

En savoir plus sur les conventions de syntaxe .

Paramètres

Nom Catégorie Obligatoire Descriptif
texte string ✔️ Texte à incorporer. La valeur peut être une référence de colonne ou une scalaire constante.
connexionChaîne string ✔️ Les chaîne de connexion pour le modèle de langage au format <ModelDeploymentUri>;<AuthenticationMethod>; remplacez <ModelDeploymentUri> et <AuthenticationMethod> par l’URI de déploiement du modèle IA et la méthode d’authentification respectivement.
Options dynamic Options qui contrôlent les appels au point de terminaison du modèle d’incorporation. Consultez Options.
IncludeErrorMessages bool Indique s’il faut générer des erreurs dans une nouvelle colonne de la table de sortie. Valeur par défaut : false.

Paramètres

Le tableau suivant décrit les options qui contrôlent la façon dont les requêtes sont adressées au point de terminaison du modèle incorporé.

Nom Catégorie Descriptif
RecordsPerRequest int Spécifie le nombre d’enregistrements à traiter par requête. Valeur par défaut : 1.
CharsPerRequest int Spécifie le nombre maximal de caractères à traiter par requête. Valeur par défaut : 0 (illimité). Azure OpenAI compte des jetons, chaque jeton se traduit approximativement en quatre caractères.
RetriesOnThrottling int Spécifie le nombre de nouvelles tentatives lors de la limitation. Valeur par défaut : 0.
GlobalTimeout timespan Spécifie la durée maximale d’attente d’une réponse du modèle d’incorporation. Valeur par défaut : null
ModelParameters dynamic Paramètres spécifiques au modèle d’incorporation, tels que les dimensions d’incorporation ou les identificateurs utilisateur à des fins de surveillance. Valeur par défaut : null.
ReturnSuccessfulOnly bool Indique s’il faut retourner uniquement les éléments traités avec succès. Valeur par défaut : false. Si le paramètre IncludeErrorMessages est défini truesur , cette option est toujours définie sur false.

Configurer la stratégie de légende

La azure_openaistratégie de légende active les appels externes aux services Azure AI.

Pour configurer la stratégie de légende pour autoriser le domaine de point de terminaison du modèle IA :

.alter-merge cluster policy callout
```
[
  {
    "CalloutType": "azure_openai",
    "CalloutUriRegex": "https://[A-Za-z0-9-]{3,63}\\.(?:openai\\.azure\\.com|cognitiveservices\\.azure\\.com|cognitive\\.microsoft\\.com|services\\.ai\\.azure\\.com)(?:/.*)?",
    "CanCall": true
  }
]
```

Configurer l’identité managée

Lorsque vous utilisez l’identité managée pour accéder au service Azure OpenAI, vous devez configurer la stratégie d’identité managée pour permettre à l’identité managée affectée par le système de s’authentifier auprès d’Azure OpenAI Service.

Pour configurer l’identité managée :

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

Retours

Retourne les nouvelles colonnes d’incorporation suivantes :

  • Une colonne avec le suffixe _embeddings qui contient les valeurs d’incorporation
  • S’il est configuré pour retourner des erreurs, une colonne avec le suffixe _embedding_error , qui contient des chaînes d’erreur ou est laissée vide si l’opération réussit.

Selon le type d’entrée, le plug-in retourne des résultats différents :

  • Référence de colonne : retourne un ou plusieurs enregistrements avec des colonnes supplémentaires sont précédés du nom de colonne de référence. Par exemple, si la colonne d’entrée est nommée TextData, les colonnes de sortie sont nommées TextData_embedding et, si elles sont configurées pour retourner des erreurs, TextData_embedding_error.
  • Scalaire constante : retourne un enregistrement unique avec des colonnes supplémentaires qui ne sont pas préfixées. Les noms de colonnes sont _embedding et, s’ils sont configurés pour retourner des erreurs, _embedding_error.

Exemples

L’exemple suivant incorpore le texte Embed this text using AI à l’aide du modèle d’incorporation 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)

L’exemple suivant incorpore plusieurs textes à l’aide du modèle d’incorporation 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)

Meilleures pratiques

Les modèles d’incorporation Azure OpenAI sont soumis à une limitation importante et les appels fréquents à ce plug-in peuvent rapidement atteindre des limites de limitation.

Pour utiliser efficacement le ai_embeddings plug-in tout en réduisant la limitation et les coûts, suivez les bonnes pratiques suivantes :

  • Taille de la demande de contrôle : ajustez le nombre d’enregistrements (RecordsPerRequest) et les caractères par requête (CharsPerRequest).
  • Contrôlez le délai d’expiration de la requête : définissez GlobalTimeout sur une valeur inférieure au délai d’expiration de la requête pour vous assurer que la progression n’est pas perdue lors des appels réussis jusqu’à ce point.
  • Gérer les limites de débit plus normalement : définissez les nouvelles tentatives sur la limitation (RetriesOnThrottling).
  • series_cosine_similarity()