plug-in ai_embed_text (préversion)
S’applique à : ✅Azure Data Explorer
Le ai_embed_text
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 prend en charge les modèles d’incorporation du service Azure OpenAI accessibles à l’aide de l’identité managée.
Prérequis
- Un service Azure OpenAI configuré avec une identité managée
- Identité managée et stratégies de légende configurées pour autoriser la communication avec les services Azure OpenAI
Syntaxe
evaluate
ai_embed_text
(
text, connectionString [,
options [,
IncludeErrorMessages]])
En savoir plus sur les conventions de syntaxe.
Paramètres
Nom | Type | Requise | Description |
---|---|---|---|
texte | string |
✔️ | Texte à incorporer. La valeur peut être une référence de colonne ou une scalaire constante. |
connectionString | 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 . |
Options
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 | Type | Description |
---|---|---|
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 true sur , cette option est toujours définie sur false . |
Configurer des stratégies d’identité managée et de légende
Pour utiliser le ai_embed_text
plug-in, vous devez configurer les stratégies suivantes :
- identité managée : autorisez l’identité managée affectée par le système à s’authentifier auprès des services Azure OpenAI.
- légende : autorisez le domaine de point de terminaison du modèle IA.
Pour configurer ces stratégies, utilisez les commandes dans les étapes suivantes :
Configurez l’identité managée :
.alter-merge cluster policy managed_identity ``` [ { "ObjectId": "system", "AllowedUsages": "AzureAI" } ] ```
Configurez la stratégie de légende :
.alter-merge cluster policy callout ``` [ { "CalloutType": "azure_openai", "CalloutUriRegex": "https://[A-Za-z0-9\\-]{3,63}\\.openai\\.azure\\.com/.*", "CanCall": true } ] ```
Retours
Retourne les nouvelles colonnes d’incorporation suivantes :
- Colonne avec le suffixe _embedding 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_embed_text(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_embed_text(TextData, connectionString, options , true)
Bonnes 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_embed_text
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
).