- Categorias:
Funções de cadeia de caracteres e binários (funções de AI)
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¶
modelUma cadeia de caracteres especificando o modelo a ser usado. Especifique um dos seguintes modelos:
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
Os modelos suportados podem ter custos diferentes.
promptUm prompt de cadeia de caracteres
model_parametersUm 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_prestringe o conjunto de possíveis tokens gerados pelo modelo, enquantotemperatureinfluencia 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_formatUma das opções:
Um esquema JSON que a resposta deve seguir. Esse é um subobjeto SQL, não uma cadeia de caracteres. Se
response_formatnã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.Uma definição de um tipo SQL, começando com a palavra-chave TYPE. Esse tipo deve usar um OBJECT como seu tipo de contêiner de nível superior, e os campos desse OBJECT são mapeados para os campos e valores JSON correspondentes.
Para obter mais informações, consulte Saídas estruturadas de AI_COMPLETE.
show_detailsUm 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 fornecendo um literal de tipo.
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)),
);
A resposta é um objeto json que segue o formato de resposta estruturada.
Resposta:
{
"note": {
"address": "123 Main St, Portland OR, 97201",
"items_count": 3,
"member_date": "January 2024",
"price": [
"$89.99",
"$129.50",
"$199.00"
]
}
}
Especificação de um formato de resposta JSON com detalhes, usando um literal de tipo¶
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 de inferência adicionais, usando um literal de tipo.
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
);
A resposta é um objeto JSON contendo uma resposta estruturada com metadados de inferência adicionais.
{
"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
}
}
Especificação de um formato de resposta JSON com detalhes, usando um esquema JSON¶
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 de inferência adicionais, usando um esquema JSON.
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
);
A resposta é um objeto json contendo uma resposta estruturada com metadados de inferência adicionais.
{
"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
}
}