- Kategorien:
Zeichenfolgen- und Binärfunktionen (AI-Funktionen)
AI_COMPLETE (Einzelne Zeichenfolge)¶
Bemerkung
AI_COMPLETE ist die aktualisierte Version von COMPLETE (SNOWFLAKE.CORTEX). Die neueste Funktionalität finden Sie unter AI_COMPLETE.
Erzeugt eine Antwort (Vervollständigung) auf einen Text-Prompt unter Verwendung eines unterstützten Sprachmodells.
Syntax¶
Die Funktion enthält zwei erforderliche Argumente und vier optionale Argumente. Die Funktion kann entweder mit der Syntax für positionale oder benannte Argumente verwendet werden.
Verwendung von AI_COMPLETE mit einer einzelnen Zeichenfolgeneingabe
AI_COMPLETE(
<model>, <prompt> [ , <model_parameters>, <response_format>, <show_details> ] )
Argumente¶
modelZeichenfolge, die das zu verwendende Modell angibt. Geben Sie eines der folgenden Modelle an:
claude-4-opusclaude-4-sonnetclaude-3-7-sonnetclaude-3-5-sonnetdeepseek-r1gemma-7bjamba-1.5-minijamba-1.5-largejamba-instructllama2-70b-chatllama3-8bllama3-70bllama3.1-8bllama3.1-70bllama3.1-405bllama3.2-1bllama3.2-3bllama3.3-70bllama4-maverickllama4-scoutmistral-largemistral-large2mistral-7bmixtral-8x7bopenai-gpt-4.1openai-o4-minireka-corereka-flashsnowflake-arcticsnowflake-llama-3.1-405bsnowflake-llama-3.3-70b
Unterstützte Modelle können unterschiedliche Kosten haben.
promptEin Zeichenfolgen-Prompt
model_parametersEin 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 zutemperatureverwendet wird. Der Unterschied besteht darin, dasstop_pdie Menge der möglichen Token, die das Modell ausgibt, einschränkt, währendtemperaturebeeinflusst, 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.Standard: FALSE
response_formatEine der folgenden Optionen:
Ein JSON-Schema, dem die Antwort folgen sollte. Dies ist ein SQL-Unterobjekt, keine Zeichenfolge. Wenn
response_formatnicht angegeben wird, ist die Antwort eine Zeichenfolge, die entweder die Antwort oder ein serialisiertes JSON-Objekt enthält, das die Antwort und Informationen dazu enthält.Eine Definition eines SQL-Typs, beginnend mit dem TYPE-Schlüsselwort. Dieser Typ muss ein OBJECT als Container der obersten Ebene verwenden. Felder von diesem OBJECT werden den entsprechendenJSON-Feldern und -Werten zugeordnet.
Weitere Informationen dazu finden Sie unter Strukturierte AI_COMPLETE-Ausgaben.
show_detailsEin boolesches Flag, das angibt, ob ein serialisiertes JSON-Objekt zurückgegeben werden soll, das die Antwort und Informationen dazu enthält.
Rückgabewerte¶
Wenn das Argument show_details nicht angegeben oder auf FALSE festgelegt ist und das Argument response_format nicht angegeben oder auf NULL gesetzt ist, wird eine Zeichenfolge zurückgegeben, die die Antwort enthält.
Wenn das Argument show_details nicht angegeben oder auf FALSE gesetzt ist und response_format angegeben wird, wird ein Objekt zurückgegeben, das dem angegebenen Antwortformat entspricht.
Wenn das Argument show_details auf TRUE gesetzt ist und response_format nicht angegeben wird, wird ein JSON-Objekt zurückgegeben, das die folgenden Schlüssel enthält:
"choices": Ein Array mit den Antworten des Modells. (Derzeit wird nur eine Antwort bereitgestellt.) Jede Antwort ist ein Objekt, das einen Schlüssel"messages"enthält, dessen Wert die Antwort des Modells auf die letzte Eingabeaufforderung ist."created": UNIX-Zeitstempel (Sekunden seit Mitternacht des 1. Januar 1970) für das Generieren der Antwort."model": Name des Modells, das die Antwort erstellt hat."usage": Objekt, das die Anzahl der von dieser Vervollständigung verbrauchten und generierten Token erfasst. Enthält die folgenden Unterschlüssel:"completion_tokens": Anzahl der Token in der generierten Antwort."prompt_tokens": Anzahl der Token im Prompt."total_tokens": Gesamtzahl der verbrauchten Token, die sich aus der Summe der beiden anderen Werte ergibt.
Wenn das Argument show_details auf TRUE gesetzt ist und response_format angegeben wird, wird ein JSON-Objekt zurückgegeben, das die folgenden Schlüssel enthält:
"structured_output": Ein JSON-Objekt, das dem angegebenen Antwortformat folgt."created": UNIX-Zeitstempel (Sekunden seit Mitternacht des 1. Januar 1970) für das Generieren der Antwort."model": Name des Modells, das die Antwort erstellt hat."usage": Objekt, das die Anzahl der von dieser Vervollständigung verbrauchten und generierten Token erfasst. Enthält die folgenden Unterschlüssel:"completion_tokens": Anzahl der Token in der generierten Antwort."prompt_tokens": Anzahl der Token im Prompt."total_tokens": Gesamtzahl der verbrauchten Token, die sich aus der Summe der beiden anderen Werte ergibt.
Beispiele¶
Einzelne Antwort¶
So generieren Sie eine einzige Antwort:
SELECT AI_COMPLETE('snowflake-arctic', 'What are large language models?');
Antworten aus Tabellenspalte¶
Das folgende Beispiel erzeugt eine Antwort für jede Zeile in der Tabelle reviews, wobei die Spalte content als Eingabe verwendet wird. Jedes Abfrageergebnis enthält eine Kritik der entsprechenden Rezension.
SELECT AI_COMPLETE(
'mistral-large',
CONCAT('Critique this review in bullet points: <review>', content, '</review>')
) FROM reviews LIMIT 10;
Tipp
Wie in diesem Beispiel gezeigt, können Sie in der Eingabeaufforderung mittels Tagging die Art der generierten Antwort steuern. Tipps dazu finden Sie unter Leitfaden zu Eingabeaufforderungen mit LLaMA 2.
Modellparameter kontrollieren¶
Das folgende Beispiel gibt die model_parameters an, die für die Bereitstellung einer Antwort verwendet werden.
SELECT AI_COMPLETE(
model => 'llama2-70b-chat',
prompt => 'how does a snowflake get its unique pattern?',
model_parameters => {
'temperature': 0.7,
'max_tokens': 10
}
);
Die Antwort ist eine Zeichenfolge, die die Nachricht des Sprachmodells und andere Informationen enthält. Beachten Sie, dass die Antwort wie für das model_parameters-Argument angegeben gekürzt wird.
"The unique pattern on a snowflake is"
Detaillierte Ausgabe¶
Das folgende Beispiel zeigt, wie Sie das Argument show_details verwenden können, um zusätzliche Inferenzdetails zurückzugeben.
SELECT AI_COMPLETE(
model => 'llama2-70b-chat',
prompt => 'how does a snowflake get its unique pattern?',
model_parameters => {
'temperature': 0.7,
'max_tokens': 10
},
show_details => true
);
Die Antwort ist ein JSON-Objekt mit der Nachricht des Modells und den zugehörigen Details. Das Argument options wurde verwendet, um die Ausgabe abzuschneiden.
{
"choices": [
{
"messages": " The unique pattern on a snowflake is"
}
],
"created": 1708536426,
"model": "llama2-70b-chat",
"usage": {
"completion_tokens": 10,
"prompt_tokens": 22,
"guardrail_tokens": 0,
"total_tokens": 32
}
}
JSON-Antwortformat festlegen¶
Dieses Beispiel veranschaulicht die Verwendung des response_format-Arguments der Funktion, um eine strukturierte Antwort durch Bereitstellung eines Typliterals zurückzugeben.
SELECT AI_COMPLETE(
model => 'llama2-70b-chat',
prompt => 'Extract structured data from this customer interaction note: Customer Sarah Jones complained about the mobile app crashing during checkout. She tried to purchase 3 items: a red XL jacket ($89.99), blue running shoes ($129.50), and a fitness tracker ($199.00). The app crashed after she entered her shipping address at 123 Main St, Portland OR, 97201. She has been a premium member since January 2024.',
model_parameters => {
'temperature': 0,
'max_tokens': 4096
},
response_format => TYPE OBJECT(note OBJECT(items_count NUMBER, price ARRAY(STRING), address STRING, member_date STRING)),
);
Die Antwort ist ein JSON-Objekt, das dem strukturierten Antwortformat entspricht.
Antwort:
{
"note": {
"address": "123 Main St, Portland OR, 97201",
"items_count": 3,
"member_date": "January 2024",
"price": [
"$89.99",
"$129.50",
"$199.00"
]
}
}
Festlegen eines JSON-Antwortformats mit Details unter Verwendung eines Typliterals¶
Dieses Beispiel veranschaulicht die Verwendung des response_format-Arguments zur Rückgabe einer strukturierten Antwort in Kombination mit show_details, um unter Verwendung eines Typliterals zusätzliche Inferenzinformationen zu erhalten.
SELECT AI_COMPLETE(
model => 'llama3.3-70b',
prompt => 'Extract structured data from this customer interaction note: Customer Sarah Jones complained about the mobile app crashing during checkout. She tried to purchase 3 items: a red XL jacket ($89.99), blue running shoes ($129.50), and a fitness tracker ($199.00). The app crashed after she entered her shipping address at 123 Main St, Portland OR, 97201. She has been a premium member since January 2024.',
response_format => TYPE OBJECT(note OBJECT(items_count NUMBER, price ARRAY(STRING), address STRING, member_date STRING)),
show_details => TRUE
);
Die Antwort ist ein JSON-Objekt, das eine strukturierte Antwort mit zusätzlichen Inferenz-Metadaten enthält.
{
"created": 1758755328,
"model": "llama3.3-70b",
"structured_output": [
{
"raw_message": {
"note": {
"items_count": 3,
"price": [
"$89.99",
"$129.50",
"$199.00"
]
}
},
"type": "json"
}
],
"usage": {
"completion_tokens": 49,
"prompt_tokens": 100,
"total_tokens": 149
}
}
Festlegen eines JSON-Antwortformats mit Details unter Verwendung eines JSON-Schemas¶
Dieses Beispiel veranschaulicht die Verwendung des response_format-Arguments zur Rückgabe einer strukturierten Antwort in Kombination mit show_details, um unter Verwendung eines JSON-Schemas zusätzliche Inferenzinformationen zu erhalten.
SELECT AI_COMPLETE(
model => 'llama2-70b-chat',
prompt => 'Extract structured data from this customer interaction note: Customer Sarah Jones complained about the mobile app crashing during checkout. She tried to purchase 3 items: a red XL jacket ($89.99), blue running shoes ($129.50), and a fitness tracker ($199.00). The app crashed after she entered her shipping address at 123 Main St, Portland OR, 97201. She has been a premium member since January 2024.',
model_parameters => {
'temperature': 0,
'max_tokens': 4096
},
response_format => {
'type':'json',
'schema':{'type' : 'object','properties' : {'note':{'type':'object','properties':
{'items_count' : {'type' : 'number'},'price': {'type':'array','items':{'type':'string'}}, 'address': {'type':'string'}, 'member_date': {'type':'string'}},'required':['items_count','price' ,'address', 'member_date']}}}
},
show_details => true
);
Die Antwort ist ein JSON-Objekt, das eine strukturierte Antwort mit zusätzlichen Inferenz-Metadaten enthält.
{
"created": 1758057115,
"model": "mistral-large2",
"structured_output": [
{
"raw_message": {
"note": {
"address": "123 Main St, Portland OR, 97201",
"items_count": 3,
"member_date": "January 2024",
"price": [
"$89.99",
"$129.50",
"$199.00"
]
}
},
"type": "json"
}
],
"usage": {
"completion_tokens": 76,
"prompt_tokens": 100,
"total_tokens": 176
}
}