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> )
Copy

Angabe des Konfigurationsobjekts:

AI_SIMILARITY( <input1>, <input2>, <config_object> )
Copy

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

model

STRING

Für die STRING-Eingabe wird standardmäßig 'snowflake-arctic-embed-l-v2' verwendet. Für die IMAGE-Eingabe wird standardmäßig 'voyage-multimodal-3' verwendet.

Das Einbettungsmodell, das für die Einbettung verwendet wird. Folgende Werte werden unterstützt:

  • 'snowflake-arctic-embed-l-v2'

  • 'nv-embed-qa-4'

  • 'multilingual-e5-large'

  • 'voyage-multilingual-2'

  • 'snowflake-arctic-embed-m-v1.5'

  • 'snowflake-arctic-embed-m'

  • 'e5-base-v2'

  • 'voyage-multimodal-3' (IMAGE)

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');
Copy

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!');
Copy

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'));
Copy

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;
Copy

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