Catégories :

Fonctions d’agrégation (général) Fonctions de chaîne et fonctions binaires (Fonctions AI)

AI_AGG

Réduit une colonne de données textuelles à l’aide d’une instruction en langage naturel.

Par exemple, AI_AGG(reviews, 'Describe the most common complaints mentioned in the book reviews') renverra un résumé des commentaires de l’utilisateur.

Contrairement à COMPLETE (SNOWFLAKE.CORTEX) et SUMMARIZE (SNOWFLAKE.CORTEX), cette fonction prend en charge des ensembles de données plus grands que la fenêtre contextuelle maximale du modèle de langage.

Voir aussi ::

AI_SUMMARIZE_AGG

Syntaxe

AI_AGG( <expr>, <instruction> )
Copy

Arguments

Obligatoire :

expr

Il s’agit d’une expression qui contient du texte sur lequel une opération d’agrégation doit être effectuée, comme des critiques de restaurants ou des transcriptions téléphoniques.

instruction

Chaîne contenant une spécification en langage naturel de l’agrégation à effectuer, par exemple « Résumez les avis » ou « Identifiez toutes les personnes mentionnées et rédigez une courte biographie pour chacune d’entre elles ».

Renvoie

Renvoie une chaîne contenant le résultat de l’agrégation.

La fonction peut indiquer que les données que vous avez fournies ne contiennent pas la réponse si :

  • Vous ne fournissez pas d’instructions claires précisant comment agréger les données

  • Les données ne contiennent pas les informations nécessaires pour exécuter votre instruction

Notes sur l’utilisation

Pour des performances optimales, suivez ces directives :

  • Utilisez un texte en langage clair pour l’instruction.

  • Donnez une instruction déclarative au lieu de poser une question. Par exemple, au lieu d’une question telle que « Pouvez-vous résumer cela ? », utilisez « Résumez les transcriptions des appels téléphoniques ».

  • Décrivez le texte fourni dans l’instruction. Par exemple, au lieu d’une instruction telle que « Résumez », utilisez « Résumez les transcriptions des appels téléphoniques ».

  • Décrivez le cas d’utilisation prévu. Par exemple, au lieu de « trouver la meilleure critique », utilisez « Trouver la critique de restaurant la plus positive et la mieux rédigée à mettre en évidence sur le site web du restaurant ».

  • Essayez de diviser l’instruction en plusieurs étapes. Par exemple, au lieu de « Résumez les nouveaux articles », utilisez « Vous recevrez des articles d’actualité provenant de différents éditeurs présentant des événements sous différents angles. Veuillez créer un résumé concis et détaillé des textes sources sans omettre aucune information cruciale ».

Exemples

AI_AGG peut être utilisé comme une simple fonction scalaire sur des constantes de chaîne. Dans l’exemple suivant, AI_AGG est utilisé pour synthétiser les avis des produits, qui sont fournis sous la forme d’une seule chaîne.

SELECT AI_AGG('[Excellent, Excellent, Great, Mediocre]',
              'Summarize the product ratings for a blog post targeting consumers');
Copy
Overall, the product has received overwhelmingly positive reviews, with the majority of users rating it as 'Excellent' or 'Great'. Only a small percentage of users had a mediocre experience with the product. This suggests that the product is well-liked by most consumers and is a great option for those looking for a reliable choice.

AI_AGG peut également être utilisé sur une colonne de données. Dans l’exemple suivant, les avis des produits de l’exemple ci-dessus sont fournis sous forme de colonne dans une table à l’aide d’une expression de table commune.

WITH reviews AS (
            SELECT 'The restaurant was excellent.' AS review
  UNION ALL SELECT 'Excellent! I loved the pizza!'
  UNION ALL SELECT 'It was great, but the service was meh.'
  UNION ALL SELECT 'Mediocre food and mediocre service'
)
SELECT AI_AGG(review, 'Summarize the restaurant reviews for potential consumers')
  FROM reviews;
Copy
Reviews for this restaurant are mixed. Some customers had a very positive experience, describing the restaurant as "excellent" and loving the pizza. However, others had a more neutral or negative experience, citing mediocre food and service.

AI_AGG peut également être utilisé en combinaison avec GROUP BY. L’exemple suivant résume les avis de deux produits (identifiés par la colonne product_id) dans une table d’avis.

WITH reviews AS (
            SELECT 1 AS restaurant_id, 'The restaurant was excellent.' AS review
  UNION ALL SELECT 1, 'Excellent! I loved the pizza!'
  UNION ALL SELECT 1, 'It was great, but the service was meh.'
  UNION ALL SELECT 1, 'Mediocre food and mediocre service'
  UNION ALL SELECT 2, 'Terrible quality ingredients, I should have eaten at home.'
  UNION ALL SELECT 2, 'Bad restaurant, I would avoid this place.'
)
SELECT restaurant_id,
       AI_AGG(review, 'Summarize the restaurant reviews for potential consumers')
  FROM reviews
 GROUP BY 1;
Copy
+---------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| RESTAURANT_ID | SUMMARIZED_REVIEW                                                                                                                                                                                                                                 |
|---------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 1             | Reviews for this restaurant are mixed. Some customers had a very positive experience, describing the restaurant as "excellent" and loving the pizza. However, others had a more neutral or negative experience, citing mediocre food and service. |
+---------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 2             | Two reviewers had extremely negative experiences at this restaurant, citing poor quality ingredients and advising others to avoid it.                                                                                                             |
+---------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

L’instruction peut être utilisée pour diverses tâches d’agrégation et pour configurer le style et le ton de la réponse. L’exemple suivant utilise une instruction pour trouver l’avis le plus positif pour chaque produit et fournir des traductions en français et en polonais de l’avis.

WITH reviews AS (
            SELECT 1 AS product_id, 'Excellent' AS review
  UNION ALL SELECT 1, 'Excellent'
  UNION ALL SELECT 1, 'Great'
  UNION ALL SELECT 1, 'Mediocre'
  UNION ALL SELECT 2, 'Terrible'
  UNION ALL SELECT 2, 'Bad'
  UNION ALL SELECT 2, 'Average'
)
SELECT product_id,
       AI_AGG(review, 'Identify the most positive rating and translate it into French and Polish, one word only') AS summarized_review
  FROM reviews
 GROUP BY 1;
Copy
+------------+--------------------+
| PRODUCT_ID | SUMMARIZED_REVIEW  |
|------------+--------------------+
| 1          | French: Excellent  |
|            | Polish: Doskonały  |
+------------+--------------------+
| 2          | French: Moyen      |
|            | Polish: Przeciętny |
+------------+--------------------+

Voir aussi AI_SUMMARIZE_AGG.