Funktion PROMPT

Die Funktion PROMPT erstellt ein strukturiertes OBJECT, das eine Vorlagenzeichenfolge und eine Liste von Argumenten enthält. Dieses Objekt ist nützlich, um Nachrichten dynamisch zu formatieren, strukturierte Prompts zu erstellen oder formatierte Daten für die weitere Verarbeitung zu speichern, z. B. durch Cortex AI-Funktionen.

Syntax

SELECT PROMPT('<template_string>', <expr_1> [ , <expr_2>, ... ] )
    FROM <table>;
Copy

Argumente

Benötigt:

template_string

Eine Zeichenfolge, die nummerierte Platzhalter wie {0} enthält, wobei die Zahl mindestens 0 und kleiner als die Anzahl der angegebenen Ausdrücke ist. Der erste Ausdruck wird durch {0} ersetzt, der zweite durch {1}, und so weiter.

expr_1 [ , expr_2, ... ]

Ausdrücke, deren Werte schließlich anstelle der nummerierten Platzhalter in die Vorlagenzeichenfolge eingefügt werden sollen. Dies können Spaltennamen oder andere Ausdrücke sein. Die Werte können von jedem Typ sein, der in eine Zeichenfolge umgewandelt werden kann (z. B. VARCHAR, NUMBER, usw.), oder FILE.

Rückgabewerte

Ein SQL-OBJECT mit der folgenden Struktur:

{
  'template': '<template_string>',
  'args': ARRAY(<value_1>, <value_2>, ...)
}
Copy

Das Array args enthält den Wert der im PROMPT-Funktionsaufruf angegebenen Ausdrücke.

Nutzungshinweise

  • PROMPT führt selbst keine Zeichenfolgenformatierung durch. Er ist dazu gedacht, ein Objekt zu konstruieren, das von den Funktionen von Cortex AI verwendet werden kann.

  • Es ist ein Fehler, einen Platzhalter in der Zeichenfolge der Vorlage zu verwenden, der keinen entsprechenden Ausdruck hat, aber es ist kein Fehler, Ausdrücke zu verwenden, die nicht in der Zeichenfolge der Vorlage verwendet werden.

Beispiele

Grundlegende Verwendung

SELECT PROMPT('Hello, {0}! Today is {1}.', 'Alice', 'Monday');
Copy

Ausgabe:

{
    'template': 'Hello, {0}! Today is {1}.',
    'args': ['Alice', 'Monday']
}

Verwendung mit Cortex COMPLETE und einer FILE-Spalte

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

Weitere Beispiele finden Sie unter COMPLETE (SNOWFLAKE.CORTEX) (multimodal).