Categories:

Fonctions de données semi-structurées et structurées (Array/Object)

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

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>, ...)
}

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.

  • It is an error to use a placeholder in the template string that does not have a corresponding expression, but it is not an error to provide expressions that are not used in the template string.

Exemples

Utilisation de base

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

Sortie :

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

Use with Cortex AI_FILTER

WITH reviews AS (
    SELECT 'Wow... Loved this place.' AS review, 5 AS rating
    UNION ALL
    SELECT 'Crust is not good.', 2 AS rating
)
SELECT * FROM reviews
WHERE AI_FILTER(PROMPT('The reviewer enjoyed the restaurant: {0}, Rating: {1}', review, rating));

A utiliser avec Cortex COMPLETE et une colonne FILE

AI_COMPLETE('claude-4-sonnet',
    PROMPT('Classify the input image {0} in no more than 2 words. Respond in JSON', img_file)) AS image_classification
FROM image_table;

Voir AI_COMPLETE (Objet de prompt) pour plus d’exemples.