Kategorien:

Aggregatfunktionen (Allgemein) Zeichenfolgen- und Binärfunktionen (AI-Funktionen)

AI_AGG

Reduziert eine Spalte mit Textdaten mithilfe einer Anweisung in natürlicher Sprache.

Beispiel: AI_AGG(reviews, 'Describe the most common complaints mentioned in the book reviews') gibt eine Zusammenfassung des Feedbacks der Benutzer zurück.

Im Gegensatz zu COMPLETE (SNOWFLAKE.CORTEX) und SUMMARIZE (SNOWFLAKE.CORTEX) unterstützt diese Funktion Datensätze, die größer sind als das maximale Kontextfenster des Sprachmodells.

Siehe auch::

AI_SUMMARIZE_AGG

Syntax

AI_AGG( <expr>, <instruction> )
Copy

Argumente

Benötigt:

expr

Dies ist ein Ausdruck, der Text enthält, für den eine Aggregationsoperation durchgeführt werden soll, z. B. Restaurantbewertungen oder Telefonaufzeichnungen.

instruction

Eine Zeichenfolge, die eine Spezifikation in natürlicher Sprache für die auszuführende Aggregation enthält, z. B. „Summarize the reviews“ oder „Summarize the reviews“ or „Identify all people mentioned and write a short biography for each of them“.

Rückgabewerte

Gibt eine Zeichenfolge zurück, die das Ergebnis der Aggregation enthält.

Die Funktion kann anzeigen, dass die von Ihnen bereitgestellten Daten nicht die Antwort enthalten, wenn:

  • Sie keine klare Anleitung geben, wie die Daten aggregiert werden sollen

  • Die Daten nicht die Informationen enthalten, die zum Ausführen Ihrer Anweisung erforderlich sind

Nutzungshinweise

Um eine optimale Leistung zu erzielen, befolgen Sie diese Richtlinien:

  • Verwenden Sie einfachen englischen Text für die Anweisung.

  • Geben Sie eine deklarative Anweisung an, anstatt eine Frage zu stellen. Verwenden Sie zum Beispiel anstelle einer Frage wie „Can you summarize this?“, die Anweisung „Summarize the phone call transcripts“.

  • Beschreiben Sie den Text, der in der Anweisung enthalten ist. Verwenden Sie zum Beispiel anstelle einer Anweisung wie „summarize“ die Anweisung „Summarize the phone call transcripts“.

  • Beschreiben Sie den beabsichtigten Anwendungsfall. Verwenden Sie z. B. statt „find the best review“ die Formulierung „Find the most positive and well-written restaurant review to highlight on the restaurant website“.

  • Ziehen Sie in Erwägung, die Anweisung in mehrere Schritte aufzuteilen. Verwenden Sie zum Beispiel anstelle von „Summarize the new articles“, use „You will be provided with news articles from various publishers presenting events from different points of view. Please create a concise and elaborative summary of source texts without missing any crucial information.“.

Beispiele

AI_AGG kann als einfache Skalarfunktion für Zeichenfolgenkonstanten verwendet werden. Im folgenden Beispiel wird AI_AGG verwendet, um Produktbewertungen zusammenzufassen, die als eine einzige Zeichenfolge bereitgestellt werden.

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 kann auch für eine Datenspalte verwendet werden. Im folgenden Beispiel werden die Produktbewertungen aus dem obigen Beispiel als Spalte in einer Tabelle unter Verwendung eines gemeinsamen Tabellenausdrucks bereitgestellt.

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 kann auch in Kombination mit GROUP BY verwendet werden. Das folgende Beispiel fasst die Produktbewertungen für zwei Produkte (gekennzeichnet durch die Spalte product_id) in einer Tabelle mit Bewertungen zusammen.

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

Die Anweisung kann für verschiedene Aggregationsaufgaben und zum Konfigurieren von Stil und Ton der Antwort verwendet werden. Das folgende Beispiel verwendet eine Anweisung, um die positivste Bewertung für jedes Produkt zu finden und eine französische und polnische Übersetzung der Bewertung bereitzustellen.

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

Siehe auch AI_SUMMARIZE_AGG.