カテゴリ:

文字列とバイナリ関数 (大規模言語モデル)

AI_COMPLETE (プロンプトオブジェクト)

注釈

AI_COMPLETE は COMPLETE (SNOWFLAKE.CORTEX) の更新されたバージョンです。最新の関数については、 AI_COMPLETE を使用してください。

プロンプトオブジェクトに対する応答(補完)を生成します。プロンプトオブジェクトは、テキストまたは画像データを含む1つ以上の列を参照します。

構文

この関数は、位置引数または名前付き引数の構文で使用することができます。

AI_COMPLETE(
    <model>, <prompt> [ , <model_parameters> ] )
Copy

引数

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

ディレクトリやテーブルからの画像のバッチ処理

複数の画像をバッチ処理し、それぞれに同じ操作を実行する場合は、画像ファイルを同じステージに保存します。テーブルの各行に AI_COMPLETE 関数を適用します。

注釈

ステージのファイルのパスを取得するには、 ディレクトリテーブル が必要です。

まず、ディレクトリから画像の場所を取得してテーブルを作成し、 FILE オブジェクトに変換し、テーブルの列に結果の FILE オブジェクトを格納します。次のように SQL を使用します。

CREATE TABLE image_table AS
    (SELECT TO_FILE('@myimages', RELATIVE_PATH) AS img FROM DIRECTORY(@myimages));
Copy

次に、 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;
Copy

応答:

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

このように、ステージのディレクトリから直接処理される画像を取得することもできます。

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

テーブル内で画像とプロンプトを提供

テーブル内で各画像に対して異なる操作を実行するには、テーブル内の画像とそれに対応するプロンプトを提供します。以下の例では、 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;
Copy

画像処理の使用上の注意

  • 複数の画像を処理するには、プロンプトテンプレートと関連する画像ファイルを定義する関数呼び出しでプロンプトオブジェクトを指定します。このオブジェクトを作成するには、 PROMPT 関数 関数を使用します。プロンプトテンプレートには、プロンプトオブジェクトの画像に対応する番号付きプレースホルダー({0}{1} など)を含めることができます。

  • テキストと画像のみ対応しています。ビデオおよびオーディオファイルには対応していません。

  • サポートされている画像形式

    • .jpg

    • .jpeg

    • .png

    • .gif

    • .webp

    • pixtralllama4 モデルは .bmp もサポートしています。

  • 最大画像サイズは、ほとんどのモデルで10 MB、 claude モデルで3.75 MB です。 claude モデルは、8000x8000を超える解像度の画像をサポートしていません。

  • 画像を含むステージは、サーバー側の暗号化が有効になっている必要があります。クライアント側の暗号化ステージはサポートされていません。

  • この関数はカスタムネットワークポリシーをサポートしていません。

  • ステージ名は大文字と小文字を区別しません。パスは大文字と小文字を区別します。