Kategorien:

Zeichenfolgen- und Binärfunktionen (AI-Funktionen)

AI_COMPLETE (Prompt-Objekt)

Bemerkung

AI_COMPLETE ist die aktualisierte Version von COMPLETE (SNOWFLAKE.CORTEX). Die neueste Funktionalität finden Sie unter AI_COMPLETE.

Generiert eine Antwort (Vervollständigung) für ein Prompt-Objekt. Der Prompt kann FILE-Objekte umfassen, die Bilder oder Dokumente enthalten können.

Syntax

Die Funktion kann entweder mit der Syntax für positionale oder benannte Argumente verwendet werden.

AI_COMPLETE(
    <model>, <prompt> [ , <model_parameters> ] )

Argumente

model

Zeichenfolge, die das zu verwendende Modell angibt. Für reine Texteingaben können Sie eines der folgenden Modelle verwenden:

  • claude-4-opus

  • claude-4-sonnet

  • claude-3-7-sonnet

  • claude-3-5-sonnet

  • deepseek-r1

  • llama3-8b

  • llama3-70b

  • llama3.1-8b

  • llama3.1-70b

  • llama3.1-405b

  • llama3.3-70b

  • llama4-maverick

  • llama4-scout

  • mistral-large

  • mistral-large2

  • mistral-7b

  • mixtral-8x7b

  • openai-gpt-4.1

  • openai-o4-mini

  • snowflake-arctic

  • snowflake-llama-3.1-405b

  • snowflake-llama-3.3-70b

Für die Bildeingabe können Sie eines der folgenden Modelle verwenden:

  • claude-4-opus

  • claude-4-sonnet

  • claude-3-7-sonnet

  • claude-haiku-4-5

  • claude-sonnet-4-5

  • claude-opus-4-5

  • claude-sonnet-4-6

  • claude-opus-4-6

  • llama4-maverick

  • llama4-scout

  • pixtral-large

  • openai-o4-mini

  • openai-gpt-4.1

  • openai-gpt-5

  • openai-gpt-5-chat

  • openai-gpt-5-mini

  • openai-gpt-5-nano

  • openai-gpt-5.1

  • openai-gpt-5.2

  • gemini-2.5-flash

  • gemini-2.5-flash-lite

  • gemini-3-pro

Für Dokumenteingaben können Sie eines der folgenden Modelle verwenden:

  • gemini-3-pro

  • claude-4-opus

  • claude-4-sonnet

  • claude-3-7-sonnet

  • claude-haiku-4-5

  • claude-sonnet-4-5

  • claude-opus-4-5

Unterstützte Modelle können unterschiedliche Kosten haben.

prompt

Ein Prompt-Objekt, das Text und optional Bilder oder Dokumente enthält.

model_parameters Ein Objekt, das null oder mehr der folgenden Optionen enthält, die die Hyperparameter des Modells beeinflussen. Siehe LLM-Einstellungen.

  • temperature: Ein Wert von 0 bis 1 (einschließlich), der die Zufälligkeit der Ausgabe des Sprachmodells steuert. Eine höhere Modelltemperatur (z. B. 0,7) führt zu einer vielfältigeren und zufälligeren Ausgabe, während eine niedrigere Modelltemperatur (z. B. 0,2) die Ausgabe deterministischer und konzentrierter macht.

    Standardeinstellung: 0

  • top_p: Ein Wert von 0 bis 1 (einschließlich), der die Zufälligkeit und Diversität des Sprachmodells steuert und im Allgemeinen als Alternative zu temperature verwendet wird. Der Unterschied besteht darin, dass top_p die Menge der möglichen Token, die das Modell ausgibt, einschränkt, während temperature beeinflusst, welche Token bei jedem Schritt ausgewählt werden.

    Standardeinstellung: 0

  • max_tokens: Legt die maximale Anzahl der Ausgabe-Token in der Antwort fest. Kleine Werte können zu abgeschnittenen Antworten führen.

    Standardwert: 4.096 Maximal zulässiger Wert: 8.192

  • guardrails: Filtert potenziell unsichere und schädliche Antworten aus einem Sprachmodell unter Verwendung von Cortex Guard. Entweder TRUE oder FALSE. Der Standardwert ist FALSE.

Wichtig

Wenn Sie AI_COMPLETE mit einem Prompt-Objekt verwenden, können Sie kein JSON-Schema bereitstellen, um eine strukturierte Ausgabe als Antwort abzurufen.

Um eine strukturierte Ausgabe als Antwort zu erhalten, verwenden Sie den response_format-Parameter mit AI_COMPLETE (Einzelne Zeichenfolge). Weitere Informationen über die Verwendung von strukturierten Ausgaben finden Sie unter Strukturierte AI_COMPLETE-Ausgaben.

Beispiel

Übergabe mehrerer Bilder als Eingabe

Das folgende Beispiel vergleicht zwei Bilder, indem es beide als Eingabe an die Funktion AI_COMPLETE übergibt und fragt, ob es sich bei beiden um Bilder von Katzen handelt:

SELECT AI_COMPLETE('claude-3-5-sonnet',
  PROMPT('Are both image {0} and image {1} pictures of cats?',
    TO_FILE('@myimages', 'sleepingcat.png'), TO_FILE('@myimages', 'jumpingcat.png'))) AS image_classification;

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 AI_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 AI_COMPLETE auf die Spalte an, die die FILE-Objekte enthält. Das folgende Beispiel klassifiziert jedes Bild in der Tabelle:

SELECT AI_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 AI_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 AI_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.

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

Nutzungshinweise für die Bildverarbeitung

  • Um mehrere Bilder zu verarbeiten, geben Sie im Funktionsaufruf ein Prompt-Objekt an, das eine Prompt-Vorlage und die zugehörigen Bilddateien definiert. Sie können die PROMPT-Funktion verwenden, um dieses Objekt zu erstellen. Die Prompt-Vorlage kann nummerierte Platzhalter ({0}, {1} usw.) enthalten, die den Bildern im Prompt-Objekt entsprechen. Verwenden Sie die Funktion TO_FILE zur Angabe der Dokumentdateien im Prompt-Objekt.

  • Es werden nur Text und Bilder unterstützt. Video- und Audiodateien werden nicht unterstützt.

  • Unterstützte Bildformate:

    • .jpg

    • .jpeg

    • .png

    • .gif

    • .webp

    Die Modelle pixtral und llama4 unterstützen auch .bmp.

  • Die maximale Bildgröße beträgt 10 MB für die meisten Modelle und 3,75 MB für claude-Modelle. claude-Modelle unterstützen keine Bilder mit Auflösungen über 8000 x 8000.

  • 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 Stagingbereichen wird die Groß-/Kleinschreibung nicht beachtet, bei Pfaden die Groß-/Kleinschreibung.

Nutzungshinweise für die Verarbeitung von Dokumenten

  • Um mehrere Dokumente zu verarbeiten, geben Sie im Funktionsaufruf ein Prompt-Objekt an, das eine Prompt-Vorlage und die zugehörigen Dokumentdateien definiert. Sie können die PROMPT-Funktion verwenden, um dieses Objekt zu erstellen. Die Prompt-Vorlage kann nummerierte Platzhalter ({0}, {1} usw.) enthalten, die den Dokumenten im Prompt-Objekt entsprechen. Verwenden Sie die Funktion TO_FILE zur Angabe der Dokumentdateien im Prompt-Objekt.

  • Es werden nur Text und Dokumente unterstützt. Video- und Audiodateien werden nicht unterstützt.

  • Alle Modelle unterstützen folgende Formate: .txt, .md und``.pdf``. Claude-Modelle unterstützen auch .txt, .md, .pdf, .doc, .docx, .xls, .xlsx, .csv und .xhtml.

  • Claude-Modelle haben eine maximale Dokumentgröße von 4,5 MB. Gemini 3 Pro hat eine maximale Dokumentgröße von 10 MB.

  • Die Funktion unterstützt keine benutzerdefinierten Netzwerkrichtlinien.

  • Bei Stagingbereichen wird die Groß-/Kleinschreibung nicht beachtet, bei Pfaden die Groß-/Kleinschreibung.