AI_SIMILARITY¶
Berechnet einen Ähnlichkeitswert basierend auf dem Vektor-Cosinus-Ähnlichkeitswert der Einbettungsvektoren der Eingaben. Derzeit werden sowohl Text- als auch Bildähnlichkeitsberechnungen unterstützt.
Syntax¶
Anwenden von AI_SIMILARITY auf Zeichenfolgen- oder Bildeingaben:
AI_SIMILARITY( <input1>, <input2> )
Angabe des Konfigurationsobjekts:
AI_SIMILARITY( <input1>, <input2>, <config_object> )
Argumente¶
Benötigt:
Wenn Sie Eingabezeichenfolgen angeben:
input1
,{input2}
Die Zeichenfolgen mit dem Text, den Sie vergleichen und für die Berechnung des Ähnlichkeitswerts verwenden.
Wenn Sie Eingabebilder angeben:
input1
,input2
Datentyp FILE, referenziert die zu vergleichenden Bilder.
Bemerkung
AI_SIMILARITY unterstützt die Berechnung der Ähnlichkeit zwischen Text- und Bildeingaben nicht.
Optional:
config_object
Ein OBJECT mit Schlüssel-Wert-Paaren, die zur Konfiguration des Modells verwendet werden.
Schlüssel |
Typ |
Standard |
Beschreibung |
---|---|---|---|
|
Für die STRING-Eingabe wird standardmäßig |
Das Einbettungsmodell, das für die Einbettung verwendet wird. Folgende Werte werden unterstützt:
|
Rückgabewerte¶
Gibt einen Gleitkommawert im Bereich -1 bis 1 zurück, der den Ähnlichkeitswert darstellt, der anhand der Vektorähnlichkeit zwischen zwei Einbettungsvektoren für die Eingaben berechnet wurde.
Anforderungen an die Zugriffssteuerung¶
Benutzer müssen eine Rolle verwenden, der die Datenbankrolle SNOWFLAKE.CORTEX_USER zugewiesen wurde: Weitere Informationen zu dieser Berechtigung finden Sie unter Erforderliche Berechtigungen.
Beispiele¶
AI_SIMILARITY: Text¶
In diesem Beispiel berechnet die Funktion einen Ähnlichkeitswert zwischen den beiden Eingaben 'Ich mag dieses Gericht'
und 'Dieses Gericht ist sehr gut'
.
SELECT AI_SIMILARITY('I like this dish', 'This dish is very good');
Wir können die Ähnlichkeit auch für Textspalten berechnen.
SELECT
review
FROM restaurant_reviews
ORDER BY SNOWFLAKE.CORTEX.AI_SIMILARITY(review, 'I love the food here!');
AI_SIMILARITY: Bilder¶
In diesem Beispiel berechnet die Funktion einen Ähnlichkeitswert zwischen den beiden Bildern cat.jpg
und 2cats.jpg
, die im Snowflake-Stagingbereich @file_stage
gespeichert sind.
SELECT AI_SIMILARITY(TO_FILE('@file_stage', 'cat.jpg'), TO_FILE('@file_stage', '2cats.jpg'));
Wir können auch die Ähnlichkeit zwischen den Bildern berechnen, indem wir die Snowflake-Verzeichnistabelle für den Stagingbereich verwenden, der die Bilder enthält.
SELECT
to_file('@file_stage', relative_path)
FROM directory(@file_stage)
WHERE snowflake.cortex.ai_similarity(f, to_file(@file_stage, 'cat.jpg')) >= 0.5;
Einschränkungen¶
Die Funktionen von Snowflake AI unterstützen keine inkrementelle Aktualisierung von dynamischen Tabellen.
Die AI-Funktionen von Snowflake funktionieren nicht mit FILEs, die aus Stagingdateien aus den folgenden Stagingbereichstypen erstellt wurden:
Interne Stagingbereiche mit Verschlüsselungsmodus
TYPE = 'SNOWFLAKE_FULL'
Externe Stagingbereiche mit einem kundenseitigen Verschlüsselungsmodus:
TYPE = 'AWS_CSE'
TYPE = 'AZURE_CSE'
Benutzer-Stagingbereich, Tabellen-Stagingbereich
Stagingbereich mit Namen in doppelten Anführungszeichen