Fonction PROMPT

La fonction PROMPT construit une structure OBJECT contenant une chaîne de modèles et une liste d’arguments. Cet objet est utile pour mettre en forme dynamiquement des messages, construire des prompts structurés ou stocker des données formatées en vue d’un traitement ultérieur, par exemple par les fonctions de Cortex AI.

Syntaxe

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

Arguments

Obligatoire :

template_string

Une chaîne contenant des caractères génériques numérotés tels que {0} où le nombre est au moins égal à 0 et inférieur au nombre d’expressions spécifié. La première expression est remplacée par {0}, la seconde par {1}, et ainsi de suite.

expr_1 [ , expr_2, ... ]

Expressions dont les valeurs seront éventuellement substituées dans la chaîne du modèle à la place des espaces réservés numérotés. Il peut s’agir de noms de colonnes ou d’autres expressions. Les valeurs peuvent être de n’importe quel type compatible avec une chaîne (par exemple, VARCHAR, NUMBER, etc.) ou FILE.

Renvoie

Un site SQL OBJECT avec la structure suivante :

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

Le tableau args contient la valeur des expressions spécifiées dans l’appel de la fonction PROMPT.

Notes sur l’utilisation

  • PROMPT n’effectue aucun formatage de chaîne lui-même. Il est destiné à construire un objet qui sera consommé par les fonctions de Cortex AI.

  • L’utilisation, dans la chaîne du modèle, d’un espace réservé qui n’a pas d’expression correspondante est une erreur, mais l’existence d’expressions qui ne sont pas utilisées dans la chaîne du modèle n’est pas une erreur.

Exemples

Utilisation de base

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

Sortie :

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

A utiliser avec Cortex COMPLETE et une colonne 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

Voir COMPLETE (SNOWFLAKE.CORTEX) (multimodal) pour plus d’exemples.