Catégories :

Fonctions d’agrégation (Général) Fonctions de chaîne et fonctions binaires (Large Language Model)

AI_AGG

Réduit une colonne de données textuelles à l’aide d’une description de tâche en langue naturelle.

Par exemple, AI_AGG(reviews, 'Summarize the book reviews in 200 words') renvoie un résumé des réactions des utilisateurs.

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>, <task_description> )
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.

task_description

Une chaîne contenant une description en langue naturelle de l’agrégation à effectuer, par exemple « Résumer les avis » ou « Identifier toutes les personnes mentionnées et rédiger une courte biographie pour chacune d’entre elles ».

Renvoie

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

Notes sur l’utilisation

Pour des performances optimales, suivez ces directives :

  • Utilisez un texte en français simple pour la description de la tâche.

  • Décrivez le texte fourni dans la description de la tâche. Par exemple, au lieu d’une description de tâche telle que « résumer », utilisez « Résumer 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 ».

  • Envisagez de diviser la description de la tâche en plusieurs étapes. Par exemple, au lieu de « Résumez les nouveaux articles », utilisez « Vous recevrez des articles d’actualité provenant de divers éditeurs et présentant les événements sous différentes vues. Veuillez créer un résumé concis et élaboré 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.

SELECT AI_AGG('[Excellent, Excellent, Great, Mediocre]',
              'Summarize the product ratings for a blog post targeting consumers');
Copy
This product has a generally positive rating, with most reviewers praising its quality. Key strengths include high satisfaction levels, with 2 reviewers giving it an "Excellent" rating. However, some reviewers had a more neutral experience, with 1 rating it "Mediocre". Overall, it's a solid choice, but may not exceed expectations for everyone.

AI_AGG peut être utilisé sur une colonne de données.

WITH reviews AS (
            SELECT 'Excellent' AS review
  UNION ALL SELECT 'Excellent'
  UNION ALL SELECT 'Great'
  UNION ALL SELECT 'Mediocre'
)
SELECT AI_AGG(review,
              'Summarize the product ratings for a blog post targeting consumers')
  FROM reviews;
Copy
This product has a 4.25/5 overall rating, with most reviewers (2) giving it an "Excellent" rating and one reviewer giving it a "Great" rating. The majority of consumers are impressed with its performance, suggesting it's a reliable and high-quality option. However, one reviewer had a mediocre experience, indicating it may not meet everyone's expectations.

AI_AGG peut également être utilisé en combinaison avec GROUP BY.

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'
)
SELECT product_id,
       AI_AGG(review, 'Summarize the product ratings for a blog post targeting consumers') AS summarized_review
  FROM reviews
 GROUP BY 1;
Copy
+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| PRODUCT_ID | SUMMARIZED_REVIEW                                                                                                                                                                                                                                                                                                                                                     |
|------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 1          | This product has a 4.25/5 overall rating, with most reviewers (2) giving it an "Excellent" rating and one reviewer giving it a "Great" rating. The majority of consumers are impressed with its performance, suggesting it's a reliable and high-quality option. However, one reviewer had a mediocre experience, indicating it may not meet everyone's expectations. |
+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 2          | This product has received extremely negative reviews, with a 1/5-star rating based on 2 reviews. Consumers have rated it as "Terrible" and "Bad", citing no redeeming qualities or positive aspects. The product has failed to meet user expectations, and potential buyers are advised to exercise caution before purchasing.                                        |
+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

La description de la tâche peut être utilisée pour diverses tâches d’agrégation et pour configurer le style et le ton de la réponse.

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.