- Categorias:
Funções de cadeia de caracteres e binários (Large Language Model)
COMPLETE (SNOWFLAKE.CORTEX) (multimodal)¶
Importante
Essa função está sendo descontinuada. Para obter informações sobre a função atualizada, consulte AI_COMPLETE. A Snowflake ainda mantém essa função, mas use a função atualizada para obter a melhor experiência.
Com uma imagem e um prompt, gera uma resposta (conclusão) usando um modelo de linguagem. Essa variante de função oferece suporte a modelos de imagem juntamente com modelos de texto e processa imagens armazenadas em um estágio interno do Snowflake ou em um estágio externo. COMPLETE pode ser usado para processar uma única imagem, várias imagens em lote, aplicando o mesmo prompt ou um prompt diferente a cada imagem, ou várias imagens em uma única operação (por exemplo, comparação).
Sintaxe¶
Use uma das seguintes opções:
SNOWFLAKE.CORTEX.COMPLETE(
'<model>', '<prompt>', <file_object>)
FROM <table>
SNOWFLAKE.CORTEX.COMPLETE(
'<model>', <prompt_object> )
FROM <table>
Argumentos¶
model
Uma cadeia de caracteres especificando o modelo a ser usado. Especifique um dos seguintes modelos:
claude-3-5-sonnet
pixtral-large
Os modelos suportados podem ter custos e janelas de contexto diferentes. Novos modelos podem ser adicionados de tempos em tempos.
prompt
Uma cadeia de caracteres contendo uma pergunta sobre a imagem e, opcionalmente, especificando um formato de saída, como JSON. Isso ou o argumento
prompt_object
é necessário.prompt_object
Um SQL OBJECT contendo um prompt de cadeia de caracteres com espaços reservados numerados (
{0}
,{1}
, e assim por diante) e um ou mais textos ou valores FILE que são inseridos no prompt. A função Função PROMPT é uma maneira conveniente de criar um objeto com o layout necessário. Esse argumento ouprompt
é necessário.file_object
Um objeto FILE que contém um arquivo de imagem a ser processado. Use a função TO_FILE para criar objetos FILE a partir de um caminho de estágio. Necessário ao usar um prompt de cadeia de caracteres.
FROM table
Uma tabela opcional contendo caminhos de imagem e um prompt opcional para cada imagem, permitindo que as imagens sejam processadas em lote em uma única chamada para COMPLETE.
Retornos¶
Uma cadeia de caracteres que contém a resposta do modelo de linguagem.
Notas de uso¶
Para processar várias imagens, o prompt deve ser um objeto (normalmente criado usando a função PROMPT) que especifica um modelo de prompt e os arquivos a serem processados.
Somente texto e imagens são suportados. Não há suporte para arquivos de vídeo e áudio.
Imagens com extensões de nome de arquivo
.jpg
,.jpeg
,.png
,.gif
e.webp
são suportadas.pixtral-large
também oferece suporte a.bmp
.O tamanho máximo da imagem é 10 MB para
pixtral-large
e 3,75 MB paraclaude-3-5-sonnet
. Além disso, oclaude-3-5-sonnet
não oferece suporte a imagens com resolução superior a 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, mas os caminhos sim.
Exemplos¶
Os exemplos a seguir demonstram os recursos básicos da função COMPLETE com imagens.
Resposta visual a perguntas¶
Um gráfico de taxas de inflação é usado para responder a uma pergunta sobre os dados.

Comparação entre as taxas de inflação em 2023 e em 2024 (Statista)¶
SELECT SNOWFLAKE.CORTEX.COMPLETE('claude-3-5-sonnet',
'Which country will observe the largest inflation change in 2024 compared to 2023?',
TO_FILE('@myimages', 'highest-inflation.png'));
Resposta:
Looking at the data, Venezuela will experience the largest change in inflation rates between 2023 and 2024.
The inflation rate in Venezuela is projected to decrease significantly from 337.46% in 2023 to 99.98% in 2024,
representing a reduction of approximately 237.48 percentage points. This is the most dramatic change among
all countries shown in the chart, even though Zimbabwe has higher absolute inflation rates.
Classificação de imagens¶
Este exemplo classifica o ponto de referência identificado em uma única imagem.

SELECT SNOWFLAKE.CORTEX.COMPLETE('claude-3-5-sonnet',
'Classify the landmark identified in this image. Respond in JSON only with the landmark name.',
TO_FILE('@myimages', 'Seattle.jpg'));
Resposta:
{"landmark": "Space Needle"}
Extração de entidades de uma imagem¶
Este exemplo extrai as entidades (objetos) de uma imagem e retorna os resultados no formato JSON.

SELECT SNOWFLAKE.CORTEX.COMPLETE('claude-3-5-sonnet',
'Extract the kitchen appliances identified in this image. Respond in JSON only with the identified appliances.',
TO_FILE('@myimages', 'kitchen.png'));
Resposta:
{
"appliances": [ "microwave","electric stove","oven","refrigerator" ]
}
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 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 COMPLETE à coluna que contém os objetos FILE. O exemplo a seguir classifica cada imagem na tabela:
SELECT SNOWFLAKE.CORTEX.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 SNOWFLAKE.CORTEX.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 SNOWFLAKE.CORTEX.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
.
SNOWFLAKE.CORTEX.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;
Avisos legais¶
Consulte AI e ML Snowflake.