- Kategorien:
Zeichenfolgen- und Binärfunktionen (Large Language Model)
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¶
model
Zeichenfolge, die das zu verwendende Modell angibt. Geben Sie eines der folgenden Modelle an:
claude-4-opus
claude-4-sonnet
claude-3-7-sonnet
claude-3-5-sonnet
deepseek-r1
gemma-7b
jamba-1.5-mini
jamba-1.5-large
jamba-instruct
llama2-70b-chat
llama3-8b
llama3-70b
llama3.1-8b
llama3.1-70b
llama3.1-405b
llama3.2-1b
llama3.2-3b
llama3.3-70b
llama4-maverick
llama4-scout
mistral-large
mistral-large2
mistral-7b
mixtral-8x7b
openai-gpt4.1
openai-o4-mini
reka-core
reka-flash
snowflake-arctic
snowflake-llama-3.1-405b
snowflake-llama-3.3-70b
Unterstützte Modelle können unterschiedliche Kosten haben.
prompt
Ein Zeichenfolgen-Prompt
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 zutemperature
verwendet wird. Der Unterschied besteht darin, dasstop_p
die Menge der möglichen Token, die das Modell ausgibt, einschränkt, währendtemperature
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.Standard: FALSE
response_format
Ein JSON-Schema, dem die Antwort folgen sollte. Dies ist ein SQL-Unterobjekt, keine Zeichenfolge. Wenn
response_format
nicht 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.Weitere Informationen dazu finden Sie unter Strukturierte AI_COMPLETE-Ausgaben.
show_details
Ein 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 entspricht"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 Arguments response_format
der Funktion, um eine strukturierte Antwort 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':'json',
'schema':{'type' : 'object','properties' : {'sentiment_categories':{'type':'array','items':{'type':'object','properties':
{'food_quality' : {'type' : 'string'},'food_taste': {'type':'string'}, 'wait_time': {'type':'string'}, 'food_cost': {'type':'string'}},'required':['food_quality','food_taste' ,'wait_time','food_cost']}}}}
}
);
Die Antwort ist ein JSON-Objekt, das dem strukturierten Antwortformat entspricht.
Antwort:
{
"sentiment_categories": [
{
"food_cost": "negative",
"food_quality": "positive",
"food_taste": "positive",
"wait_time": "neutral"
}
]
}
JSON-Antwortformat mit detaillierter Ausgabe festlegen¶
Dieses Beispiel veranschaulicht die Verwendung des Arguments response_format
der Funktion zur Rückgabe einer strukturierten Antwort in Kombination mit show_details
, um zusätzliche Informationen 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' : {'sentiment_categories':{'type':'array','items':{'type':'object','properties':
{'food_quality' : {'type' : 'string'},'food_taste': {'type':'string'}, 'wait_time': {'type':'string'}, 'food_cost': {'type':'string'}},'required':['food_quality','food_taste' ,'wait_time','food_cost']}}}}
},
show_details => true
);
Die Antwort ist ein JSON-Objekt, das eine strukturierte Antwort mit zusätzlichen Inferenz-Metadaten enthält.
{
"created": 1738683744,
"model": "mistral-large2",
"structured_output": [
{
"raw_message": {
"sentiment_categories": [
{
"food_cost": "negative",
"food_quality": "positive",
"food_taste": "positive",
"wait_time": "neutral"
}
]
},
"type": "json"
}
],
"usage": {
"completion_tokens": 60,
"prompt_tokens": 94,
"total_tokens": 154
}
}