- Categorias:
Funções de cadeia de caracteres e binários (Large Language Model)
AI_COMPLETE (Cadeia de caracteres única)¶
Nota
AI_COMPLETE é a versão atualizada do COMPLETE (SNOWFLAKE.CORTEX). Para obter a funcionalidade mais recente, use AI_COMPLETE.
Gera uma resposta (conclusão) para um prompt de texto usando um modelo de linguagem compatível.
Sintaxe¶
A função contém dois argumentos obrigatórios e quatro argumentos opcionais. A função pode ser usada com a sintaxe de argumentos posicionais ou nomeados.
Uso do AI_COMPLETE com uma única entrada de cadeia de caracteres
AI_COMPLETE(
<model>, <prompt> [ , <model_parameters>, <response_format>, <show_details> ] )
Argumentos¶
model
Uma cadeia de caracteres especificando o modelo a ser usado. Especifique um dos seguintes modelos:
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
Os modelos suportados podem ter custos diferentes.
prompt
Um prompt de cadeia de caracteres
model_parameters
Um objeto contendo zero ou mais das seguintes opções que afetam os hiperparâmetros do modelo. Consulte Configurações do LLM.
temperature
: um valor de 0 a 1 (inclusive) que controla a aleatoriedade da saída do modelo de linguagem. Uma temperatura mais alta (por exemplo, 0,7) resulta em uma saída mais diversificada e aleatória, enquanto uma temperatura mais baixa (como 0,2) torna a saída mais determinística e focada.Padrão: 0
top_p
: um valor de 0 a 1 (inclusive) que controla a aleatoriedade e a diversidade do modelo de linguagem, geralmente usado como alternativa atemperature
. A diferença é quetop_p
restringe o conjunto de possíveis tokens gerados pelo modelo, enquantotemperature
influencia quais tokens são escolhidos em cada etapa.Padrão: 0
max_tokens
: define o número máximo de tokens de saída na resposta. Valores pequenos podem resultar em respostas truncadas.Padrão: 4096 Valor máximo permitido: 8192
guardrails
: filtra respostas potencialmente inseguras e prejudiciais de um modelo de linguagem usando o Cortex Guard. TRUE ou FALSE.Padrão: FALSE
response_format
Um esquema JSON que a resposta deve seguir. Esse é um subobjeto SQL, não uma cadeia de caracteres. Se
response_format
não for especificado, a resposta será uma cadeia de caracteres que contém a resposta ou um objeto JSON serializado que contém a resposta e informações sobre ela.Para obter mais informações, consulte Saídas estruturadas AI_COMPLETE.
show_details
Um sinalizador booliano que indica se você deve retornar um objeto JSON serializado contendo a resposta e as informações sobre ela.
Retornos¶
Quando o argumento show_details
não é especificado ou é definido como FALSE e o argumento response_format
não é especificado ou é definido como NULL, retorna uma cadeia de caracteres que contém a resposta.
Quando o argumento show_details
não é especificado ou é definido como FALSE e o argumento response_format
é especificado, retorna um objeto de acordo com o formato de resposta fornecido.
Quando o argumento show_details
é definido como TRUE e o response_format
não é especificado, retorna um objeto JSON que contém as seguintes chaves.
"choices"
: uma matriz de respostas do modelo. (Atualmente, apenas uma resposta é fornecida.) Cada resposta é um objeto que contém uma chave"messages"
cujo valor é a resposta do modelo ao prompt mais recente."created"
: carimbo de data/hora UNIX (segundos desde meia-noite de 1 de janeiro de 1970) quando a resposta foi gerada."model"
: o nome do modelo que criou a resposta."usage"
: um objeto que registra o número de tokens consumidos e gerados por esta conclusão. Inclui as seguintes subchaves:"completion_tokens"
: o número de tokens na resposta gerada."prompt_tokens"
: o número de tokens no prompt."total_tokens"
: o número total de tokens consumidos, que é a soma dos outros dois valores.
Quando o argumento show_details
é definido como TRUE e o argumento response_format
é especificado, retorna um objeto JSON que contém as seguintes chaves
"structured_output"
: um objeto json seguindo o formato de resposta especificado"created"
: carimbo de data/hora UNIX (segundos desde meia-noite de 1 de janeiro de 1970) quando a resposta foi gerada."model"
: o nome do modelo que criou a resposta."usage"
: um objeto que registra o número de tokens consumidos e gerados por esta conclusão. Inclui as seguintes subchaves:"completion_tokens"
: o número de tokens na resposta gerada."prompt_tokens"
: o número de tokens no prompt."total_tokens"
: o número total de tokens consumidos, que é a soma dos outros dois valores.
Exemplos¶
Resposta única¶
Para gerar uma resposta única:
SELECT AI_COMPLETE('snowflake-arctic', 'What are large language models?');
Respostas da coluna da tabela¶
O exemplo a seguir gera uma resposta para cada linha da tabela reviews
, usando a coluna content
como entrada. Cada resultado de consulta contém uma crítica da revisão correspondente.
SELECT AI_COMPLETE(
'mistral-large',
CONCAT('Critique this review in bullet points: <review>', content, '</review>')
) FROM reviews LIMIT 10;
Dica
Conforme mostrado neste exemplo, você pode usar marcação no prompt para controlar o tipo de resposta gerada. Consulte Um guia para solicitar LLaMA 2 para dicas.
Controle dos parâmetros do modelo¶
O exemplo a seguir especifica o endereço model_parameters
usado para fornecer uma resposta.
SELECT AI_COMPLETE(
model => 'llama2-70b-chat',
prompt => 'how does a snowflake get its unique pattern?',
model_parameters => {
'temperature': 0.7,
'max_tokens': 10
}
);
A resposta é uma cadeia de caracteres que contém a mensagem do modelo de linguagem e outras informações. Observe que a resposta é truncada conforme instruído no argumento model_parameters
.
"The unique pattern on a snowflake is"
Saída detalhada¶
O exemplo a seguir mostra como você pode usar o argumento show_details
para retornar detalhes adicionais de inferência.
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
);
A resposta é um objeto JSON com a mensagem do modelo e os detalhes relacionados. O argumento options
foi usado para truncar a saída.
{
"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
}
}
Especificação de um formato de resposta JSON¶
Este exemplo ilustra o uso do argumento response_format
da função para retornar uma resposta estruturada
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']}}}}
}
);
A resposta é um objeto json que segue o formato de resposta estruturada.
Resposta:
{
"sentiment_categories": [
{
"food_cost": "negative",
"food_quality": "positive",
"food_taste": "positive",
"wait_time": "neutral"
}
]
}
Especificação de um formato de resposta JSON com saída detalhada¶
Este exemplo ilustra o uso do argumento response_format
da função para retornar uma resposta estruturada combinada com show_details
para obter informações adicionais de inferência
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
);
A resposta é um objeto json que contém uma resposta estruturada com metadados de inferência adicionais.
{
"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
}
}