本文へスキップ

DeepSeek V4.1 / V4

OpenAI Chat Completions、OpenAI Responses、Anthropic Messages のいずれかで DeepSeek V4.1 と V4 を呼び出します。

項目値
Base URLhttps://api.hop-base.com/v1
チャットPOST /v1/chat/completions
ResponsesPOST /v1/responses
Anthropic MessagesPOST /v1/messages

Bearer キーで認証し、正確なモデル ID は GET /v1/models から取得します。/v1/messages では x-api-key ヘッダーも使えます。

curl https://api.hop-base.com/v1/chat/completions \
  -H "Authorization: Bearer sk-your-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-v4-pro-202606",
    "messages": [{
      "role": "user",
      "content": "Summarize this quarter'\''s risks in five bullets."
    }]
  }'

モデル

モデル IDコンテキスト1 回あたりの最大出力トークン
deepseek-v4.1-flash1M393,216
deepseek-v4.1-flash-10171M393,216
deepseek-v4-pro-2026061,048,576393,216
deepseek-v4-flash-2026051M384,000

V4.1 Flash の思考内容は reasoning_content で返されます。DeepSeek の公式価格を基準に、公式のピーク/オフピーク制に従って課金されます。詳しくはピーク/オフピーク課金を参照してください。

V4.1 Flash は 2 つのバージョンを並行して提供しています。deepseek-v4.1-flash-1017 は 2026-10-17 版、deepseek-v4.1-flash は引き続き 0910 版で、そのまま使えます。料金もピーク/オフピークの時間帯も同じなので、用途に応じて選んでください。deepseek-v4.1-flash-1017 も画像を読み取れます。詳しくは画像入力を参照してください。

4 つのモデルはすべて「DeepSeek」プランに属しているため、1 つのキーですべて呼び出せます。

シンガポールのデータセンターで提供する deepseek-v4.1-flash-1017-sg は別のプランです。詳しくはシンガポールデータセンターを参照してください。

短縮名は呼び出せません:

正式なモデルは上表の ID のみです。省略せず GET /v1/models から正確な ID を取得してください。

次の短縮名はいずれも同じ 404 model_not_found を返し、代替 ID は示されません:deepseek-v4-flash、deepseek-v4-pro、deepseek-chat、deepseek-reasoner、そして DeepSeek 自身の V4.1 Flash の短縮名 deepseek-flash。メッセージはリクエストの Accept-Language に従い、既定は英語です。

現在のグループは要求されたモデルをサポートしていません:<model>
The current group does not support the requested model: <model>

ピーク/オフピーク課金

deepseek-v4.1-flash、deepseek-v4.1-flash-1017、deepseek-v4.1-flash-1017-sg は DeepSeek 公式のピーク/オフピーク制に従います。時刻はすべて北京時間(UTC+8)です。

  • ピーク:月曜から金曜の 09:00–12:00 と 14:00–18:00。
  • オフピーク:それ以外の時間。夜間、2 つの枠に挟まれた昼の時間帯、週末の終日を含みます。
  • オフピークでは入力・キャッシュ入力・出力の単価がいずれも半額になります。
  • 各枠は開始時刻を含み終了時刻を含みません。09:00:00 はすでにピーク、12:00:00 はすでにオフピークです。

課金はリクエストを開始した時刻ではなく、完了した時刻で判定されます。17:59 に開始して 18:01 に終わったリクエストは全体がオフピーク単価、08:59 に開始して 09:01 に終わったリクエストは全体がピーク単価です。

1 回のリクエストは常に 1 つの単価しか持たず、境界で分割されることはありません。そのため、同じモデルでも 1 分違いの 2 件の利用量レコードで単価が異なることがあります。お使いのキーに適用されるレートは、ログイン後のモデルカタログをご確認ください。

シンガポールデータセンター

deepseek-v4.1-flash-1017-sg は同じ V4.1 Flash 2026-10-17 版を、シンガポールのデータセンターから提供するモデルです。上表のモデルとは独立した供給です。「DeepSeek シンガポールデータセンター」プランに属し、すべてのユーザーがコンソールの「API キー」でこのプランをキーに追加できます。「DeepSeek」プランだけのキーで呼び出すと 404 になります。

モデル IDコンテキスト1 回あたりの最大出力トークン
deepseek-v4.1-flash-1017-sg1M393,216
  • 公式価格とピーク/オフピークの時間帯は deepseek-v4.1-flash-1017 と同じです。北京時間の平日 09:00–12:00 と 14:00–18:00 がピーク、それ以外は半額です。詳しくはピーク/オフピーク課金を参照してください。プラン独自の割引はコンソールでプランとともに表示されます。
  • POST /v1/chat/completions、POST /v1/responses、POST /v1/messages のいずれも使えます。ストリーミング、ツール呼び出し、思考(reasoning_content)に対応しています。
  • プレフィックスキャッシュは自動で有効になり、キャッシュヒットはキャッシュ入力の単価で課金されます。
  • 末尾の -sg はモデル ID の一部です。付け外ししないでください。このページ後半のパラメータ表、画像入力、プレフィックス継続の説明は「DeepSeek」プランの 4 モデルが対象です。

エンドポイントとリクエストパラメータ

POST /v1/chat/completions、POST /v1/responses、POST /v1/messages は 4 モデルすべてで使え、どれもストリーミングが正常に動作します。Codex CLI は Responses、Claude Code は Anthropic Messages を使います。詳しくは Claude Code と Anthropic Messages を参照してください。

  • Fill-in-the-Middle 補完は利用できません。この機能が使用するパスを HopBase がルーティングしていないためです。
  • プレフィックス継続は利用できます。プレフィックス継続を参照してください。

下表は POST /v1/chat/completions の場合です。ゲートウェイが拒否するのは空の messages だけで、ほかの制限はモデル側のものです。

パラメータ必須型と制限デフォルト説明
model必須上表の 4 つの ID のいずれか—完全一致。短縮名は 404
messages必須空でない配列—role の値は下記
max_tokens任意0 以上の整数。上限はモデル参照サービス既定思考と回答で共有
temperature任意数値 0–2サービス既定—
thinking任意{"type": …}V4.1 Flash はオン値は下記
reasoning_effort任意low / medium / high は実測で動作サービス既定思考が有効なときのみ適用
tools、tool_choice任意OpenAI と同じautoツール呼び出し参照
stream任意真偽値falsetrue で SSE ストリーミングを返します
stream_options.include_usage任意真偽値falseストリーミングで usage を受け取るには true
prefix任意真偽値falseプレフィックス継続
image_url.url任意data: URI または https:// URL—deepseek-v4.1-flash と deepseek-v4.1-flash-1017 のみ
  • messages[].role は system / user / assistant / tool / developer。
  • thinking.type は enabled / disabled / adaptive。ほかの値(auto など)は 400 です。
  • 負の max_tokens は 400。上限超えは拒否されず、出力が黙って打ち切られます(推論の出力参照)。
  • stream_options.include_usage は課金に影響しません。
  • prefix は最後の assistant メッセージにのみ指定します。
  • image_url.url を使う場合、リクエスト全体で 60 MB 以下です。

エラー文言は 2026-09 の本番記録から引用しています。

400 missing messages field                   messages の欠落(ゲートウェイ)
400 messages must not be an empty array      messages が空配列(ゲートウェイ)
400 expected a value <= 2                    temperature が 2 超

/v1/responses では出力を max_output_tokens で制限し、値は 1–393,216 です。temperature も 0–2 で、caching を指定するリクエストは store: true も必要です。範囲外の場合:

400 max_output_tokens must be less than or equal to 393216

全パラメータは API リファレンス:Chat Completions で DeepSeek モデルファミリーを選んで確認してください。

画像入力

deepseek-v4.1-flash と deepseek-v4.1-flash-1017 はネイティブに画像を読み取れます。エンドポイントは同じで、形式は標準的な OpenAI のコンテンツパートです。image_url.url には data: URI と公開 https:// URL のどちらも指定でき、1 つのメッセージに複数枚の画像を入れられます。

リクエストボディ全体の上限は 60 MB です。base64 で約 1/3 膨らむため、画像の合計は約 45 MB 以内に収め、大きな画像は https:// URL で渡してください。超えると次のエラーになります。

413 Request body exceeds the size limit (60 MB)

画像は通常の入力として扱われ、prompt_tokens に計上されます。

V4 Pro と V4 Flash は画像を受け付けません:

deepseek-v4-pro-202606 と deepseek-v4-flash-202605 は画像を認識できません。画像を含むリクエストはモデルに届く前に 400 で拒否され、課金されません。Chat Completions、Responses、Anthropic Messages のどれでも同じです。Claude Code に貼り付けたスクリーンショットや、Claude Code が読み込む画像ファイルも対象です。画像を扱う作業には deepseek-v4.1-flash または deepseek-v4.1-flash-1017 を使ってください。

400 Model deepseek-v4-pro-202606 does not accept image input. Remove the image from the request, including earlier turns of the conversation, or use a model that supports images.
{
  "model": "deepseek-v4.1-flash",
  "messages": [
    {
      "role": "user",
      "content": [
        { "type": "text", "text": "この 2 枚の画像には何が写っていますか。" },
        { "type": "image_url", "image_url": { "url": "data:image/png;base64,iVBORw0KGgo..." } },
        { "type": "image_url", "image_url": { "url": "https://example.com/chart.png" } }
      ]
    }
  ]
}

推論の出力

DeepSeek は思考の過程を content の中にではなく、独立した reasoning_content フィールドで返します。必要であれば明示的に読み取ってください。

completion_tokens にはすでに推論トークンが含まれているため、実際の出力長としてそのまま扱い、reasoning_tokens を重ねて加算しないでください。これは Grok とは異なる点で、Grok のチャットエンドポイントでは両者が別々に報告され、加算が必要です。

思考は回答と同じ max_tokens の予算から消費され、しかも先に生成されます。予算が小さすぎるとすべてが思考で使い切られ、呼び出しは 200 を返したまま次の状態になります。

  • finish_reason が length。
  • content が空文字列。
  • completion_tokens_details.reasoning_tokens が指定した予算と同じ値。

この組み合わせはリクエストの失敗ではなく、「max_tokens を増やしてください」という意味です。実測では max_tokens: 16 のとき、途中で切れた思考だけが返り、本文は 1 文字も返りませんでした。

この枠のルールは deepseek-v4.1-flash に当てはまります。deepseek-v4-pro-202606 と deepseek-v4-flash-202605 では、思考がオンの間は max_tokens が思考を制限しません。実測では max_tokens: 64 で、Chat Completions は 144〜161、Anthropic Messages は最大 1,299 の出力トークンを返し、すべて課金されました。思考をオフにすると上限は正確です。

2 つの上限の挙動は対称ではありません。コンテキストウィンドウ(実測 1,048,576 トークン)を超える入力は、生成が始まる前に 400 で拒否され、課金も発生しません。一方、Chat Completions で出力上限を超える max_tokens は拒否されず、200 を返して実際の上限で黙って打ち切られます。成功のレスポンスは、指定した予算が受け入れられた証拠にはなりません。

ツール呼び出しとプレフィックス継続

ツール呼び出し

標準的な OpenAI の Function Calling が一通り動作します。単一の呼び出し、1 ターンでの並列呼び出し、tool_choice の auto / none / required および関数名の指定、role: "tool" の結果を次のターンに戻す使い方のいずれも利用できます。

本モデルは推論モデルですが required をそのまま受け付けます。思考を切る必要はなく、レスポンスの finish_reason は tool_calls になります。

プレフィックス継続

応答の書き出しをこちらから渡し、その続きを書かせることができます。messages の最後の要素を assistant ロールにし、その要素に prefix: true を指定してください。返ってくる content には続きの部分だけが入り、渡したプレフィックスは繰り返されません。

このモードではモデルは思考を生成しません。reasoning_content は返らず、reasoning_tokens は 0 となり、予算はすべて続きの生成に使われます。

{
  "model": "deepseek-v4.1-flash",
  "messages": [
    { "role": "user", "content": "List three primary colors, comma separated, nothing else." },
    { "role": "assistant", "content": "red, green,", "prefix": true }
  ]
}

この例で返る content は blue で、出力トークンは 1 つだけです。

プロンプトキャッシュと突き合わせ

プレフィックスキャッシュは暗黙的に行われ、スイッチもキャッシュ制御パラメータもありません。ヒットは標準的な OpenAI のフィールドである usage.prompt_tokens_details.cached_tokens で報告されます。ヒットには 256 トークン以上の共通プレフィックスが必要で、これより短い場合 cached_tokens は 0 のままです。

HopBase の利用量レコードとレスポンスボディでは、入力のカウント方法が異なります。突き合わせる際は注意してください。

フィールド意味
レスポンスの prompt_tokensキャッシュ命中分を含むプロンプト全体
利用量レコードの入力トークンプロンプトから、キャッシュ命中分を差し引いたもの
利用量レコードのキャッシュ入力トークンキャッシュ命中分を別立てで表示したもの

つまり、利用量レコードの入力トークンとキャッシュ入力トークンを足すと、レスポンスの prompt_tokens と一致します。キャッシュ読み取りは通常の入力とは別料金です。お使いのキーに適用されるレートは、ログイン後のモデルカタログをご確認ください。

Claude Code と Anthropic Messages

POST /v1/messages は 4 モデルすべてで標準の Anthropic Messages リクエストを受け付け、モデル自身の Anthropic 互換インターフェースにそのまま渡すため、Claude Code と Anthropic SDK から直接接続できます。SDK の Base URL は /v1 を付けずに https://api.hop-base.com とします。

CC Switch を使う場合は、コンソールでキーの ··· メニューを開き、CCS をインポート、続けて Claude Code を選びます。モデルはインポート時に設定されます。API 形式は既定の Anthropic のままにし、ローカルルーティングは不要です。手動で設定する場合:

export ANTHROPIC_BASE_URL="https://api.hop-base.com"
export ANTHROPIC_AUTH_TOKEN="sk-your-key"
export ANTHROPIC_MODEL="deepseek-v4-pro-202606"
export ANTHROPIC_DEFAULT_HAIKU_MODEL="deepseek-v4-flash-202605"
export CLAUDE_CODE_MAX_CONTEXT_TOKENS=1000000
claude

Claude Code はこれらの ID を知らないため、CLAUDE_CODE_MAX_CONTEXT_TOKENS で実際のコンテキストウィンドウを伝えます。指定しないと、Claude Code は 200K トークンで会話を圧縮します。4 つのモデルは同じプランに属しているため、キーは 1 つで足ります。その他のオプションは Claude Code にあります。

  • 思考は thinking ブロックで返り、output_tokens に含まれます。thinking: {"type": "disabled"} でオフにできます。
  • tool_choice でツール名を指定({"type": "tool", "name": …})すると、そのツールが呼び出されます。{"type": "any"} は無視され、モデルがテキストで答えることがあります。
  • 画像を読めるのは deepseek-v4.1-flash と deepseek-v4.1-flash-1017 だけです。ほかの 2 モデルに画像を送ると 400 が返ります。詳しくは画像入力を参照してください。
  • 出力上限を超える max_tokens は拒否されません。
  • cache_control のブレークポイントは送信前に取り除かれるため、明示的キャッシュは使えません。自動のプレフィックスキャッシュは通常どおり効きます。2026-10-03 の実測では、Claude Code の 2 ターン目以降はプロンプトの 94%–99% がキャッシュから読み込まれました。

Anthropic Messages で突き合わせるときは、input_tokens はキャッシュ命中分を含まず、利用量レコードの「入力トークン」に対応します。cache_read_input_tokens は「キャッシュ入力トークン」に対応します。

ゲートウェイの挙動

挙動リクエストへの影響
空の messages送信前に 400 で拒否
モデルが受け付けない Responses フィールド黙って削除
非対応の input[].type / tools[].type削除されず 400
  • 黙って削除される Responses フィールドには stream_options、truncation、user、reasoning.summary、text.verbosity などがあります。
  • 非対応の型の例は local_shell_call、file_search、code_interpreter です。
  • レスポンスの model フィールドには常にリクエストで指定した公開 ID が返るため、response.model == request.model を検証するクライアントも問題なく動作します。

次のステップ