Cortex AISQL Images¶
Mit Cortex AI Images können Sie Folgendes erreichen:
Bilder vergleichen
Bilder beschriften
Bilder klassifizieren
Entitäten aus Bildern extrahieren
Einbettungsvektoren zur Verwendung in Abrufsystemen generieren
Fragen mithilfe von Daten in Graphen und Diagrammen beantworten
Sie können diese Aufgaben mit den folgenden Funktionen erledigen:
Eingabeanforderungen¶
COMPLETE Multimodal kann Bilder mit den folgenden Merkmalen verarbeiten:
Anforderung |
Wert |
---|---|
Dateinamen-Erweiterungen |
|
Stagingbereich-Verschlüsselung |
Serverseitige Verschlüsselung: |
Datentyp |
Bemerkung
Die Verarbeitung von Dateien aus Stagingbereichen ist derzeit nicht mit benutzerdefinierten Netzwerkrichtlinien kompatibel.
Einen Stagingbereich für die Bildverarbeitung erstellen¶
Erstellen Sie einen Stagingbereich, in dem die zu verarbeitenden Bilder gespeichert werden können. Der Stagingbereich muss über eine Verzeichnistabelle und eine serverseitige Verschlüsselung verfügen.
Das folgende SQL erstellt einen geeigneten internen Stagingbereich.
CREATE OR REPLACE STAGE input_stage
DIRECTORY = ( ENABLE = true )
ENCRYPTION = ( TYPE = 'SNOWFLAKE_SSE' );
Das folgende SQL erstellt einen externen Stagingbereich auf Amazon S3. Auch die externen Stagingbereiche von Azure und GCP werden unterstützt.
CREATE OR REPLACE STAGE input_stage
URL='s3://<s3-path>/'
DIRECTORY = ( ENABLE = true )
CREDENTIALS = (AWS_KEY_ID = <aws_key_id>
AWS_SECRET_KEY = <aws_secret_key>)
ENCRYPTION = ( TYPE = 'AWS_SSE_S3' );
Bemerkung
Um die Verzeichnistabelle für den externen Stagingbereich automatisch zu aktualisieren, wenn neue oder aktualisierte Dateien verfügbar sind, übergeben Sie beim Erstellen des Stagingbereichs die Option AUTO_REFRESH = true
. Weitere Informationen dazu finden Sie unter CREATE STAGE.
Bilder analysieren¶
Die Funktion COMPLETE verarbeitet entweder ein einzelnes Bild oder mehrere Bilder (z. B. zum Extrahieren von Unterschieden in Entitäten in verschiedenen Bildern). Der Funktionsaufruf gibt Folgendes an:
Das zu verwendende multimodale Modell
Eine Aufforderung
Den Pfad des Stagingbereichs der Bilddatei(en) über ein FILE-Objekt
Beispiel für Vision-Fragen und -Antworten¶
Das folgende Beispiel verwendet das Modell Claude Sonnet 3.5 von Anthropic, um ein Tortendiagramm science-employment-slide.jpeg
zusammenzufassen, das im Stagingbereich @myimages
gespeichert ist.

Die Verteilung der Berufe, in denen Mathematik im Jahr 2023 als „extrem wichtig“ angesehen wird¶
SELECT AI_COMPLETE('claude-3-5-sonnet',
'Summarize the insights from this pie chart in 100 words',
TO_FILE('@myimages', 'science-employment-slide.jpeg'));
Antwort:
This pie chart shows the distribution of occupations where mathematics is considered "extremely important" in 2023.
Data scientists dominate with nearly half (48.7%) of all such positions, followed by operations research analysts
at 29.6%. The remaining positions are distributed among statisticians (7.8%), actuaries (7.2%), physicists (5.1%),
mathematicians (0.6%), and other mathematical science occupations (1.1%). This distribution highlights the growing
importance of data science in mathematics-intensive careers, while traditional mathematics roles represent a smaller
share of the workforce.
Beispiel für Vergleich von Bildern¶
Bemerkung
Derzeit können nur die Modelle Anthropic (claude
) und Meta (llama
) mehrere Bilder in einer einzigen Eingabeaufforderung referenzieren. Die Unterstützung mehrerer Bilder für andere Modelle wird möglicherweise in einer zukünftigen Release verfügbar sein.
Verwenden Sie die PROMPT-Hilfsfunktion, um mehrere Bilder in einem einzigen COMPLETE-Aufruf zu verarbeiten. Im folgenden Beispiel wird das Modell Claude Sonnet 3.5 von Anthropic verwendet, um zwei verschiedene Werbemittel aus dem Stagingbereich @myimages
zu vergleichen.

Bild von zwei Anzeigen für Elektroautos¶
SELECT AI_COMPLETE('claude-3-5-sonnet',
PROMPT('Compare this image {0} to this image {1} and describe the ideal audience for each in two concise bullets no longer than 10 words',
TO_FILE('@myimages', 'adcreative_1.png'),
TO_FILE('@myimages', 'adcreative_2.png')
));
Antwort:
First image ("Discover a New Energy"):
• Conservative luxury SUV buyers seeking a subtle transition to electrification
Second image ("Electrify Your Drive"):
• Young, tech-savvy urbanites attracted to bold, progressive automotive design
Beispiel zum Klassifizieren von Bildern¶
Im folgenden Beispiel wird AI_CLASSIFY verwendet, um ein Bild für eine Immobilienanwendung zu klassifizieren.

Das folgende SQL verwendet die AI_CLASSIFY-Funktion, um das Bild als Foto eines Wohnbereichs, einer Küche, eines Badezimmers, eines Gartens oder eines Hauptschlafzimmers zu klassifizieren.
SELECT AI_CLASSIFY(TO_FILE('@my_images', 'REAL_ESTATE_STAGING.PNG'),
['Living Area', 'Kitchen', 'Bath', 'Garden', 'Master Bedroom']) AS room_classification;
Antwort:
{ "labels": [ "Living Area" ] }
Das SQL unten kategorisiert die im obigen Bild gefundenen Objekte als Sofa, Fenster, Tisch, Fernseher oder Kunstgegenstand.
SELECT AI_CLASSIFY (TO_FILE ('@my_images', 'REAL_ESTATE_STAGING.PNG'),
['Couch', 'Window', 'Table', 'Television', 'Art'], {'output_mode': 'multi'} )
AS living_room_objects;
Antwort:
{
"labels": [
"Art",
"Couch",
"Table",
"Window"
]
}
Bilder durchsuchen¶
Sie können AI_EMBED verwenden, um Bilder zu finden, die einem Zielbild ähnlich sind. Verwenden Sie zuerst die Funktion AI_EMBED, um einen Einbettungsvektor für das Zielbild zu generieren, der dessen visuelle Features in einen abstrakten Vektorraum abbildet, eine numerische Darstellung der Features des Bildes. Sie können dann Vektorähnlichkeitsfunktionen verwenden, um diesen Einbettungsvektor mit den Einbettungsvektoren anderer Bilder zu vergleichen. So erhalten Sie einen Ähnlichkeitswert auf der Grundlage ihrer gemeinsamen oder ähnlichen visuellen Features. Diese Wert kann verwendet werden, um Bilder auf der Grundlage ihrer Ähnlichkeit mit dem Zielbild zu klassifizieren, einzuordnen oder zu filtern.
![]() |
![]() |
In obigen Bildern sehen Sie zum Beispiel, dass das folgende SQL einen Einbettungsvektor für jedes Bild generiert und die Vektoren dann mithilfe der Cosinus-Ähnlichkeit vergleicht. Das Ergebnis von etwa 0,5 gibt an, dass die Bilder etwas ähnlich sind. Beide Fotos wurden in einer städtischen Umgebung aufgenommen und enthalten eine Menge Menschen im Hintergrund, die Hauptobjekte unterscheiden sich aber.
WITH ai_image_embeddings as (
SELECT
AI_EMBED('voyage-multimodal-3',
TO_FILE ('@my_images', 'CITY_WALKING1.PNG')) as image1_embeddings,
AI_EMBED('voyage-multimodal-3',
TO_FILE ('@my_images', 'CITY_WALKING2.PNG')) as image2_embeddings
)
SELECT VECTOR_COSINE_SIMILARITY(image1_embeddings,image2_embeddings) as similarity FROM ai_image_embeddings;
0.5359029029
Um Bilder zu finden, die einem Zielbild ähnlich sind, können Sie AI_SIMILARITY verwenden. Das folgende Beispiel berechnet einen Ähnlichkeitswert für ggf. Tausende von Bildern und gibt die Werbeanzeigen zurück, die der unten stehenden Motorradwerbung am ähnlichsten sind.
SELECT
TO_FILE('@ad_images', relative_path) as ALL_ADS
FROM DIRECTORY(@ad_images)
WHERE AI_SIMILARITY(TO_FILE('@ad_images', 'image_226.jpg'), ALL_ADS) >= 0.5;
Die Abfrage gibt Bilder aus einer multimodalen Tabelle zurück, bei denen der Ähnlichkeitswert größer als 0,50 ist. Eines der identifizierten Bilder (image_226.jpg
) ist das, welches wir als Referenz verwendet haben.
+-----------------------------------------------------------+
| {} ALL_ADS |
+-----------------------------------------------------------+
| { "CONTENT_TYPE": "image/jpeg", |
| "ETAG": "686897696a7c876b7e", |
| "LAST_MODIFIED": "Wed, 26 Mar 2025 18:11:45 GMT", |
| "RELATIVE_PATH": "image_226.jpg", |
| "SIZE": 39086, |
| "STAGE": "@ad_images" } |
+-----------------------------------------------------------+
| { "CONTENT_TYPE": "image/jpeg", |
| "ETAG": "e7b678c7a696798686", |
| "LAST_MODIFIED": "Wed, 26 Mar 2025 18:11:57 GMT", |
| "RELATIVE_PATH": "image_441.jpg", |
| "SIZE": 12650, |
| "STAGE": "@ad_images" }, |
+-----------------------------------------------------------+
Modellbeschränkungen¶
Alle Modelle, die Snowflake Cortex zur Verfügung stehen, haben Beschränkungen für die Gesamtzahl der Eingabe- und Ausgabe-Token, bekannt als das Kontextfenster des Modells **. Die Größe des Kontextfensters wird in Token gemessen. Eingaben, die das Limit des Kontextfensters überschreiten, führen zu einem Fehler.
Bei Textmodellen entsprechen Token in der Regel etwa vier Zeichen Text, so dass die Wortanzahl, die einem Limit entspricht, geringer ist als die Anzahl der Token.
Bei Bildmodellen hängt die Anzahl der Token pro Bild von der Architektur des Bildmodells ab. Token innerhalb einer Eingabeaufforderung (z. B. „Welches Tier ist das?“) tragen ebenfalls zum Kontextfenster des Modells bei.
Modell |
Kontextfenster (Token) |
Dateitypen |
Dateigröße |
Bilder pro Aufforderung |
---|---|---|---|---|
|
1,047,576 |
.jpg, .jpeg, .png, .webp, .gif |
10MB |
5 |
|
1,047,576 |
.jpg, .jpeg, .png, .webp, .gif |
10MB |
5 |
|
200,000 |
.jpg, .jpeg, .png, .webp, .gif |
3,75 MB [L1] |
20 |
|
200,000 |
.jpg, .jpeg, .png, .webp, .gif |
3,75 MB [L1] |
20 |
|
200,000 |
.jpg, .jpeg, .png, .webp, .gif |
3,75 MB [L1] |
20 |
|
200,000 |
.jpg, .jpeg, .png, .webp, .gif |
3,75 MB [L1] |
20 |
|
128,000 |
.jpg, .jpeg, .png, .webp, .gif, .bmp |
10 MB |
10 |
|
128,000 |
.jpg, .jpeg, .png, .webp, .gif, .bmp |
10 MB |
10 |
|
128,000 |
.jpg, .jpeg, .png, .webp, .gif, .bmp |
10 MB |
1 |
|
32,768 |
.jpg, .png, .pg, .gif, .bmp |
10 MB |
1 |
Hinweise zu Kosten¶
Die Abrechnung richtet sich nach der Anzahl der verarbeiteten Token. Die Anzahl der Token pro Bild hängt von der Architektur des Bildmodells ab.
Die Formel für anthropische Modelle (
claude
) lautet in etwa: Token = (Breite in Pixel x Höhe in Pixel) / 750.Die Mistral-Modelle (
pixtral
) teilen jedes Bild in Batches von 16x16 Pixeln auf und wandeln jeden Batch in ein Token um. Die Gesamtzahl der Token entspricht ungefähr (Breite in Pixel / 16) * (Höhe in Pixel / 16).Meta (
llama
)-Modelle versuchen, das Bild mit quadratischen Kacheln zu kacheln. Je nach Seitenverhältnis und Größe des Bildes kann die Anzahl der Kacheln bis zu 16 betragen, die jeweils durch etwa 153 Token dargestellt werden.Öffnen Sie AI-Modelle, skalieren das Bild neu und und kacheln Sie es mit quadratischen Feldern. Für
openai-gpt-4.1
kann je nach Bildverhältnis und -größe die Anzahl der Token 211 (Bilder bis zu 512 × 512 Pixel), 352 (nicht quadratische Bilder mit einer längeren Seitenlänge als 1.024 Pixel) oder zwischen 630 Token (quadratische Bilder ab 1.024 × 1.024 Pixel) und 913 Token (nicht quadratische Bilder mit einer kürzeren Seitenlänge als 1.024 Pixel) betragen. Füropenai-o4-mini
ist die Neuskalierungslogik aufwändiger und die Anzahl der Token variiert von 86 (128 × 512 Pixel) bis 1.428 (2.048 × 1.024 Pixel); sie folgt keinem linearen Muster.voyage-multimodal-3
arbeitet mit einem Array von Bildfeldern, die etwa 14 × 14 Pixel groß sind. Das Bild wird so neu skaliert, dass es durch ein Gitter abgedeckt wird, das mindestens 64 und höchstes 2.500 Felder enthält. Es werden zwei zusätzliche Bild-Token hinzugefügt, sodass die Eingabe zwischen 66 und 2.502 Token liegt, abhängig von Bildgröße und Seitenverhältnis.
Bemerkung
Die Funktion COUNT_TOKENS unterstützt derzeit keine Bildeingaben.
Auswahl eines Bildmodells¶
Die Funktion COMPLETE unterstützt mehrere Modelle mit unterschiedlicher Leistungsfähigkeit, Latenzzeit und Kosten. Um eine optimale Leistung pro Credit zu erzielen, wählen Sie ein Modell, das auf den Umfang des Inhalts und die Komplexität der Aufgabe abgestimmt ist.
Modell |
MMMU |
Mathvista |
ChartQA |
DocVQA |
VQAv2 |
---|---|---|---|---|---|
GPT-4o |
68,6 |
64,6 |
85,1 |
88,9 |
77,8 |
|
75,0 |
72,0 |
|||
|
81,6 |
84,3 |
|||
|
68,0 |
64,4 |
87,6 |
90,3 |
70,7 |
|
73,4 |
73,7 |
90 |
94,4 |
|
|
69,4 |
70,7 |
88,8 |
94,4 |
|
|
64,0 |
69,4 |
88,1 |
85,7 |
67 |
Die Benchmarks sind:
MMMU: Bewertet multimodale Modelle bei multidisziplinären Aufgaben, die logisches Denken auf College-Niveau erfordern.
Mathvista: Benchmark für mathematisches Denken in einem visuellen Kontext.
ChartQA: Bewertet komplexe Argumentationsfragen zu Diagrammen.
DocVQA und VQv2: Benchmarks für die visuelle Beantwortung von Fragen zu Dokumenten.
Bei multimodalen Einbettungen ist nur das voyage-multimodal-3
-Modell derzeit verfügbar. voyage-multimodal-3
ist ein hochmodernes multimodales Einbettungsmodell, das in der Lage ist, Text und Bilder einzubetten. Es kann wichtige visuelle Features aus Quellen wie Screenshots von PDFs, Folien, Tabellen und Abbildungen extrahieren, was den Bedarf an komplexen Workflows zum Parsen von Dokumenten reduziert. Gemäß internen Benchmarks von Voyage AI ist das Modell voyage-multimodal-3
leistungsstärker als konkurrierende Modelle wie z. B. OpenAI CLIP Large, Amazon Titan Multimodal und Cohere Multimodal v3.
Regionale Verfügbarkeit¶
Die Unterstützung für dieses Feature ist für Konten in den folgenden Snowflake-Regionen nativ verfügbar:
Modell
|
AWS US West 2
(Oregon)
|
AWS US East 1
(N. Virginia)
|
AWS Europe Central 1
(Frankfurt)
|
---|---|---|---|
|
✔ |
✔ |
|
|
|||
|
|||
|
|||
|
✔ |
✔ |
✔ |
|
✔ |
||
|
✔ |
||
|
AI_COMPLETE ist in weiteren Regionen verfügbar über die regionenübergreifende Inferenz.
Fehlerbedingungen¶
Meldung |
Erläuterung |
---|---|
Anfrage für externe Funktion SYSTEM$COMPLETE_WITH_IMAGE_INTERNAL mit Remotedienstfehler: 400 „Ungültiger Bildpfad“ fehlgeschlagen |
Entweder die Dateierweiterung oder die Datei selbst wird von dem Modell nicht akzeptiert. Die Meldung kann auch bedeuten, dass der Dateipfad falsch ist, d. h. dass die Datei am angegebenen Speicherort nicht existiert. Bei Dateinamen wird zwischen Groß- und Kleinschreibung unterschieden. |
Fehler in sicherem Objekt |
Kann anzeigen, dass der Stagingbereich nicht existiert. Überprüfen Sie den Namen des Stagingbereichs und stellen Sie sicher, dass der Bereich existiert und zugänglich ist. Achten Sie darauf, das at (@)-Zeichen am Anfang des Pfads zum Stagingbereich zu verwenden, z. B. |
Anfrage für externe Funktion _COMPLETE_WITH_PROMPT mit Remotedienstfehler: 400 „“invalid request parameters: unsupported image format: image/**“ fehlgeschlagen |
Nicht unterstütztes Bildformat, das an |
Anfrage für externe Funktion _COMPLETE_WITH_PROMPT mit Remotedienstfehler: 400 „invalid request parameters: Image data exceeds the limit of 5.00 MB“ fehlgeschlagen |
Das an |
Rechtliche Hinweise¶
Die Datenklassifizierung der Eingaben und Ausgaben ist in der folgenden Tabelle aufgeführt.
Klassifizierung von Eingabedaten |
Klassifizierung von Ausgabedaten |
Benennung |
---|---|---|
Usage Data |
Customer Data |
Die allgemein verfügbaren Funktionen sind abgedeckte AI-Features. Die Vorschaufunktionen sind Vorschau-AI-Features. [1] |
Weitere Informationen dazu finden Sie unter KI und ML in Snowflake.