PROMPT 関数

PROMPT 関数は、テンプレート文字列と引数のリストを含む構造化 OBJECT を構築します。このオブジェクトは、メッセージを動的にフォーマットしたり、構造化されたプロンプトを構築したり、Cortex AI 関数などでさらに処理するためにフォーマットされたデータを保存したりするのに便利です。

構文

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

引数

必須:

template_string

{0} のような番号付きプレースホルダーを含む文字列。番号は0以上、指定した式の数未満。最初の式は {0} に代入され、2番目の式は {1} に代入される、などです。

expr_1 [ , expr_2, ... ]

値が数値で指定されたプレースホルダーに代わって、テンプレート文字列内に最終的に挿入される式。これらは列名や他の式にすることができます。値は文字列と互換性のあるタイプ(例えば、 VARCHAR、 NUMBER など)、または FILE にできます。

戻り値

以下のような構造を持つ SQL OBJECT:

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

args 配列には、 PROMPT 関数呼び出しで指定された式の値が含まれます。

使用上の注意

  • PROMPT は単独では文字列のフォーマット処理を行いません。これは、Cortex AI 関数で使用されるオブジェクトを構築することを目的としています。

  • 対応する式を持たないプレースホルダーを文字列で使用することはエラーですが、文字列で使用されていない式があってもエラーではありません。

基本的な使用

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

出力:

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

Cortex COMPLETE と 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

その他の例については、 COMPLETE (SNOWFLAKE.CORTEX)(マルチモーダル) をご参照ください。