- カテゴリ:
文字列とバイナリ関数 (大規模言語モデル)
AI_COMPLETE (プロンプトオブジェクト)¶
注釈
AI_COMPLETE は COMPLETE (SNOWFLAKE.CORTEX) の更新されたバージョンです。最新の関数については、 AI_COMPLETE を使用してください。
プロンプトオブジェクトに対する応答(補完)を生成します。プロンプトオブジェクトは、テキストまたは画像データを含む1つ以上の列を参照します。
構文¶
この関数は、位置引数または名前付き引数の構文で使用することができます。
AI_COMPLETE(
<model>, <prompt> [ , <model_parameters> ] )
引数¶
model
使用するモデルを指定する文字列。テキストのみの入力には、以下のモデルのいずれかを使用できます。
claude-4-opus
claude-4-sonnet
claude-3-7-sonnet
claude-3-5-sonnet
deepseek-r1
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
llama3.3-70b
llama4-maverick
llama4-scout
mistral-large
mistral-large2
mistral-7b
mixtral-8x7b
openai-gpt4.1
openai-o4-mini
reka-core
reka-flash
snowflake-arctic
snowflake-llama-3.1-405b
snowflake-llama-3.3-70b
- 画像入力には、以下のいずれかのモデルを使用できます。
claude-4-opus
claude-4-sonnet
claude-3-7-sonnet
claude-3-5-sonnet
llama-4-maverick
llama-4-scout
pixtral-large
サポートされるモデルでは、 コスト が異なる可能性があります。
prompt
テキスト、画像、またはその両方を含む プロンプト オブジェクト
モデルのハイパーパラメーターに影響を与える以下のオプションを含む、または含まない model_parameters
オブジェクト。 LLM設定 をご参照ください。
temperature
: 言語モデルの出力のランダム性を制御する0から1まで(各値を含む)の値。温度が高いほど(例: 0.7)出力はより多様でランダムになり、温度が低いほど(例: 0.2)、出力はより決定論的で焦点が絞られます。デフォルト: 0
top_p
: 言語モデルのランダム性と多様性を制御する0から1まで(各値を含む)の値。通常、temperature
の代替として使用されます。相違は、top_p
がモデルにより出力される可能性のあるトークンのセットを制限するのに対して、temperature
は各ステップでどのトークンが選択されるのかに影響を及ぼすという点です。デフォルト: 0
max_tokens
: 応答に含まれる出力トークンの最大数を設定します。値が小さいと、応答が切り詰められることがあります。デフォルト値: 4096 最大許容値: 8192
guardrails
: Cortex Guard を使用して、言語モデルから潜在的に安全ではない、有害な応答をフィルターします。TRUE
またはFALSE
のいずれか。デフォルト値はFALSE
です。
例¶
複数の画像を入力として渡す¶
次の例では、 AI_COMPLETE 関数の入力として2つの画像を渡し、両方とも猫の写真かどうかを尋ねて比較しています。
SELECT AI_COMPLETE('claude-3-5-sonnet',
PROMPT('Are both image {0} and image {1} pictures of cats?',
TO_FILE('@myimages', 'sleepingcat.png'), TO_FILE('@myimages', 'jumpingcat.png')) AS image_classification
FROM image_table;
ディレクトリやテーブルからの画像のバッチ処理¶
複数の画像をバッチ処理し、それぞれに同じ操作を実行する場合は、画像ファイルを同じステージに保存します。テーブルの各行に AI_COMPLETE 関数を適用します。
注釈
ステージのファイルのパスを取得するには、 ディレクトリテーブル が必要です。
まず、ディレクトリから画像の場所を取得してテーブルを作成し、 FILE オブジェクトに変換し、テーブルの列に結果の FILE オブジェクトを格納します。次のように SQL を使用します。
CREATE TABLE image_table AS
(SELECT TO_FILE('@myimages', RELATIVE_PATH) AS img FROM DIRECTORY(@myimages));
次に、 FILE オブジェクトを含む列に AI_COMPLETE 関数を適用します。次の例は、テーブル内の各画像を分類しています。
SELECT AI_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;
応答:
{ "classification": "Inflation Rates" }
{ "classification": "beverage refrigerator" }
{ "classification": "Space Needle" }
{ "classification": "Modern Kitchen" }
{ "classification": "Pie Chart" }
{ "classification": "Economic Graph" }
{ "classification": "Persian Cat" }
{ "classification": "Labrador Retriever" }
{ "classification": "Jedi Cat" }
{ "classification": "Sleeping cat" }
{ "classification": "Persian Cat" }
{ "classification": "Garden Costume" }
{ "classification": "Floral Fashion" }
画像へのパスを持つテーブルがすでにある場合は、 TO_FILE 関数 を使って、クエリ内で FILE オブジェクトを構築することができます。
SELECT AI_COMPLETE('claude-3-5-sonnet',
PROMPT('Classify the input image {0} in no more than 2 words. Respond in JSON',
TO_FILE('@myimages', img_path)) AS image_classification
FROM image_table;
このように、ステージのディレクトリから直接処理される画像を取得することもできます。
SELECT AI_COMPLETE('claude-3-5-sonnet',
PROMPT('Classify the input image {0} in no more than 2 words. Respond in JSON',
TO_FILE('@myimages', RELATIVE_PATH))) as image_classification
FROM DIRECTORY(@myimages);
テーブル内で画像とプロンプトを提供¶
テーブル内で各画像に対して異なる操作を実行するには、テーブル内の画像とそれに対応するプロンプトを提供します。以下の例では、 img_path
列に各画像のステージパスが、 prompt
列にプロンプトが、それぞれテーブルに含まれています。
AI_COMPLETE('claude-3-5-sonnet',
PROMPT('Given the input image {0}, {1}. Respond in JSON',
TO_FILE('@myimages', img_path), prompt) as image_result)
FROM image_table;
画像処理の使用上の注意¶
複数の画像を処理するには、プロンプトテンプレートと関連する画像ファイルを定義する関数呼び出しでプロンプトオブジェクトを指定します。このオブジェクトを作成するには、 PROMPT 関数 関数を使用します。プロンプトテンプレートには、プロンプトオブジェクトの画像に対応する番号付きプレースホルダー(
{0}
、{1}
など)を含めることができます。テキストと画像のみ対応しています。ビデオおよびオーディオファイルには対応していません。
サポートされている画像形式
.jpg
.jpeg
.png
.gif
.webp
pixtral
とllama4
モデルは.bmp
もサポートしています。
最大画像サイズは、ほとんどのモデルで10 MB、
claude
モデルで3.75 MB です。claude
モデルは、8000x8000を超える解像度の画像をサポートしていません。画像を含むステージは、サーバー側の暗号化が有効になっている必要があります。クライアント側の暗号化ステージはサポートされていません。
この関数はカスタムネットワークポリシーをサポートしていません。
ステージ名は大文字と小文字を区別しません。パスは大文字と小文字を区別します。