Cortex REST API¶
CortexRESTAPIを使用すると、好みのエンドポイントまたはSDKを経由して、Anthropic、OpenAI、Meta、Mistralなどの主要なフロンティアモデルにアクセスできます。すべての推論はSnowflakeの境界内で実行されるため、データは常にセキュリティ保護され、ガバナンスの境界内に維持されます。開始方法については、以下を参照してください。
APIを選択¶
CortexRESTAPIは、2つの業界標準のAPI仕様をサポートしています。スタックに最適なものを選択してください。
Chat Completions API |
Messages API |
|
|---|---|---|
互換性 |
||
エンドポイント |
|
|
対応モデル |
すべてのモデル(OpenAI、Claude、Llama、Mistral、DeepSeek、Snowflake) |
Claudeモデルのみ |
SDK サポート |
OpenAIPythonおよびJavaScriptSDKs |
Anthropic PythonSDK |
最適な用途 |
ほとんどのユースケース、マルチモデルの柔軟性 |
既存のAnthropic統合、AnthropicAPIパリティ |
両方のAPIsは、同じ認証、モデルカタログ、およびレート制限を共有します。唯一の違いは、リクエスト/応答の形式と、各エンドポイントがサポートするモデルです。価格については、`Snowflakeサービス利用表<https://www.snowflake.com/legal-files/CreditConsumptionTable.pdf>`_を参照してください。
クイックスタート¶
前提条件¶
始める前に、以下が必要です。
**SnowflakeアカウントURL**(例:
https://<account-identifier>.snowflakecomputing.com)。認証用の**Snowflake Programmaticアクセストークン**(PAT)。プログラム アクセス トークンの生成 をご参照ください。
リクエストで使用する**モデル名**。利用可能なモデルについては、:ref:`label-cortex_complete_llm_model_availability`を参照してください。
Chat Completionsクイックスタート¶
Chat CompletionsAPIは、OpenAI仕様に従います。OpenAISDKを直接使用できます。
前述の例では、次を置き換えます。
<account-identifier>:使用するSnowflakeアカウント識別子。<SNOWFLAKE_PAT>:Snowflake Programmaticアクセストークン(PAT)。model:モデル名。サポートされているモデルについては、:ref:`label-cortex_complete_llm_model_availability`を参照してください。
MessagesAPIクイックスタート¶
MessagesAPIはAnthropic仕様に従い、Claudeモデルのみをサポートします。
AnthropicSDKはデフォルトで``x-api-key``を介して認証情報を送信しますが、Snowflakeは``Bearer``トークンを想定しています。``httpx``クライアントを使用して、正しい認証ヘッダーを設定します。
Pythonのように、``defaultHeaders``を介してデフォルトの認証ヘッダーを``Bearer``トークンで上書きします。
前述の例では、次を置き換えます。
<account-identifier>:使用するSnowflakeアカウント識別子。<SNOWFLAKE_PAT>:Snowflake Programmaticアクセストークン(PAT)。model:Claudeモデル名。サポートされているモデルについては、:ref:`label-cortex_complete_llm_model_availability`を参照してください。
認証の設定¶
Cortex REST API への認証コードには、 Snowflakeでの Snowflake REST APIs 認証 で説明されている方法を使用できます。
トークン(例:JSONウェブトークン(JWT)、OAuthトークン、または:doc:Programmaticアクセストークン</user-guide/programmatic-access-tokens>)を含めるように``Authorization``ヘッダーを設定します。
Tip
Cortex REST API リクエスト専用のユーザーを作ることを検討します。
モデルの可用性¶
以下のテーブルは、各地域のCortexREST APIで利用可能なモデルを示しています。
モデル
|
クロスクラウド
(全地域)
|
AWS グローバル
(リージョン横断)
|
AWS に US
(リージョン横断)
|
AWS に EU
(リージョン横断)
|
AWS に APJ
(リージョン横断)
|
Azureグローバル
(リージョン横断)
|
Azure US
(リージョン横断)
|
Azure EU
(リージョン横断)
|
|---|---|---|---|---|---|---|---|---|
|
✔ |
✔ |
✔ |
✔ |
||||
|
✔ |
✔ |
||||||
|
✔ |
✔ |
✔ |
✔ |
||||
|
✔ |
✔ |
||||||
|
✔ |
✔ |
✔ |
|||||
|
✔ |
✔ |
✔ |
✔ |
||||
|
✔ |
✔ |
||||||
|
✔ |
✔ |
||||||
|
✔ |
✔ |
||||||
|
✔ |
✔ |
||||||
|
* |
* |
* |
* |
||||
|
* |
* |
||||||
|
* |
* |
||||||
|
✔ |
|||||||
|
* |
|||||||
|
✔ |
✔ |
||||||
|
✔ |
✔ |
||||||
|
✔ |
✔ |
||||||
|
✔ |
✔ |
||||||
|
✔ |
✔ |
||||||
|
✔ |
✔ |
||||||
|
✔ |
✔ |
||||||
|
✔ |
✔ |
||||||
|
✔ |
✔ |
モデル
|
AWS US西部2
(オレゴン)
|
AWS US東部1
(N.バージニア)
|
Azure東部 US 2
(バージニア)
|
|---|---|---|---|
|
✔ |
✔ |
|
|
✔ |
||
|
✔ |
✔ |
✔ |
|
✔ |
✔ |
✔ |
|
✔ |
✔ |
✔ |
|
✔ |
||
|
✔ |
✔ |
✔ |
|
✔ |
✔ |
✔ |
|
✔ |
✔ |
✔ |
|
✔ |
モデル
|
AWSヨーロッパ中部1
(フランクフルト)
|
AWS ヨーロッパ西部1
(アイルランド)
|
Azure西ヨーロッパ
(オランダ)
|
|---|---|---|---|
|
✔ |
✔ |
|
|
✔ |
✔ |
✔ |
|
✔ |
✔ |
|
|
✔ |
✔ |
|
|
✔ |
✔ |
✔ |
モデル
|
AWS AP 南東部2
(シドニー)
|
AWS AP 北東部1
(東京)
|
|---|---|---|
|
✔ |
✔ |
|
✔ |
✔ |
|
✔ |
|
|
✔ |
|
|
✔ |
✔ |
* プレビュー機能またはモデルを示しています。プレビュー機能は実稼働ワークロードには適していません。
また、対応リージョンであれば、 微調整 モデルも使用できます。
機能¶
ストリーミング¶
両方のAPIsは、`サーバー送信イベント<https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events>`_を使用したストリーミング応答をサポートしています。
Chat Completionsストリーミング¶
MessagesAPIストリーミング¶
ツール呼び出し¶
ツール呼び出しにより、モデルは会話中に外部関数を呼び出すことができます。フローは以下のステップで機能します。
利用可能なツールのリストとともにリクエストを送信します。
モデルにより1つまたは複数のツールの呼び出しが決定され、ツール名と引数が返されます。
ユーザー側でツールを実行します。
ツールの結果を送り返すと、モデルにより最終的な応答が生成されます。
ツール呼び出しは、 OpenAI およびClaudeモデルでサポートされています。
Chat Completionsツール呼び出し¶
ステップ1 - ツールを含むリクエストを送信する
モデルは``tool_calls``配列で応答します。
ステップ2 - ツールを実行し、結果を送り返す
MessagesAPIツール呼び出し¶
ステップ1 - ツールを含むリクエストを送信する
モデルは``tool_use``コンテンツブロックで応答します。
ステップ2 - ツールを実行し、結果を送り返す
構造化出力¶
特定のスキーマに準拠した構造化JSON出力をリクエストできます。これは、Chat CompletionsAPIを介してOpenAIおよびClaudeモデルでサポートされています。MessagesAPIの場合は、``tool_use``パターンを使用して構造化出力を強制します。
Chat Completionsの構造化出力¶
モデルの出力を制約するには、JSONスキーマで``response_format``フィールドを使用します。
注釈
Claudeモデルは応答形式タイプとして``json_schema``のみをサポートします。OpenAIモデルは、`OpenAIAPIリファレンス<https://platform.openai.com/docs/api-reference/chat/create>`_に記載されている追加の応答形式タイプをサポートします。
MessagesAPI構造化出力¶
MessagesAPIには``response_format``フィールドがありません。その代わりに、希望する出力スキーマを持つツールを定義し、モデルにそれを使用するよう指示します。モデルの``tool_use``応答には、スキーマに一致する構造化JSONが含まれます。
画像入力¶
ビジョンをサポートするモデルのリクエストに画像を含めることができます。画像はbase64エンコード文字列として提供する必要があります。画像は会話ごとに20枚まで、最大リクエストサイズは20 MiB です。
画像入力は以下によりサポートされています。
Claudeモデル(``claude-3-7-sonnet``以降)
OpenAIモデル(
openai-gpt-4.1、openai-gpt-5、openai-gpt-5-chat、openai-gpt-5-mini、openai-gpt-5-nano)
Chat Completionsの画像入力¶
MessagesAPI画像入力¶
MessagesAPIは異なる画像形式を使用します。データURLの代わりに、type、media_type、および``data``フィールドを持つ``source``ブロックを使用します。
プロンプトキャッシング¶
プロンプトのキャッシュにより、リクエスト全体で以前に処理されたコンテキスト(大規模なシステムプロンプト、ドキュメント、会話履歴など)を再利用でき、レイテンシとコストが削減されます。
OpenAIモデル:キャッシュは**暗黙的**です。1,024+トークンのプロンプトは自動的にキャッシュされます。リクエストの変更は必要ありません。
Claudeモデル:キャッシュは**明示的**です。キャッシュするコンテンツブロックに``cache_control``ブレークポイントを追加します。**5分間のTTL**を持つ``ephemeral``キャッシュタイプのみがサポートされています。リクエストごとに最大4つのキャッシュブレークポイントを設定できます。
Chat Completionsプロンプトキャッシュ¶
Chat Completionsを介したClaudeモデルの場合、コンテンツブロックに``cache_control``を追加します。OpenAIモデルは自動的にキャッシュされ、このフィールドは必要ありません。
MessagesAPIプロンプトキャッシュ¶
システムまたはユーザーのコンテンツブロックで``cache_control``を使用します。5分間のTTLを持つ``ephemeral``キャッシュタイプのみがサポートされています。リクエストごとに最大4個のキャッシュブレークポイントを設定できます。
思考と推論¶
Chat Completionsの思考¶
Claudeモデルの場合は、reasoning``オブジェクトを使用します。OpenAI推論モデルの場合は、``reasoning_effort``フィールド(値:``minimal、low、medium、high)を使用します。
MessagesAPI思考¶
一部のClaudeモデルは**適応型思考**をサポートしており、タスクの複雑さに基づいてモデルが適用する推論の量を調整します。次のモデルは適応型思考をサポートしています。
claude-opus-4-6
MessagesAPIの場合は、``type: "adaptive"``で``thinking``パラメーターを使用して、適応型思考を有効にします。``output_config.effort``パラメーターは思考の深度を高レベルで制御し、以下の値を受け入れます。
エフォートレベル |
動作 |
|---|---|
|
思考の深度に制約はなく、常に思考する。Claude Opus 4.6のみ。 |
|
常に思考する。複雑なタスクに対し深い推論を提供する。 |
|
中程度の思考。非常に単純なクエリについては、思考をスキップする場合がある。 |
|
最小限の思考。スピードが極めて重要とされる単純なタスクについて思考をスキップする。 |
次の例は、適応型思考を有効にしてMessages API呼び出しを行う方法を示しています。
応答には、要約された思考と思考シグネチャを持つ思考ブロックが含まれます。推論コンテキストを維持するために、マルチターン会話でこれらのブロックを送り返します。
適応型思考のMessages APIサポートについて詳しくは、`Claude APIドキュメント --- 適応型思考<https://platform.claude.com/docs/en/build-with-claude/adaptive-thinking>`__を参照してください。
ベータ機能(Messages API)¶
Messages APIは、``anthropic-beta``ヘッダーを介してAnthropicベータ機能をサポートします。1つ以上のベータヘッダー値をコンマ区切りの文字列として渡します。
ベータヘッダー値 |
機能 |
|---|---|
|
トークン効率の良いツール |
|
インターリーブ型思考 |
|
最大128Kの出力トークンを有効にする |
|
Claude 4+モデルにおける生の思考のための開発者モード |
|
100万トークンコンテキストウィンドウ |
|
コンテキスト管理 |
|
思考のためのエフォートパラメーター |
|
ツール検索ツール |
|
ツールの使用例 |
次の例では、``claude-sonnet-4-6``を使用して100万トークンコンテキストウィンドウを有効にします。
コンマ区切りの文字列を渡すことで、複数のベータ機能を組み合わせることができます。
Chat Completions APIリファレンス¶
POST /api/v2/cortex/v1/chat/completions¶
指定されたモデルを使用してチャット補完を生成します。リクエストと応答の形式は、`OpenAI Chat Completions API仕様<https://platform.openai.com/docs/api-reference/chat/create>`_に従います。
必須ヘッダー¶
Authorization: Bearer tokenリクエストの承認。
token`はJSONウェブトークン(JWT)、OAuthトークン、または:doc:`プログラムによるアクセストークン</user-guide/programmatic-access-tokens>`です。詳細については、 :doc:/developer-guide/snowflake-rest-api/authentication` をご参照ください。Content-Type: application/jsonリクエストボディが JSON 形式であることを指定します。
任意のヘッダー¶
X-Snowflake-Authorization-Token-Type: type認可トークンのタイプを定義します。
X-Snowflake-Authorization-Token-Typeヘッダーを省略した場合、Snowflakeはトークンを調べてトークンのタイプを決定します。このヘッダーはオプションですが、このヘッダーを指定することもできます。ヘッダーは以下の値のいずれかにセットできます。
KEYPAIR_JWT(キーペア認証用)OAUTH( OAuthの場合)PROGRAMMATIC_ACCESS_TOKEN(プログラムアクセストークン 用)
Accept: application/json, text/event-stream応答に JSON (エラーケース)またはサーバー送信イベントが含まれることを指定します。
必須JSONフィールド¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
使用するモデル(:ref:`label-cortex_complete_llm_model_availability`を参照)。また、:samp:`{database}.{schema}.{model}`の形式で任意の:doc:`微調整済み</user-guide/snowflake-cortex/cortex-finetuning>`モデルの完全修飾名を使用することもできます。 |
|
array |
会話を表すメッセージオブジェクトの配列。各メッセージには``role``( |
一般的に使用されるオプションのJSONフィールド¶
フィールド |
型 |
デフォルト |
説明 |
|---|---|---|---|
|
integer |
4096 |
応答の最大トークン。理論上の最大値は131,072です。各モデルには独自の出力制限があります。 |
|
number |
モデルにより異なる |
ランダム性を制御する。0から2までの値。 |
|
number |
1.0 |
nucleusサンプリングによって多様性を制御する。 |
|
boolean |
false |
部分的な進行状況をサーバー送信イベントとしてストリームバックするかどうか。 |
|
array |
null |
モデルが呼び出すことができるツールのリスト。各ツールには``type: "function" |
|
文字列またはオブジェクト |
|
モデルがツールを選択する方法を制御する。オプション: |
|
object |
null |
出力形式を制約する。構造化出力には``{"type": "json_schema", "json_schema": {...}}``を使用する。 |
|
string |
null |
OpenAI推論モデル用。値: |
|
object |
null |
Claudeモデル用。思考を有効にするには、``reasoning.effort``または``reasoning.max_tokens``を設定する。 |
モデルファミリーごとにサポートされているフィールドの完全なリストについては、:ref:`詳細な互換性チャート<label-cortex_openai_sdk_compatibility>`を参照してください。
ステータスコード¶
- 200
OK リクエストは正常に完了しました。
- 400
invalid options object オプションの引数は無効な値です。
- 400
unknown model model_name 指定されたモデルは存在しません。
- 400
schema validation failed 応答スキーマ構造が正しくありません。
- 400
max tokens of count exceeded リクエストはモデルがサポートするトークンの最大数を超えました。
- 400
all requests were throttled by remote service リクエストはスロットルされました。後でもう一度お試しください。
- 402
budget exceeded モデルの消費予算を超えました。
- 403
Not Authorized アカウントが REST API で有効になっていないか、呼び出し元ユーザーの既定のロールが
snowflake.cortex_userデータベースロールを持っていません。- 429
too many requests 使用量のクォータを超えました。後でもう一度お試しください。
- 503
inference timed out リクエストに時間がかかりすぎました。
制限事項¶
未設定の場合、
max_completion_tokensのデフォルトは4096です。各モデルには、独自の出力トークンの制限があります。ツール呼び出しは、OpenAIおよびClaudeモデルでのみサポートされています。
オーディオはサポートされていません。
画像認識は、 OpenAI およびClaudeモデルのみサポートされています。画像は会話ごとに20枚まで、最大リクエストサイズは20 MiB です。
プロンプトキャッシュ用の短期キャッシュ制御ポイントは、Claudeモデルのみでサポートされています。OpenAI モデルは暗黙的なキャッシュをサポートしています。
Claudeモデルのみが、応答で推論の詳細を返す機能をサポートしています。
max_tokens``は非推奨です。代わりに ``max_completion_tokensを使用してください。エラーメッセージは、モデルプロバイダーではなく、Snowflakeによって生成されます。
詳細な互換性チャート¶
以下の表は、異なるSnowflakeホストモデルファミリーでChat Completions APIを使用する場合に、どのリクエストおよび応答フィールドがサポートされるかをまとめたものです。
フィールド |
OpenAI モデル |
Claudeモデル |
その他のモデル |
|---|---|---|---|
|
✔ サポート対象 |
✔ サポート対象 |
✔ サポート対象 |
|
サブフィールドを見る |
サブフィールドを見る |
サブフィールドを見る |
|
❌ エラー |
❌ は無視されました |
❌ は無視されました |
|
✔ サポート対象 |
✔ ユーザー/アシスタント/システムのみ |
✔ ユーザー/アシスタント/システムのみ |
|
✔ サポート対象 |
✔ サポート対象 |
✔ サポート対象 |
:code:`messages[].content[]`(配列) |
サブフィールドを見る |
サブフィールドを見る |
サブフィールドを見る |
|
✔ サポート対象 |
✔ サポート対象 |
✔ サポート対象 |
|
✔ サポート対象 |
✔ サポート対象 |
✔ サポート対象 |
|
✔ サポート対象 |
✔ サポート対象 |
❌ エラー |
|
❌ は無視されました |
✔ サポート対象(短期のみ) |
❌ は無視されました |
|
❌ エラー |
❌ エラー |
❌ は無視されました |
|
❌ エラー |
❌ は無視されました |
❌ は無視されました |
|
✔ サポート対象 |
❌ は無視されました |
❌ は無視されました |
|
✔ サポート対象(非推奨) |
❌ は無視されました |
❌ は無視されました |
|
✔ サポート対象 |
❌ は無視されました |
❌ は無視されました |
|
✔ サポート対象 |
❌ は無視されました |
❌ は無視されました |
|
✔ サポート対象 |
✔ サポート対象 |
❌ は無視されました |
|
✔ サポート対象 |
✔ |
❌ は無視されました |
|
❌ は無視されました |
✔ OpenRouter 形式 |
❌ は無視されました |
|
❌ エラー |
❌ は無視されました |
❌ は無視されました |
|
✔ サポート対象 |
❌ は無視されました |
❌ は無視されました |
|
✔ サポート対象 |
❌ は無視されました |
❌ は無視されました |
|
✔ サポート対象 |
❌ は無視されました |
❌ は無視されました |
|
❌ エラー(非推奨) |
❌ エラー(非推奨) |
❌ エラー(非推奨) |
|
✔ サポート対象(デフォルト4096、最大131072) |
✔ サポート対象(デフォルト4096、最大131072) |
✔ サポート対象(デフォルト4096、最大131072) |
|
❌ は無視されました |
❌ は無視されました |
❌ は無視されました |
|
❌ は無視されました |
❌ は無視されました |
❌ は無視されました |
|
✔ サポート対象 |
❌ は無視されました |
❌ は無視されました |
|
✔ サポート対象 |
❌ は無視されました |
❌ は無視されました |
|
✔ サポート対象 |
❌ は無視されました |
❌ は無視されました |
|
✔ サポート対象 |
❌ は無視されました |
❌ は無視されました |
|
✔ サポート対象 |
❌ は無視されました |
❌ は無視されました |
|
✔ サポート対象 |
❌ は無視されました( |
❌ は無視されました |
|
サブフィールドを見る |
サブフィールドを見る |
サブフィールドを見る |
|
✔ サポート対象( |
✔ は |
❌ は無視されました |
|
❌ は無視されました |
✔ サポート対象 |
❌ は無視されました |
|
✔ サポート対象 |
✔ |
❌ は無視されました |
|
❌ は無視されました |
❌ は無視されました |
❌ は無視されました |
|
❌ エラー |
❌ エラー |
❌ エラー |
|
✔ サポート対象 |
❌ は無視されました |
❌ は無視されました |
|
❌ エラー |
❌ エラー |
❌ エラー |
|
✔ サポート対象 |
✔ サポート対象 |
✔ サポート対象 |
|
サブフィールドを見る |
サブフィールドを見る |
サブフィールドを見る |
|
❌ は無視されました |
❌ は無視されました |
❌ は無視されました |
|
✔ サポート対象 |
✔ サポート対象 |
✔ サポート対象 |
|
✔ サポート対象 |
✔ サポート対象 |
✔ サポート対象 |
|
✔ サポート対象 |
✔ |
❌ は無視されました |
|
✔ サポート対象 |
✔ |
❌ エラー |
|
✔ サポート対象 |
❌ は無視されました |
❌ は無視されました |
|
✔ サポート対象 |
✔ サポート対象 |
✔ サポート対象 |
|
✔ サポート対象 |
❌ は無視されました |
❌ は無視されました |
|
❌ エラー |
❌ は無視されました |
❌ は無視されました |
フィールド |
OpenAI モデル |
Claudeモデル |
その他のモデル |
|---|---|---|---|
|
✔ サポート対象 |
✔ サポート対象 |
✔ サポート対象 |
|
✔ サポート対象 |
✔ サポート対象 |
✔ サポート対象 |
|
✔ サポート対象 |
✔ サポート対象 |
✔ サポート対象 |
|
✔ サポート対象 |
✔ サポート対象 |
✔ サポート対象 |
|
サブフィールドを見る |
サブフィールドを見る |
サブフィールドを見る |
|
✔ サポート対象 |
✔ 単一選択のみ |
✔ 単一選択のみ |
|
✔ サポート対象 |
❌ サポート対象外 |
✔ |
|
✔ サポート対象 |
❌ サポート対象外 |
❌ サポート対象外 |
:code:`choices[].message`(非ストリーミング) |
サブフィールドを見る |
サブフィールドを見る |
サブフィールドを見る |
|
✔ サポート対象 |
✔ サポート対象 |
✔ サポート対象 |
|
✔ サポート対象 |
✔ サポート対象 |
✔ サポート対象 |
|
✔ サポート対象 |
❌ サポート対象外 |
❌ サポート対象外 |
|
❌ サポート対象外 |
❌ サポート対象外 |
❌ サポート対象外 |
|
❌ サポート対象外 |
❌ サポート対象外 |
❌ サポート対象外 |
|
✔ サポート対象 |
❌ サポート対象外 |
❌ サポート対象外 |
|
✔ サポート対象 |
✔ |
❌ サポート対象外 |
|
❌ サポート対象外 |
✔ OpenRouter 形式 |
❌ サポート対象外 |
:code:`choices[].delta`(ストリーミング) |
サブフィールドを見る |
サブフィールドを見る |
サブフィールドを見る |
|
✔ サポート対象 |
✔ サポート対象 |
✔ サポート対象 |
|
✔ サポート対象 |
❌ サポート対象外 |
❌ サポート対象外 |
|
✔ サポート対象 |
❌ サポート対象外 |
❌ サポート対象外 |
|
✔ サポート対象 |
❌ サポート対象外 |
❌ サポート対象外 |
|
✔ サポート対象 |
✔ |
❌ サポート対象外 |
|
❌ サポート対象外 |
✔ OpenRouter 形式 |
❌ サポート対象外 |
|
サブフィールドを見る |
サブフィールドを見る |
サブフィールドを見る |
|
✔ サポート対象 |
✔ サポート対象 |
✔ サポート対象 |
|
✔ サポート対象 |
✔ サポート対象 |
✔ サポート対象 |
|
✔ サポート対象 |
✔ サポート対象 |
✔ サポート対象 |
|
サブフィールドを見る |
サブフィールドを見る |
サブフィールドを見る |
|
❌ サポート対象外 |
❌ サポート対象外 |
❌ サポート対象外 |
|
✔ キャッシュ読み取りのみ |
✔ キャッシュ読み取り+書き込み |
❌ サポート対象外 |
|
サブフィールドを見る |
サブフィールドを見る |
サブフィールドを見る |
|
✔ サポート対象 |
❌ サポート対象外 |
❌ サポート対象外 |
|
❌ サポート対象外 |
❌ サポート対象外 |
❌ サポート対象外 |
|
✔ サポート対象 |
❌ サポート対象外 |
❌ サポート対象外 |
|
✔ サポート対象 |
❌ サポート対象外 |
❌ サポート対象外 |
|
✔ サポート対象 |
❌ サポート対象外 |
❌ サポート対象外 |
|
✔ サポート対象 |
❌ サポート対象外 |
❌ サポート対象外 |
ヘッダー |
サポート |
|---|---|
|
✔ 必須 |
|
✔ サポート対象( |
|
✔ サポート対象( |
ヘッダー |
サポート |
|---|---|
|
❌ サポート対象外 |
|
❌ サポート対象外 |
|
❌ サポート対象外 |
|
❌ サポート対象外 |
|
❌ サポート対象外 |
|
❌ サポート対象外 |
|
❌ サポート対象外 |
|
❌ サポート対象外 |
|
❌ サポート対象外 |
|
❌ サポート対象外 |
詳細¶
その他の使用例について詳しくは、`OpenAI Chat Completions API reference<https://platform.openai.com/docs/guides/completions/>`_または`OpenAI Cookbook<https://cookbook.openai.com/>`_を参照してください。
Chat Completions API との互換性に加え、SnowflakeはClaudeモデルの OpenRouter 互換機能をサポートしています。これらの機能はリクエストの追加フィールドとして公開されます。
プロンプトキャッシングには、
cache_controlフィールドを使用します。`OpenRouterプロンプトキャッシュドキュメント<https://openrouter.ai/docs/features/prompt-caching>`_を参照してください。推論トークンには、
reasoningフィールドを使用します。`OpenRouter推論ドキュメント<https://openrouter.ai/docs/use-cases/reasoning-tokens>`_を参照してください。
Messages APIリファレンス¶
POST /api/v2/cortex/v1/messages¶
Claudeモデルを使用して応答を生成します。リクエストと応答の形式は、`Anthropic Messages API仕様<https://docs.anthropic.com/en/api/messages>`_に従います。
注釈
Messages APIは**Claudeモデルのみ**をサポートしています。その他のモデルの場合は、Chat Completions APIを使用してください。
必須ヘッダー¶
Authorization: Bearer tokenリクエストの承認。
token`はJSONウェブトークン(JWT)、OAuthトークン、または:doc:`プログラムによるアクセストークン</user-guide/programmatic-access-tokens>`です。詳細については、 :doc:/developer-guide/snowflake-rest-api/authentication` をご参照ください。Content-Type: application/jsonリクエストボディが JSON 形式であることを指定します。
anthropic-version: 2023-06-01必須のAnthropic APIバージョンヘッダー。
任意のヘッダー¶
X-Snowflake-Authorization-Token-Type: type認可トークンのタイプを定義します。
X-Snowflake-Authorization-Token-Typeヘッダーを省略した場合、Snowflakeはトークンを調べてトークンのタイプを決定します。このヘッダーはオプションですが、このヘッダーを指定することもできます。ヘッダーは以下の値のいずれかにセットできます。
KEYPAIR_JWT(キーペア認証用)OAUTH( OAuthの場合)PROGRAMMATIC_ACCESS_TOKEN(プログラムアクセストークン 用)
anthropic-beta: featureベータ機能を有効にする。Bedrock互換のベータヘッダーのみがサポートされています。
必須JSONフィールド¶
フィールド |
型 |
説明 |
|---|---|---|
|
string |
使用するClaudeモデル(:ref:`label-cortex_complete_llm_model_availability`を参照)。 |
|
integer |
生成するトークンの最大数。 |
|
array |
メッセージオブジェクトの配列。各メッセージには``role``( |
サポートされている機能¶
Messages APIは、Claudeモデル向けの標準のAnthropic Messages API機能セットをサポートしています。これには以下が含まれます。
テキスト生成とマルチターン会話
ストリーミング(
"stream": true)システムメッセージ(トップレベルの``system``フィールド経由)
ツール呼び出し(
name、description、``input_schema``を使用するAnthropic形式)画像入力(base64ソースブロック)
プロンプトキャッシュ(コンテンツブロックに対する``cache_control``)
拡張思考(``budget_tokens``を使用する``thinking``パラメーター)
リクエストと応答スキーマの詳細について詳しくは、`Anthropic Messages APIドキュメント<https://docs.anthropic.com/en/api/messages>`_を参照してください。
制限事項¶
ステータスコード¶
- 200
OK リクエストは正常に完了しました。
- 400
invalid_request_error リクエスト本文の形式が正しくないか、無効な値が含まれています。
- 400
unknown model model_name 指定されたモデルは存在しないか、Claudeモデルではありません。
- 402
budget exceeded モデルの消費予算を超えました。
- 403
Not Authorized アカウントがRESTAPIに対して有効になっていないか、既定のロールが``snowflake.cortex_user``データベースロールを所有していません。
- 429
too many requests 使用量のクォータを超えました。後でもう一度お試しください。
- 503
inference timed out リクエストに時間がかかりすぎました。
レート制限¶
すべてのSnowflakeのお客様に高いパフォーマンスを保証するため、Cortex REST APIリクエストにはレート制限が適用されます。制限を超えるリクエストについては、HTTP 429の応答を受け取る場合があります。Snowflakeは場合によってはこれらの制限を調整することがあります。
以下の表のデフォルトの制限は、アカウントごとに適用され、モデルごとに独立して適用されます。`エクスポネンシャル・バックオフ<https://platform.openai.com/docs/guides/rate-limits#retrying-with-exponential-backoff>`_を使用して再試行することで、アプリケーションが429応答をグレースフルに処理するようにしてください。
この制限を増やす必要がある場合は、Snowflakeサポートまでご連絡ください。
モデル
|
1分あたりの処理トークン数(TPM)
毎分(TPM)
|
1分あたりのリクエスト数(RPM)
分(RPM)
|
最大出力(トークン)
|
|---|---|---|---|
claude-3-5-sonnet |
300,000 |
300 |
16,384 |
claude-3-7-sonnet |
300,000 |
300 |
16,384 |
claude-sonnet-4-5 |
600,000 |
600 |
16,384 |
claude-haiku-4-5 |
600,000 |
600 |
16,384 |
claude-4-sonnet |
300,000 |
300 |
16,384 |
claude-4-opus |
75,000 |
75 |
16,384 |
deepseek-r1 |
100,000 |
100 |
16,384 |
llama3.1-8b |
400,000 |
400 |
16,384 |
llama3.1-70b |
200,000 |
200 |
16,384 |
llama3.1-405b |
100,000 |
100 |
16,384 |
mistral-7b |
400,000 |
400 |
16,384 |
mistral-large2 |
200,000 |
200 |
16,384 |
openai-gpt-4.1 |
300,000 |
300 |
16,384 |
openai-gpt-5 |
300,000 |
300 |
16,384 |
openai-gpt-5-chat |
300,000 |
300 |
16,384 |
openai-gpt-5-mini |
1,000,000 |
1,000 |
16,384 |
openai-gpt-5-nano |
5,000,000 |
5,000 |
16,384 |
クロスリージョン推論でレート制限を上げる¶
Snowflakeアカウントで:doc:`クロスリージョン推論</user-guide/snowflake-cortex/cross-region-inference>`を設定した場合、次のモデルではレート制限が高くなります。
モデル
|
1分あたりの処理トークン数(TPM)
毎分(TPM)
|
1分あたりのリクエスト数(RPM)
分(RPM)
|
最大出力(トークン)
|
|---|---|---|---|
claude-3-7-sonnet |
600,000 |
600 |
16,384 |
claude-haiku-4-5 |
600,000 |
600 |
16,384 |
claude-sonnet-4-5 |
600,000 |
600 |
16,384 |
claude-4-sonnet |
1,200,000 |
1,200 |
16,384 |
claude-4-opus |
150,000 |
150 |
16,384 |
llama3.1-8b |
800,000 |
400 |
16,384 |
llama3.1-70b |
400,000 |
200 |
16,384 |
llama3.1-405b |
200,000 |
100 |
16,384 |
レート制限イベントのトラブルシューティング¶
TPM または RPM の制限により、429応答コードが生成されます。RESTAPI の使用量が1分あたりのリクエスト制限を下回っているにもかかわらず429レスポンスコードを受け取った場合は、トークンの使用率を再確認してください。
Cortex RESTAPI は、スライディングウィンドウカウンター パターンを使用してレート制限を実装します。カウンターは、Snowflakeのプライベートネットワーク内のSnowflake Cortexからのみアクセスできる、高可用性のRedisクラスターに保存されます。
スライディングウィンドウカウンターは、以前の時間ウィンドウでの API クライアントトラフィックが一様に分布しているものとみなします。トラフィックが急増する場合、この仮定はリクエストのレートを過剰に推定する可能性がありますが、ウィンドウが短い場合はすぐに回復します。過大評価の対象となり、制限を増やしたい場合は、Snowflakeサポート までご連絡ください。
既知の問題¶
セッショントークンの有効期限¶
:doc:`/developer-guide/snowflake-rest-api/authentication`で定義されている3つの方法のいずれかで認証することをお勧めします。ただし、Snowflakeセッショントークンで認証することを選択した場合は、APIアクセスが中断されないように、トークンの更新を処理する必要があります。
セッショントークンは定期的に期限切れになります。期限切れのセッショントークンでリクエストが実行された場合、REST APIは、エラーコード``390112``を含む応答``200 OK``を返します。これが発生した場合、操作は実行されません。
この動作を処理するには、アプリケーションで次のようにする必要があります。
HTTPステータスコードが``200 OK``であって、各API応答にエラーコード``390112``がないかどうかを確認します。
エラーコード``390112``が検出された場合は、セッショントークンを更新し、リクエストを再試行します。
コストの考慮事項¶
Snowflake Cortex REST API リクエストでは、処理されたトークンの数に基づいてコンピューティングコストが発生します。各モデルの100万トークンあたりのコスト(ドル単位)については、`Snowflakeサービス利用表`_を参照してください。
トークンは、Snowflake Cortex LLM 関数で処理されるテキストの最小単位で、テキストの4文字にほぼ同じです。トークンに相当する生の入力または出力テキストは、モデルによって異なる場合があります。
入力トークンも出力トークンもコンピューティングコストがかかります。会話やチャットのユーザー体験を提供するためにAPIを使用する場合、以前のすべてのプロンプトと応答が、対応するコストを伴って、それぞれの新しい応答を生成するために処理されます。
