カテゴリ:

:doc:`/sql-reference/functions-string`(AI 関数)

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

注釈

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

プロンプトオブジェクトの応答(完了)を生成します。プロンプトには:doc:`FILEオブジェクト</sql-reference/functions/to_file>`を含めることができ、オブジェクトには画像やドキュメントが含まれる場合があります。

構文

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

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

引数

model

使用するモデルを指定する文字列。テキストのみの入力には、以下のモデルのいずれかを使用できます。

  • claude-4-opus

  • claude-4-sonnet

  • claude-3-7-sonnet

  • claude-3-5-sonnet

  • deepseek-r1

  • llama3-8b

  • llama3-70b

  • llama3.1-8b

  • llama3.1-70b

  • llama3.1-405b

  • llama3.3-70b

  • llama4-maverick

  • llama4-scout

  • mistral-large

  • mistral-large2

  • mistral-7b

  • mixtral-8x7b

  • openai-gpt-4.1

  • openai-o4-mini

  • snowflake-arctic

  • snowflake-llama-3.1-405b

  • snowflake-llama-3.3-70b

画像入力には、以下のいずれかのモデルを使用できます。

  • claude-4-opus

  • claude-4-sonnet

  • claude-3-7-sonnet

  • claude-haiku-4-5

  • claude-sonnet-4-5

  • claude-opus-4-5

  • claude-sonnet-4-6

  • claude-opus-4-6

  • llama4-maverick

  • llama4-scout

  • pixtral-large

  • openai-o4-mini

  • openai-gpt-4.1

  • openai-gpt-5

  • openai-gpt-5-chat

  • openai-gpt-5-mini

  • openai-gpt-5-nano

  • openai-gpt-5.1

  • openai-gpt-5.2

  • gemini-2.5-flash

  • gemini-2.5-flash-lite

  • gemini-3-pro

ドキュメント入力の場合は、以下のモデルのいずれかを使用できます。

  • gemini-3-pro

  • claude-4-opus

  • claude-4-sonnet

  • claude-3-7-sonnet

  • claude-haiku-4-5

  • claude-sonnet-4-5

  • claude-opus-4-5

サポートされるモデルでは、 コスト が異なる可能性があります。

prompt

テキストを含む:doc:`プロンプト</sql-reference/functions/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 を使用している場合は、JSON スキーマを指定し応答として構造化出力を取得することはできません。

応答として構造化出力を取得するには、AI_COMPLETE (単一文字列) を指定して response_format パラメーターを使用します。構造化出力の使用の詳細については、AI_COMPLETE 構造化出力 をご参照ください。

複数の画像を入力として渡す

次の例では、 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;

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

複数の画像をバッチ処理し、それぞれに同じ操作を実行する場合は、画像ファイルを同じステージに保存します。テーブルの各行に 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;

画像処理の使用上の注意

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

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

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

    • .jpg

    • .jpeg

    • .png

    • .gif

    • .webp

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

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

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

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

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

ドキュメント処理に関する使用上の注意

  • 複数のドキュメントを処理するには、関数呼び出しで、プロンプトテンプレートと関連するドキュメントファイルを定義するプロンプトオブジェクトを指定します。/sql-reference/functions/prompt`関数を使用してこのオブジェクトを作成できます。プロンプトテンプレートには、プロンプトオブジェクトのドキュメントに対応する番号付きのプレースホルダー(`{0}{1}`など)を含めることができます。プロンプトオブジェクト内のドキュメントファイルを指定するには、:doc:/sql-reference/functions/to_file`関数を使用します。

  • テキストとドキュメントのみがサポートされています。ビデオおよびオーディオファイルには対応していません。

  • すべてのモデルが、.txt.md、および``.pdf``形式をサポートしています。Claudeモデルは、.txt.md.pdf.doc.docx.xls.xlsx.csv、および``.xhtml``もサポートしています。

  • Claudeモデルの最大ドキュメントサイズは4.5MBです。Gemini 3 Proの最大ドキュメントサイズは10MBです。

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

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