- Categorias:
Funções de cadeia de caracteres e binários (Large Language Model)
TRY_COMPLETE (SNOWFLAKE.CORTEX)¶
Executa a mesma operação que a função COMPLETE, mas retorna NULL em vez de gerar um erro quando a operação não pode ser executada. Para condições de erro que retornam NULL, consulte Condições de erro.
Sintaxe¶
SNOWFLAKE.CORTEX.TRY_COMPLETE( <model>, <prompt_or_history> [ , <options> ] )
Argumentos¶
Obrigatório:
model
Uma cadeia de caracteres especificando o modelo a ser usado. Especifique um dos seguintes valores:
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
mistral-large
mistral-large2
mistral-7b
mixtral-8x7b
reka-core
reka-flash
snowflake-arctic
Os modelos suportados podem ter custos diferentes.
prompt_or_history
O histórico de prompt ou conversa a ser usado para gerar uma conclusão.
Se
options
não estiver presente, o prompt fornecido deverá ser uma cadeia de caracteres.Se
options
estiver presente, o argumento deverá ser uma matriz de objetos representando uma conversa em ordem cronológica. Cada objeto deve conter uma chaverole
e uma chavecontent
. O valorcontent
é um prompt ou uma resposta, dependendo da função. A função deve ser uma das seguintes opções.
Valor
role
Valor
content
'system'
Um prompt inicial em inglês simples para o modelo de linguagem para fornecer informações básicas e instruções para um estilo de resposta. Por exemplo, “Responda como um pirata”. O modelo não gera uma resposta a um prompt do sistema. Somente um prompt do sistema pode ser fornecido e, se estiver presente, deve ser o primeiro na matriz.
'user'
Um prompt fornecido pelo usuário. Deve seguir o prompt do sistema (se houver) ou uma resposta do assistente.
'assistant'
Uma resposta fornecida anteriormente pelo modelo de linguagem. Deve seguir um prompt do usuário. As respostas anteriores podem ser usadas para fornecer uma experiência de conversação com estado; consulte Notas de uso.
Opcional:
options
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
guardrails
: Filtra respostas potencialmente inseguras e prejudiciais de um modelo de linguagem. Verdadeiro ou falso.Padrão: falso
A especificação do argumento
options
, mesmo que seja um objeto vazio ({}
), afeta a forma como o argumentoprompt
é interpretado e como a resposta é formatada.
Retornos¶
Quando o argumento options
não é especificado, retorna uma cadeia de caracteres.
Quando o argumento options
é fornecido, retorna uma representação de uma cadeia de caracteres de um objeto JSON com 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.
Requisitos de controle de acesso¶
Os usuários devem usar uma função que tenha a função do banco de dados SNOWFLAKE.CORTEX_USER. Consulte Privilégios obrigatórios para obter mais informações sobre esse privilégio.
Notas de uso¶
TRY_COMPLETE não retém nenhum estado de uma chamada para a próxima. Para usar a função TRY_COMPLETE para fornecer uma experiência de conversação com estado, passe todos os prompts de usuário e respostas de modelo anteriores na conversa como parte da matriz prompt_or_history
(consulte Templates para modelos de bate-papo). Tenha em mente que o número de tokens processados aumenta a cada “rodada” e os custos aumentam proporcionalmente.
Exemplos¶
Os exemplos a seguir usam a função TRY_COMPLETE em vários casos de uso.
Como gerar uma única resposta¶
Para gerar uma resposta única:
SELECT SNOWFLAKE.CORTEX.TRY_COMPLETE('snowflake-arctic', 'What are large language models?');
Controle de temperatura e tokens¶
Este exemplo ilustra o uso do argumento options
da função para controlar os hiperparâmetros de inferência em uma única resposta. Observe que nesta forma da função, o prompt deve ser fornecido como uma matriz, pois este formulário suporta vários prompts e respostas.
SELECT SNOWFLAKE.CORTEX.TRY_COMPLETE(
'llama2-70b-chat',
[
{
'role': 'user',
'content': 'how does a snowflake get its unique pattern?'
}
],
{
'temperature': 0.7,
'max_tokens': 10
}
);
A resposta é um objeto JSON contendo a mensagem do modelo de linguagem e outras informações. Observe que a resposta é truncada conforme instruído no argumento options
.
{
"choices": [
{
"messages": " The unique pattern on a snowflake is"
}
],
"created": 1708536426,
"model": "llama2-70b-chat",
"usage": {
"completion_tokens": 10,
"prompt_tokens": 22,
"total_tokens": 32
}
}
Para exemplos adicionais, consulte a referência COMPLETE (SNOWFLAKE.CORTEX).
Avisos legais¶
Consulte AI e ML Snowflake.