DEV Community

Cover image for DeepSeek-V4-FlashがレスポンスAPIとCodexに対応:開発者必見
Akira
Akira

Posted on • Originally published at apidog.com

DeepSeek-V4-FlashがレスポンスAPIとCodexに対応:開発者必見

DeepSeekが7月31日に発表したV4-Flashリリースで注目すべきなのは、公式V4-FlashがResponses APIフォーマットをネイティブサポートし、Codexに完全対応した点です。つまり、OpenAIのエージェント製品向けAPI形式をDeepSeekがサーバー側で実装し、CodexのようなResponses APIクライアントからDeepSeekモデルを直接利用できるようになりました。

今すぐApidogを試す

DeepSeekの変更ログでは、対応理由を「Codexの需要に応えるため」と明示しています。本記事では、Responses API互換性の範囲、無視されるパラメータ、Codexへの接続手順、検証時の注意点を実装視点で整理します。基本的なAPIセットアップが必要な場合は、先にV4-Flash公開ベータ版ガイドを確認してください。

ここでResponses APIが重要な理由

OpenAI Responses APIは、Chat Completionsの後継として導入されたエージェント向けインターフェースです。推論アイテム、組み込みツール、セマンティックなストリーミングイベントを扱えます。OpenAI Responses APIの使い方でも解説しているとおり、Codexを含むOpenAIのエージェントスタックがネイティブに利用する形式です。

従来、Responses APIクライアントからOpenAI以外のモデルを利用するには、形式を変換するプロキシが必要でした。DeepSeekでは、https://api.deepseek.com がResponses API形式を直接処理します。そのため、既存のOpenAI SDKを変更せずに利用できます。

# pip3 install openai
from openai import OpenAI

client = OpenAI(
    api_key="<your DeepSeek API key>",
    base_url="https://api.deepseek.com"
)

response = client.responses.create(
    model="deepseek-v4-flash",
    instructions="You are a helpful assistant.",
    input="Hi, how are you?",
)

print(response.output_text)
Enter fullscreen mode Exit fullscreen mode

現時点でResponses APIを利用できるのはdeepseek-v4-flashのみです。DeepSeekによると、deepseek-v4-proの対応は2026年8月上旬に予定されています。

DeepSeek Responses APIの互換性情報

互換性はどの程度か?

DeepSeekはResponses APIの互換性マトリックスを公開しています。実装前に、利用中のパラメータが「対応」「受理されるが無効」「未対応」のどれに該当するか確認してください。

サポートされる機能

以下は利用できます。

  • inputinstructions
    • 文字列形式
    • アイテムリスト形式
  • stream
    • Responses APIのセマンティックイベントを返す
  • temperature
  • top_p
  • max_output_tokens
  • top_logprobs
  • tools
    • function
    • web_search(サーバー側で実行)
  • tool_choice
    • 特定関数の強制を含む
  • reasoning.effort
    • 推論の深さを指定する

受理されるが動作しないパラメータ

次のパラメータはリクエストに含められますが、期待する効果は得られません。

  • reasoning.summary
    • 受理されるが推論要約は生成されない
  • text.verbosity
    • 受理されるが出力に影響しない
  • parallel_tool_calls
    • 常に並列ツール呼び出しが有効なため無視される

サポートされない機能

DeepSeekのResponses APIはステートレスです。会話状態をサーバーに保持する前提の実装は、そのままでは動作しません。

  • previous_response_id
  • conversation
  • store
    • 応答は常にstore: falseで返される
  • background
  • metadata
  • include
  • service_tier
  • プロンプトキャッシュキー

複数ターンの会話を実装する場合は、履歴をアプリケーション側で管理し、毎回inputのアイテムリストとして送信してください。

history = [
    {
        "role": "user",
        "content": "PythonでFizzBuzzを書いてください。"
    },
    {
        "role": "assistant",
        "content": "以下のように実装できます。"
    },
    {
        "role": "user",
        "content": "3の倍数だけを出力するように変更してください。"
    }
]

response = client.responses.create(
    model="deepseek-v4-flash",
    input=history,
)
Enter fullscreen mode Exit fullscreen mode

未対応パラメータはエラーではなく黙って無視されます。既存クライアントの移行では便利ですが、設定ミスに気付きにくくなる点には注意してください。

また、100万トークンのコンテキストウィンドウを超えるリクエストは切り詰められず、400エラーになります。長い会話履歴や大規模リポジトリのコンテキストを渡す場合は、トークン数を事前に制御してください。

ストリーミング実装時の注意点

ストリーミングはResponses APIのイベントモデルに従います。

  • 開始: response.created
  • 推論テキスト差分: response.reasoning_text.delta
  • 出力テキスト差分: response.output_text.delta
  • 終了:
    • response.completed
    • response.incomplete
    • response.failed

data: [DONE]は送信されません。Chat Completions形式のSSEハンドラーで[DONE]だけを終了条件にしていると、接続が終了したことを処理できません。

stream = client.responses.create(
    model="deepseek-v4-flash",
    input="SSEストリーミングの注意点を3つ説明してください。",
    stream=True,
)

for event in stream:
    if event.type == "response.output_text.delta":
        print(event.delta, end="", flush=True)

    if event.type in {
        "response.completed",
        "response.incomplete",
        "response.failed",
    }:
        break
Enter fullscreen mode Exit fullscreen mode

SSEのイベント差異を吸収する実装パターンは、サーバー送信イベントによるAPIレスポンスのストリーミングも参照してください。

DeepSeek-V4-FlashでCodexをセットアップする

CodexはResponses API経由でモデルと通信します。そのため、DeepSeekのResponses API対応により、Codex CLI、ChatGPTデスクトップアプリ、VS Code拡張機能からDeepSeekをモデルプロバイダーとして設定できます。

DeepSeekのCodex統合ガイドでは、共通設定を使う2つのセットアップ方法が案内されています。

ワンクリックスクリプトで設定する

事前にCodex CLIまたはChatGPTデスクトップアプリをインストールし、少なくとも一度起動しておいてください。

macOSまたはLinuxでは、次を実行します。

bash <(curl -fsSL https://cdn.deepseek.com/api-docs/codex-deepseek-setup-en.sh)
Enter fullscreen mode Exit fullscreen mode

WindowsではPowerShell版を実行します。

irm https://cdn.deepseek.com/api-docs/codex-deepseek-setup-en.ps1 | iex
Enter fullscreen mode Exit fullscreen mode

初回実行時にDeepSeek APIキーを入力すると、スクリプトは以下を実行します。

  1. 既存の~/.codex/config.toml~/.codex/backup-deepseek/へバックアップする
  2. モデルカタログを~/.codex/models.jsonへ書き込む
  3. MCPサーバーとプロジェクト信頼設定を維持したまま、[model_providers.deepseek]を設定へ追加する
  4. 書き込み前に設定ファイルの構文を検証する

モデルの切り替えや元の設定への復元が必要になった場合も、同じスクリプトを再実行できます。

ただし、curlの出力をそのままシェルへ渡す前に、チームのセキュリティポリシーを確認してください。必要であれば、先にスクリプトをダウンロードして内容を確認してから実行します。

モデルカタログを確認する

スクリプトが作成するmodels.jsonには、Codex上でのV4-Flashの設定が記録されています。

  • コンテキストウィンドウ: 1,048,576トークン
  • 推論レベル: lowhighmax
    • デフォルトはhigh
  • 並列ツール呼び出しをサポート
  • Codexクライアントはバージョン0.144.0以降が必要

現在動作するモデルはdeepseek-v4-flashです。カタログには、8月上旬のサポート開始予定としてdeepseek-v4-proも含まれています。

Codexワークロードで評価する

DeepSeekは、0731の再ポストトレーニングがエージェント型コーディングワークロードを対象にしていると説明しています。発表されたベンダー指標は以下のとおりです。

ベンチマーク スコア
Terminal Bench 2.1 82.7
Cybergym 76.7
Toolathlon 70.3
DeepSWE 54.4

DeepSeekはこれらがV4-Pro-Previewを上回ったと報告しています。ただし、独立評価が出るまではベンダー公表値として扱うべきです。特に、自分のリポジトリ、テスト、ツール構成での実測を優先してください。

価格については、入力トークン100万件あたり0.14ドル(キャッシュミス時)、出力トークン100万件あたり0.28ドルです。キャッシュヒット時の入力コストは0.0028ドルまで下がります。詳細はV4-Flash公開ベータガイドの料金セクションを確認してください。

Codex自体を他のエージェントツールと比較したい場合は、Claude Code vs Codex CLI比較も参考になります。

エージェントを接続する前にエンドポイントを検証する

公開直後のベータエンドポイントを実リポジトリで使う前に、最小リクエスト、ストリーミング、ツール呼び出しを個別に検証してください。Apidogでは、次の手順で確認できます。

  1. POST https://api.deepseek.com/responsesを作成する
  2. APIキーを環境変数として保存する
  3. 最小ペイロードを送信し、出力アイテムの構造を確認する
  4. stream: trueでイベント順序を確認する
  5. functionツール付きリクエストを保存し、function_callの出力形式を確認する

最小ペイロードの例です。

{
  "model": "deepseek-v4-flash",
  "instructions": "You are a helpful assistant.",
  "input": "現在時刻を取得する関数を呼び出す必要がある場合の手順を説明してください。"
}
Enter fullscreen mode Exit fullscreen mode

ストリーミング検証用のペイロードです。

{
  "model": "deepseek-v4-flash",
  "input": "TypeScriptでHTTPリトライ関数を書いてください。",
  "stream": true
}
Enter fullscreen mode Exit fullscreen mode

確認時は、少なくとも以下をチェックしてください。

  • reasoningアイテムの後にmessageアイテムが返るか
  • response.output_text.deltaをクライアントが処理できるか
  • response.completedを終了イベントとして扱えているか
  • function_callの引数形式が自分のハンドラーと一致するか
  • 長い入力でコンテキスト上限の400エラーを適切に処理できるか

V4-ProのResponses API対応が開始されたら、保存済みリクエストのmodelだけを変更して再実行し、出力形式、ツール呼び出し、ストリーミング挙動を比較できます。Apidogを無料でダウンロードして、検証リクエストとテストスイートを1つのプロジェクトにまとめてください。

よくある質問

Responses APIで動作するDeepSeekモデルはどれですか?

現在はdeepseek-v4-flashのみです。deepseek-v4-proのサポートは2026年8月上旬に予定されています。

新しいSDKは必要ですか?

不要です。公式OpenAI SDKを利用し、base_urlhttps://api.deepseek.comに設定してclient.responses.createを呼び出します。詳細はV4-Flash公開ベータガイドを参照してください。

複数ターンの状態はOpenAI版と同じように扱えますか?

できません。DeepSeekの実装はステートレスです。previous_response_idconversationstoreはサポートされません。アプリケーション側で履歴を保持し、呼び出しごとに完全な履歴をinputとして送信してください。

CodexでOpenAIアカウントと並行してDeepSeekを利用できますか?

利用できます。セットアップによりDeepSeekがモデルプロバイダーとして追加されます。スクリプトのメニューからモデルを切り替えられ、元の設定はバックアップから復元できます。

Anthropic API互換エンドポイントと同じ機能ですか?

別機能です。DeepSeekはClaude Code統合向けにhttps://api.deepseek.com/anthropicでAnthropic形式のエンドポイントも提供しています。一方、Responses APIエンドポイントはCodexのようなOpenAI形式のエージェントツール向けです。

このリリースが示すこと

モデル品質だけでなく、エージェントに接続するための統合レイヤーが重要になっています。DeepSeekはCodexが利用するResponses APIを直接実装し、モデルプロバイダーとして差し替えられる構成を提供しました。

ただし、互換性があることと、自分の開発環境で最適であることは別です。未対応パラメータの扱い、ステートレスな会話管理、SSE終了イベント、コンテキスト上限を確認したうえで評価してください。

最終的には、Apidogで同じテストスイートをV4-Flashと比較対象モデルに実行し、自分のコードベースにおける成功率、ツール呼び出し精度、速度、コストで判断するのが確実です。

Top comments (0)