- Categorias:
Funções de cadeia de caracteres e binários (Large Language Model)
AI_COMPLETE (objeto de prompt)¶
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 objeto de prompt. O objeto de prompt faz referência a uma ou mais colunas que contêm dados de texto ou imagem.
Sintaxe¶
A função pode ser usada com a sintaxe de argumentos posicionais ou nomeados.
AI_COMPLETE(
<model>, <prompt> [ , <model_parameters> ] )
Argumentos¶
model
Uma cadeia de caracteres especificando o modelo a ser usado. Para entradas somente de texto, você pode usar 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
- Para entradas de imagem, você pode usar um dos seguintes modelos:
claude-4-opus
claude-4-sonnet
claude-3-7-sonnet
claude-3-5-sonnet
llama-4-maverick
llama-4-scout
pixtral-large
Os modelos suportados podem ter custos diferentes.
prompt
Um objeto de prompt contendo texto e/ou imagens
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
ouFALSE
. O valor padrão éFALSE
.
Exemplo¶
Como passar várias imagens como entrada¶
O exemplo a seguir compara duas imagens, passando ambas como entrada para a função AI_COMPLETE e perguntando se ambas são fotos de gatos:
SELECT AI_COMPLETE('claude-3-5-sonnet',
PROMPT('Are both image {0} and image {1} pictures of cats?',
TO_FILE('@myimages', 'sleepingcat.png'), TO_FILE('@myimages', 'jumpingcat.png')) AS image_classification
FROM image_table;
Processamento em lote de imagens de um diretório ou tabela¶
Para o processamento em lote de várias imagens, executando a mesma operação em cada uma, armazene os arquivos de imagem no mesmo estágio. Aplique a função AI_COMPLETE a cada linha da tabela.
Nota
O estágio deve ter uma tabela de diretório para recuperar os caminhos de seus arquivos.
Primeiro, crie a tabela recuperando os locais das imagens do diretório, convertendo-os em objetos FILE e armazenando os objetos FILE resultantes em uma coluna de uma tabela. Use SQL da seguinte forma:
CREATE TABLE image_table AS
(SELECT TO_FILE('@myimages', RELATIVE_PATH) AS img FROM DIRECTORY(@myimages));
Em seguida, aplique a função AI_COMPLETE à coluna que contém os objetos FILE. O exemplo a seguir classifica cada imagem na tabela:
SELECT AI_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;
Resposta:
{ "classification": "Inflation Rates" }
{ "classification": "beverage refrigerator" }
{ "classification": "Space Needle" }
{ "classification": "Modern Kitchen" }
{ "classification": "Pie Chart" }
{ "classification": "Economic Graph" }
{ "classification": "Persian Cat" }
{ "classification": "Labrador Retriever" }
{ "classification": "Jedi Cat" }
{ "classification": "Sleeping cat" }
{ "classification": "Persian Cat" }
{ "classification": "Garden Costume" }
{ "classification": "Floral Fashion" }
Se você já tiver uma tabela com caminhos para as imagens, poderá usar a função TO_FILE para construir os objetos FILE dentro da consulta:
SELECT AI_COMPLETE('claude-3-5-sonnet',
PROMPT('Classify the input image {0} in no more than 2 words. Respond in JSON',
TO_FILE('@myimages', img_path)) AS image_classification
FROM image_table;
Você também pode recuperar as imagens a serem processadas diretamente do diretório de um estágio, como mostrado aqui:
SELECT AI_COMPLETE('claude-3-5-sonnet',
PROMPT('Classify the input image {0} in no more than 2 words. Respond in JSON',
TO_FILE('@myimages', RELATIVE_PATH))) as image_classification
FROM DIRECTORY(@myimages);
Fornecimento de imagens e prompts em uma tabela¶
Para executar uma operação diferente em cada imagem de uma tabela, forneça as imagens e seus prompts correspondentes em uma tabela. No exemplo a seguir, a tabela contém o caminho do estágio de cada imagem na coluna img_path
e o prompt na coluna prompt
.
AI_COMPLETE('claude-3-5-sonnet',
PROMPT('Given the input image {0}, {1}. Respond in JSON',
TO_FILE('@myimages', img_path), prompt) as image_result)
FROM image_table;
Notas de uso para o processamento de imagens¶
Para processar várias imagens, especifique um objeto de prompt na chamada de função que define um modelo de prompt e os arquivos de imagem associados. Você pode usar a função Função PROMPT para criar esse objeto. O modelo de prompt pode conter espaços reservados numerados (
{0}
,{1}
etc.) que correspondem às imagens no objeto prompt.Somente texto e imagens são suportados. Não há suporte para arquivos de vídeo e áudio.
Formatos de imagem suportados:
.jpg
.jpeg
.png
.gif
.webp
Os modelos
pixtral
ellama4
também oferecem suporte a.bmp
.
O tamanho máximo da imagem é 10 MB para a maioria dos modelos e 3,75 MB para os modelos
claude
. Os modelosclaude
não oferecem suporte a imagens com resoluções acima de 8000x8000.O estágio que contém as imagens deve ter a criptografia do lado do servidor ativada. Não há suporte para estágios criptografados no lado do cliente.
A função não é compatível com políticas de rede personalizadas.
Os nomes dos estágios não diferenciam maiúsculas de minúsculas; os caminhos diferenciam maiúsculas de minúsculas.