カテゴリ:

集計関数 (一般) 文字列とバイナリ関数 (大規模言語モデル)

AI_AGG

自然言語のタスクの説明を使用してテキストデータの列を削減します。

例えば、 AI_AGG(reviews, 'Summarize the book reviews in 200 words') はユーザーフィードバックの要約を返します。

COMPLETE (SNOWFLAKE.CORTEX)SUMMARIZE (SNOWFLAKE.CORTEX) とは異なり、この関数は言語モデルのコンテキストウィンドウの最大値よりも大きなデータセットをサポートします。

こちらもご覧ください:

AI_SUMMARIZE_AGG

構文

AI_AGG( <expr>, <task_description> )
Copy

引数

必須:

expr

これは、レストランのレビューや電話の記録など、集計処理が実行されるテキストを含んでいる式です。

task_description

例えば、「レビューを要約する」や「言及されたすべての人を識別し、それぞれの短いを略歴を書く」など、実行する集計の自然言語の説明を含む文字列。

戻り値

集計の結果を含んでいる文字列を返します。

使用上の注意

最適なパフォーマンスを得るためには、以下のガイドラインに従ってください。

  • タスクの説明にはわかりやすい英語テキストを使用してください。

  • タスクの説明に入力したたテキストについて説明してください。例えば、「まとめる」などのタスクの説明の代わりに、「通話の文字起こしをまとめる」を使用します。

  • 意図されたユースケースについて説明してください。例えば、「最高のレビューを見つける」ではなく、「レストランのウェブサイトでハイライトするために、最も肯定的でよく書かれたレストランのレビューを見つける」を使用します。

  • タスクの説明を複数のステップに分けることを検討してください。例えば、「新着記事を要約する」ではなく、「様々なパブリッシャーが異なる視点からイベントを紹介している新着記事を提供します。重要な情報を漏らさず、簡潔かつ詳しく原文を要約してください。」を使用します。

AI_AGG は文字列定数に対する単純なスカラー関数として使用できます。

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 はデータの列に対して使用できます。

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 は、 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.                                        |
+------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

タスクの説明は、様々な集計タスクや、応答のスタイルやトーンを構成するために使用することができます。

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 |
+------------+--------------------+

AI_SUMMARIZE_AGG もご参照ください。