Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :✅ point de terminaison pour les analyses SQL et entrepôt de données dans Microsoft Fabric
Important
Cette fonctionnalité est en version préliminaire.
Le point de terminaison d’analyse Fabric Data Warehouse et SQL fournit des fonctions IA intégrées que vous pouvez utiliser pour analyser, classifier, synthétiser et transformer du texte directement dans des requêtes SQL. En utilisant ces fonctions, vous pouvez effectuer un traitement de texte avancé sans quitter votre environnement de données. Dans ce tutoriel, découvrez comment utiliser des fonctions IA pour transformer du texte.
| Fonction | Objectif | Exemple de syntaxe |
|---|---|---|
AI_ANALYZE_SENTIMENT |
Détecter le sentiment du texte fourni | AI_ANALYZE_SENTIMENT(<text>) |
AI_CLASSIFY |
Classifier du texte en fonction des étiquettes fournies | AI_CLASSIFY(<text>, <class1>, <class2>, ...) |
AI_EXTRACT |
Extraire des entités en tant que propriétés JSON | AI_EXTRACT(<text>, <class1>, <class2>, ...) |
AI_SUMMARIZE |
Résumer le texte | AI_SUMMARIZE(<text>) |
AI_GENERATE_RESPONSE |
Générer une réponse basée sur l’invite | AI_GENERATE_RESPONSE(<prompt>, <data>) |
AI_TRANSLATE |
Traduire du texte d’entrée en langue cible spécifiée | AI_TRANSLATE(<text>, <lang_code>) |
AI_FIX_GRAMMAR |
Corriger la grammaire dans le texte | AI_FIX_GRAMMAR(<text>) |
Ces fonctions appellent des API IA externes pour traiter du texte, ce qui peut affecter les performances des requêtes. Pour optimiser l’efficacité, évitez d’appliquer des transformations de texte répétitives dans SELECT des requêtes sur le même jeu de données. Au lieu de cela, précomputez et matérialisez les résultats des fonctions IA en tant que colonnes distinctes ou dans des tables intermédiaires.
Avertissement
Les fonctions retournent NULL si le modèle IA ne peut pas traiter le texte. Les raisons courantes sont les suivantes :
- Les règles d’IA responsables bloquent le contenu inapproprié dans le texte d’entrée.
- Le texte d'entrée dépasse les limites de tokens. Le modèle actuel prend en charge jusqu’à 15 Ko de texte.
La vitesse de traitement classique des fonctions IA est de 20 à 100 lignes par seconde. Si vous rencontrez des performances plus lentes, signalez la requête problématique en tant que problème.
Prerequisites
- Pour utiliser des fonctions IA avec le point de terminaison IA intégré dans Fabric, votre administrateur doit activer l'interrupteur de client pour Copilot et d'autres fonctionnalités fonctionnant sur Azure OpenAI.
- Selon votre emplacement, vous devrez peut-être activer un paramètre de locataire pour le traitement intergéographique. En savoir plus sur les régions disponibles pour Azure OpenAI Service.
- Vous avez besoin d’une capacité Fabric payante (F2 ou ultérieure, ou toute édition P).
- Vous pouvez utiliser des fonctions IA uniquement dans les régions prises en charge.
Vérifiez les conditions préalables requises pour les fonctions IA pour connaître les prérequis supplémentaires.
Analyser les sentiments
La AI_ANALYZE_SENTIMENT(text) fonction analyse les sentiments de l’entrée text et retourne l’une des valeurs suivantes : positive, , negative, mixedou neutral.
Exemple :
SELECT AI_ANALYZE_SENTIMENT('This hotel was great!') AS sentiment;
Résultat attendu :positive
Pour plus d’informations, consultez AI_ANALYZE_SENTIMENT (Transact-SQL).
Classifier le texte
La AI_CLASSIFY(text, class1, class2, ...) fonction classifie l’entrée text dans l’une des catégories fournies.
Exemple :
SELECT AI_CLASSIFY('Room was dirty', 'service','dirt','food') AS classification;
Résultat attendu :dirt
Pour plus d’informations, consultez AI_CLASSIFY (Transact-SQL).
Extraire des entités du texte
La AI_EXTRACT(text, class1, class2, ...) fonction extrait les entités de l’entrée text en fonction des classes spécifiées.
Exemple :
SELECT AI_EXTRACT('Check-in was late and room dirty', 'sentiment','problem') AS extraction;
Résultat attendu :{"sentiment":"Negative","problem":"Dirty room"}
Pour plus d’informations, consultez AI_EXTRACT (Transact-SQL).
Générer une réponse
La AI_GENERATE_RESPONSE(prompt, data) fonction génère une réponse en fonction d’une réponse donnée prompt et facultative data.
Exemple :
SELECT AI_GENERATE_RESPONSE('Reply in 20 words:', 'The room was noisy.') AS response;
Résultat attendu : « Nous nous excusons sincèrement pour les inconvénients causés par le bruit et nous sommes engagés à améliorer nos mesures d’insonorisation. »
Pour plus d’informations, consultez AI_GENERATE_RESPONSE (Transact-SQL).
Résumer le texte
La AI_SUMMARIZE(text) fonction récapitule l’entrée text dans une version concise.
Exemple :
SELECT AI_SUMMARIZE('The hotel was clean and staff were friendly.') AS summary;
Résultat attendu : 'Hôtel propre, personnel convivial.'
Pour plus d’informations, consultez AI_SUMMARIZE (Transact-SQL).
Traduire le texte
La fonction AI_TRANSLATE(text, lang_code) traduit text dans la langue spécifiée en utilisant lang_code.
Les codes de langue pris en charge sont de (allemand), en (anglais), fr (français), it (italien), es (espagnol), (grec), el (polonais), pl (suédois), svfi (finnois) et cs (tchèque).
Exemple :
SELECT AI_TRANSLATE('The hotel was great','de') AS translation_de;
Résultat attendu : 'Das Hotel war großartig.'
Pour plus d’informations, consultez AI_TRANSLATE (Transact-SQL).
Corriger la grammaire
La fonction corrige la AI_FIX_GRAMMAR(text) grammaire dans l’entrée text.
Exemple :
SELECT AI_FIX_GRAMMAR('Th room are clean and staff were nice') AS fixed_text;
Résultat attendu : « Les chambres sont propres, et le personnel était agréable.
Pour plus d’informations, consultez AI_FIX_GRAMMAR (Transact-SQL).
Gestion des erreurs
Les fonctions IA reviennent NULL lorsqu’une erreur survient lors du traitement du texte. Les erreurs peuvent être causées par des contrôles de sécurité de l’IA responsable détectant du contenu non autorisé, des entrées dépassant les limites de tokens, des problèmes de service transitoires ou d’autres défaillances de traitement.
Par défaut, les fonctions d’IA utilisent un modèle d’exécution au meilleur effort et retournent NULL en cas de requêtes échouées. Ce comportement est conçu pour empêcher que des erreurs affectant des lignes individuelles ne fassent échouer une requête entière. Lors du traitement de milliers de lignes via un grand modèle de langage externe (LLM), une défaillance sur une seule valeur ne devrait pas empêcher que des résultats réussis soient retournés pour les lignes restantes. Ce comportement garantit également que les requêtes traitées avec succès ne sont pas perdues et n’ont pas besoin d’être répétées.
Inspectez les lignes qui ont été retournées NULL, déterminez la raison de l’échec, et réessayez uniquement ces valeurs spécifiques.
Vous pouvez contourner le comportement par défaut en spécifiant une ON ERROR clause dans chaque appel de fonction :
-
NULL ON ERROR(par défaut) revientNULLlorsque la fonction ne peut pas traiter une valeur. -
ERROR ON ERRORprovoque l’échec complet de la requête si une erreur survient dans un appel de fonction. -
DEFAULT <value> ON ERRORrenvoie la valeur par défaut spécifiée au lieu deNULLla remettre en cas d’erreur.
L’exemple suivant illustre les options de gestion des erreurs disponibles :
SELECT
*,
AI_FIX_GRAMMAR(review_text NULL ON ERROR) AS fixed_text,
AI_EXTRACT(review_text, 'sentiment', 'problem' ERROR ON ERROR) AS info*
AI_CLASSIFY(review_text, 'service', 'dirt', 'food' DEFAULT 'Other' ON ERROR) AS classification
FROM hotel_reviews;
Dans cet exemple :
-
AI_FIX_GRAMMARretoursNULLpour des valeurs qu’il ne peut pas traiter. Parce que le retourNULLest le comportement par défaut de gestion des erreurs, laNULL ON ERRORclause est optionnelle. -
AI_EXTRACTéchoue toute la requête si une cellule rencontre une erreur. -
AI_CLASSIFYrenvoieOtherpour les cellules qu’il ne peut pas classer.
Remarques
Les fonctions IA peuvent retourner des erreurs ou rencontrer des performances plus lentes que prévu pour plusieurs raisons :
- Vérifiez que vous remplissez toutes les conditions préalables requises avant d’utiliser des fonctions IA. Si un prérequis est manquant, la fonction retourne une erreur.
- Si le texte d’entrée ne peut pas être traité , par exemple, parce qu’il dépasse les limites de jetons, contient du contenu restreint ou offensant, ou ne respecte pas les stratégies de service , la fonction retourne
NULL. Vérifiez toujours si la valeur de retour estNULLet gère ce cas de manière appropriée dans vos requêtes, applications ou pipelines de traitement des données. - Les performances dépendent de la taille d’entrée, de la complexité des entrées et de la charge globale du service. Les valeurs de texte individuelles sont généralement traitées en quelques secondes, tandis que les lots plus volumineux peuvent atteindre le débit d’environ 10 à 30 valeurs de texte par seconde. Si vous rencontrez constamment des performances plus lentes que prévu, il peut y avoir un problème de service ou de configuration affectant le débit de traitement.
Si vous rencontrez un problème avec les fonctions d’IA dans Fabric Data Warehouse ou un point d’accès d’analyse SQL :
- Créer un ticket de support via le support Microsoft, ou
- Partagez vos retours, posez des questions ou discutez des problèmes avec la communauté dans les fonctions IA de Microsoft Fabric Data Warehouse subreddit.
Exemples
R : Importer des données et transformer une colonne de texte à l’aide de fonctions IA
Cet exemple charge les données d’un fichier Lakehouse dans la hotel_reviews table de l’entrepôt.
Il sélectionne dans un fichier de la /Files section, puis applique les fonctions IA pour enrichir les données :
CREATE TABLE HotelDW.dbo.hotel_reviews
AS
SELECT
city, latitude, longitude, name, reviews_rating, reviews_text,
AI_SUMMARIZE(reviews_text) AS reviews_summary,
AI_CLASSIFY( reviews_text, 'service', 'dirt', 'food', 'air conditioning', 'other') AS reviews_classification,
AI_ANALYZE_SENTIMENT(reviews_text) AS reviews_sentiment,
AI_TRANSLATE(reviews_text, 'de') AS reviews_text_de,
AI_TRANSLATE(reviews_text, 'es') AS reviews_text_es,
AI_TRANSLATE(reviews_text, 'fr') AS reviews_text_fr,
AI_TRANSLATE(reviews_text, 'it') AS reviews_text_it
FROM OPENROWSET( BULK '/Files/csv/hotel_reviews_demo.csv', DATA_SOURCE = 'TextLakehouse', HEADER_ROW = TRUE);
B. Mettre à jour la colonne de texte à l’aide de la fonction IA
L’exemple suivant corrige les erreurs de grammaire dans la reviews_text colonne :
UPDATE HotelDW.dbo.hotel_reviews
SET reviews_text = ISNULL(AI_FIX_GRAMMAR(reviews_text), reviews_text);
Les fonctions IA peuvent retourner NULL si une erreur se produit. Évitez donc de remplacer les valeurs existantes par NULL.
Utilisez le ISNULL(<ai function>, <original value>) modèle pour conserver le texte d’origine lorsque les fonctions IA ne peuvent pas retourner les résultats.
Chapitre C. Extraire des valeurs du texte
Dans cet exemple, la AI_EXTRACT fonction analyse le texte de révision et retourne un objet JSON contenant les propriétés sentiment, time_reportedet problem. La OPENJSON fonction analyse ensuite ce JSON et mappe ces propriétés en colonnes distinctes pour faciliter l’interrogation et l’analyse.
Cet exemple de script insère les valeurs extraites sous forme de colonnes distinctes dans la table cible.
INSERT INTO gold.hotel_reviews
SELECT sentiment, time_reported, problem
FROM hotel_reviews
CROSS APPLY
OPENJSON(
AI_EXTRACT(reviews_text, 'sentiment', 'time_reported', 'problem')
) WITH ( sentiment VARCHAR(1000), time_reported VARCHAR(100), problem VARCHAR(1000) );
La AI_EXTRACT fonction applique des règles contextuelles approximatives pour identifier et extraire des rubriques du texte sans nécessiter d’analyse manuelle ou d’expressions régulières complexes. Cette approche simplifie l’analyse du texte à l’aide de la compréhension sémantique basée sur l’IA plutôt que de la mise en correspondance de modèles rigides, ce qui le rend plus robuste et adaptable aux variations de langage naturel.