- Kategorien:
Zeichenfolgen- und Binärfunktionen (Large Language Model)
COMPLETE (SNOWFLAKE.CORTEX) (multimodal)¶
Wichtig
Diese Funktion wird abgeschafft. Informationen über die aktualisierte Funktion finden Sie unter AI_COMPLETE. Snowflake bietet diese Funktion immer noch an. Verwenden Sie aber die aktualisierte Version, um das beste Ergebnis zu erzielen.
Erzeugt anhand eines Bildes und eines Prompts eine Antwort (Vervollständigung) unter Verwendung eines Sprachmodells. Diese Funktionsvariante unterstützt neben Textmodellen auch Bildmodelle und verarbeitet Bilder, die in einem internen Snowflake-Stagingbereich oder in einem externen Stagingbereich gespeichert sind. COMPLETE kann verwendet werden, um ein einzelnes Bild, mehrere Bilder im Batch (wobei auf jedes Bild der gleiche oder ein anderer Prompt angewendet wird) oder mehrere Bilder in einer einzigen Operation zu verarbeiten (z. B. Vergleich).
Syntax¶
Verwenden Sie eine der folgenden Optionen:
SNOWFLAKE.CORTEX.COMPLETE(
'<model>', '<prompt>', <file_object>)
FROM <table>
SNOWFLAKE.CORTEX.COMPLETE(
'<model>', <prompt_object> )
FROM <table>
Argumente¶
model
Zeichenfolge, die das zu verwendende Modell angibt. Geben Sie eines der folgenden Modelle an:
claude-3-5-sonnet
pixtral-large
Die unterstützten Modelle können unterschiedliche Kosten und Kontextfenster haben. Von Zeit zu Zeit können neue Modelle hinzugefügt werden.
prompt
Eine Zeichenfolge, die eine Frage zum Bild enthält und optional ein Ausgabeformat angibt, wie z. B. JSON. Entweder dieses oder das Argument
prompt_object
ist erforderlich.prompt_object
Ein SQL-OBJECT, das einen Zeichenfolgen-Prompt mit nummerierten Platzhaltern (
{0}
,{1}
usw.) und einen oder mehrere Text- oder FILE-Werte enthält, die in den Prompt eingefügt werden. Die Funktion Funktion PROMPT ist ein bequemer Weg, um ein Objekt mit dem gewünschten Layout zu erstellen. Entweder dieses Argument oderprompt
ist erforderlich.file_object
Ein FILE-Objekt, das eine zu verarbeitende Bilddatei enthält. Verwenden Sie die Funktion TO_FILE, um FILE-Objekte aus einem Stagingbereich zu erstellen. Erforderlich, wenn Sie einen Zeichenfolgen-Prompt verwenden.
FROM table
Eine optionale Tabelle, die Bildpfade und einen optionalen Prompt für jedes Bild enthält, ermöglicht die Batchverarbeitung von Bildern mit einem einzigen Aufruf von COMPLETE.
Rückgabewerte¶
Eine Zeichenfolge, die die Antwort des Sprachmodells enthält.
Nutzungshinweise¶
Um mehrere Bilder zu verarbeiten, muss die Eingabeaufforderung ein Objekt sein (normalerweise mit der PROMPT-Funktion erstellt), das eine Prompt-Vorlage und die zu verarbeitenden Dateien angibt.
Es werden nur Text und Bilder unterstützt. Video- und Audiodateien werden nicht unterstützt.
Bilder mit den Dateinamenerweiterungen
.jpg
,.jpeg
,.png
,.gif
und.webp
werden unterstützt.pixtral-large
unterstützt auch.bmp
.Die maximale Bildgröße beträgt 10 MB für
pixtral-large
und 3,75 MB fürclaude-3-5-sonnet
. Außerdem unterstütztclaude-3-5-sonnet
keine Bilder mit einer Auflösung von mehr als 8000x8000.Für den Stagingbereich, der die Bilder enthält, muss die serverseitige Verschlüsselung aktiviert sein. Clientseitig verschlüsselte Stagingbereiche werden nicht unterstützt.
Die Funktion unterstützt keine benutzerdefinierten Netzwerkrichtlinien.
Bei Stagingbereich-Namen wird nicht zwischen Groß- und Kleinschreibung unterschieden, bei Pfaden jedoch schon.
Beispiele¶
Die folgenden Beispiele demonstrieren die grundlegenden Möglichkeiten der Funktion COMPLETE mit Bildern.
Visuelle Beantwortung von Fragen¶
Ein Diagramm der Inflationsraten wird verwendet, um eine Frage zu den Daten zu beantworten.

Vergleich zwischen den Inflationsraten im Jahr 2023 und 2024 (Statista))¶
SELECT SNOWFLAKE.CORTEX.COMPLETE('claude-3-5-sonnet',
'Which country will observe the largest inflation change in 2024 compared to 2023?',
TO_FILE('@myimages', 'highest-inflation.png'));
Antwort:
Looking at the data, Venezuela will experience the largest change in inflation rates between 2023 and 2024.
The inflation rate in Venezuela is projected to decrease significantly from 337.46% in 2023 to 99.98% in 2024,
representing a reduction of approximately 237.48 percentage points. This is the most dramatic change among
all countries shown in the chart, even though Zimbabwe has higher absolute inflation rates.
Bildklassifizierung¶
Dieses Beispiel klassifiziert die Sehenswürdigkeit, die in einem einzelnen Bild identifiziert wurde.

SELECT SNOWFLAKE.CORTEX.COMPLETE('claude-3-5-sonnet',
'Classify the landmark identified in this image. Respond in JSON only with the landmark name.',
TO_FILE('@myimages', 'Seattle.jpg'));
Antwort:
{"landmark": "Space Needle"}
Extraktion von Entitäten aus einem Bild¶
Dieses Beispiel extrahiert die Entitäten (Objekte) aus einem Bild und gibt die Ergebnisse im JSON-Format zurück.

SELECT SNOWFLAKE.CORTEX.COMPLETE('claude-3-5-sonnet',
'Extract the kitchen appliances identified in this image. Respond in JSON only with the identified appliances.',
TO_FILE('@myimages', 'kitchen.png'));
Antwort:
{
"appliances": [ "microwave","electric stove","oven","refrigerator" ]
}
Batchverarbeitung von Bildern aus einem Verzeichnis oder einer Tabelle¶
Für die Batchverarbeitung mehrerer Bilder, bei der für jedes Bild die gleiche Operation durchgeführt wird, speichern Sie die Bilddateien im gleichen Stagingbereich. Wenden Sie die Funktion COMPLETE auf jede Zeile der Tabelle an.
Bemerkung
Der Stagingbereich muss über eine Verzeichnistabelle verfügen, um die Pfade zu seinen Dateien abrufen zu können.
Erstellen Sie zunächst die Tabelle, indem Sie die Speicherorte der Bilder aus dem Verzeichnis abrufen, diese in FILE-Objekte konvertieren und die resultierenden FILE-Objekte in einer Spalte in einer Tabelle speichern. Verwenden Sie SQL wie folgt:
CREATE TABLE image_table AS
(SELECT TO_FILE('@myimages', RELATIVE_PATH) AS img FROM DIRECTORY(@myimages));
Wenden Sie dann die Funktion COMPLETE auf die Spalte an, die die FILE-Objekte enthält. Das folgende Beispiel klassifiziert jedes Bild in der Tabelle:
SELECT SNOWFLAKE.CORTEX.COMPLETE('claude-3-5-sonnet',
PROMPT('Classify the input image {0} in no more than 2 words. Respond in JSON', img_file)) AS image_classification
FROM image_table;
Antwort:
{ "classification": "Inflation Rates" }
{ "classification": "beverage refrigerator" }
{ "classification": "Space Needle" }
{ "classification": "Modern Kitchen" }
{ "classification": "Pie Chart" }
{ "classification": "Economic Graph" }
{ "classification": "Persian Cat" }
{ "classification": "Labrador Retriever" }
{ "classification": "Jedi Cat" }
{ "classification": "Sleeping cat" }
{ "classification": "Persian Cat" }
{ "classification": "Garden Costume" }
{ "classification": "Floral Fashion" }
Wenn Sie bereits über eine Tabelle mit Pfaden zu den Bildern verfügen, können Sie die Funktion TO_FILE verwenden, um die FILE-Objekte innerhalb der Abfrage zu erstellen:
SELECT SNOWFLAKE.CORTEX.COMPLETE('claude-3-5-sonnet',
PROMPT('Classify the input image {0} in no more than 2 words. Respond in JSON',
TO_FILE('@myimages', img_path)) AS image_classification
FROM image_table;
Sie können die zu verarbeitenden Bilder auch direkt aus dem Verzeichnis eines Stagingbereichs abrufen, wie hier gezeigt:
SELECT SNOWFLAKE.CORTEX.COMPLETE('claude-3-5-sonnet',
PROMPT('Classify the input image {0} in no more than 2 words. Respond in JSON',
TO_FILE('@myimages', RELATIVE_PATH))) as image_classification
FROM DIRECTORY(@myimages);
Bilder und Prompts in einer Tabelle bereitstellen¶
Wenn Sie für jedes Bild in einer Tabelle eine andere Operation durchführen möchten, stellen Sie die Bilder und die entsprechenden Prompts in einer Tabelle bereit. Im folgenden Beispiel enthält die Tabelle den Stagingbereichspfad eines jeden Bildes in der Spalte img_path
und den Prompt in der Spalte prompt
.
SNOWFLAKE.CORTEX.COMPLETE('claude-3-5-sonnet',
PROMPT('Given the input image {0}, {1}. Respond in JSON',
TO_FILE('@myimages', img_path), prompt) as image_result)
FROM image_table;
Rechtliche Hinweise¶
Weitere Informationen dazu finden Sie unter KI und ML in Snowflake.