Função PROMPT

A função PROMPT constrói um OBJECT estruturado que contém uma cadeia de caracteres de modelo e uma lista de argumentos. Esse objeto é útil para formatar mensagens dinamicamente, criar prompts estruturados ou armazenar dados formatados para processamento posterior, como pelas funções do Cortex AI.

Sintaxe

SELECT PROMPT('<template_string>', <expr_1> [ , <expr_2>, ... ] )
    FROM <table>;
Copy

Argumentos

Obrigatório:

template_string

Uma cadeia de caracteres que contém espaços reservados numerados, como {0}, em que o número é pelo menos 0 e menor que o número de expressões especificadas. A primeira expressão é substituída por {0}, a segunda por {1}, e assim por diante.

expr_1 [ , expr_2, ... ]

Expressões cujos valores serão eventualmente substituídos na cadeia de caracteres de modelo no lugar dos espaços reservados numerados. Podem ser nomes de colunas ou outras expressões. Os valores podem ser de qualquer tipo compatível com uma cadeia de caracteres (por exemplo, VARCHAR, NUMBER etc.) ou FILE.

Retornos

Um SQL OBJECT com a seguinte estrutura:

{
  'template': '<template_string>',
  'args': ARRAY(<value_1>, <value_2>, ...)
}
Copy

A matriz args contém o valor das expressões especificadas na chamada de função PROMPT.

Notas de uso

  • PROMPT não executa nenhuma formatação de cadeia de caracteres. O objetivo é construir um objeto a ser consumido pelas funções do Cortex AI.

  • É um erro usar um espaço reservado na cadeia de caracteres de modelo que não tenha uma expressão correspondente, mas não é um erro ter expressões que não são usadas na cadeia de caracteres de modelo.

Exemplos

Uso básico

SELECT PROMPT('Hello, {0}! Today is {1}.', 'Alice', 'Monday');
Copy

Saída:

{
    'template': 'Hello, {0}! Today is {1}.',
    'args': ['Alice', 'Monday']
}

Uso com o Cortex COMPLETE e uma coluna FILE

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;
Copy

Consulte COMPLETE (SNOWFLAKE.CORTEX) (multimodal) para obter mais exemplos.