DEV Community

Cover image for DeepSeek V4 API の使い方
Akira
Akira

Posted on • Originally published at apidog.com

DeepSeek V4 API の使い方

DeepSeek V4は、リリース初日からAPIが利用可能です。モデルIDはdeepseek-v4-prodeepseek-v4-flashで、OpenAI互換エンドポイント(ベースURL:https://api.deepseek.com)が提供されているため、既存のOpenAIクライアントはベースURLを変更するだけでそのまま利用できます。

今すぐApidogを試そう

このガイドでは、認証、主要パラメータ、Python/Nodeの実装例、思考モードの挙動、ツール呼び出し、ストリーミング、そしてコスト可視化のためのApidogワークフローまで、開発・運用の実践手順を解説します。

<!--kg-card-begin: html-->




<!--kg-card-end: html-->

製品概要はDeepSeek V4とは、無料利用方法はDeepSeek V4を無料で利用する方法を参照してください。

要約

  • DeepSeek V4は、https://api.deepseek.com/v1/chat/completions(OpenAI互換)とhttps://api.deepseek.com/anthropic(Anthropic互換)の2つのAPIエンドポイントで利用可能。
  • モデルID:deepseek-v4-pro(合計1.6T/アクティブ49B)、deepseek-v4-flash(合計284B/アクティブ13B)。
  • 両モデルは1Mトークンコンテキストと3種の推論モード(non-thinkingthinkingthinking_max)をサポート。
  • 推奨パラメータはtemperature=1.0, top_p=1.0。OpenAI/GPT-5.5/Claudeのデフォルト値は避ける。
  • レガシーID(deepseek-chatdeepseek-reasoner)は2026年7月24日に非推奨。移行必須。
  • リクエスト再実行や思考モード比較、APIキーの安全管理にはApidogダウンロードを推奨。

前提条件

初回リクエストまでに以下を準備してください。

  • platform.deepseek.comで2ドル以上チャージしたDeepSeek開発者アカウント。残高不足時は402 Insufficient Balance
  • プロジェクトスコープのAPIキー。本番運用では必ずプロジェクトキーを利用。
  • OpenAI互換SDK(Python openai>=1.30.0/Node openai@4.x)。そのまま利用可能。
  • 再実行・差分確認が容易なAPIクライアント。curlは単発向き、継続運用はApidog推奨。

APIキーのエクスポート例:

export DEEPSEEK_API_KEY="sk-..."

エンドポイントと認証

選択肢は2つ。基本はOpenAI互換を推奨します。

POST https://api.deepseek.com/v1/chat/completions    # OpenAI形式
POST https://api.deepseek.com/anthropic/v1/messages  # Anthropic形式

認証はAuthorization: BearerヘッダーでAPIキーを渡します。最小構成のcurl例:

curl https://api.deepseek.com/v1/chat/completions \
  -H "Authorization: Bearer $DEEPSEEK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-v4-pro",
    "messages": [
      {"role": "user", "content": "Explain MoE routing in two sentences."}
    ]
  }'

レスポンスはOpenAI標準:choices配列、トークン消費量(usage)、失敗時はerror.codeerror.messageを含みます。

リクエストパラメータ

主要パラメータと型・推奨値:

<!--kg-card-begin: html-->


























































































パラメータ 注釈
model string deepseek-v4-pro, deepseek-v4-flash 必須。
messages array role/content ペア 必須。OpenAIと同じスキーマ。
thinking_mode string non-thinking, thinking, thinking_max デフォルトはnon-thinking
temperature float 0 から 2 DeepSeekは1.0を推奨。
top_p float 0 から 1 DeepSeekは1.0を推奨。
max_tokens int 1 から 131,072 出力長を制限。
stream bool true または false SSEストリーミングを有効化。
tools array OpenAI ツール仕様 関数呼び出し用。
tool_choice string または object auto, required, none, または特定のツール ツール使用を制御。
response_format object {"type": "json_object"} JSONモード出力。
seed int 任意整数 再現性のため。
presence_penalty float -2 から 2 繰り返されるトピックにペナルティ。
frequency_penalty float -2 から 2 繰り返されるトークンにペナルティ。
<!--kg-card-end: html-->

thinking_modeはコスト・速度・精度に直結します。
- non-thinking:推論トレースなし、最速・最安。
- thinking:追加トークン消費し、推論ブロックでコードや数値精度向上。
- thinking_max:最も多くのトークンを消費し、384K以上のコンテキスト推奨。

Pythonクライアント

OpenAI公式SDKでベースURLを指定するだけ。追加パラメータはextra_bodyで渡す:

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["DEEPSEEK_API_KEY"],
    base_url="https://api.deepseek.com/v1",
)

response = client.chat.completions.create(
    model="deepseek-v4-pro",
    messages=[
        {"role": "system", "content": "Reply in code only."},
        {"role": "user", "content": "Write a Rust function that debounces events."},
    ],
    extra_body={"thinking_mode": "thinking"},
    temperature=1.0,
    top_p=1.0,
    max_tokens=2048,
)

choice = response.choices[0]
print("Content:", choice.message.content)
print("Reasoning tokens:", response.usage.reasoning_tokens)
print("Total tokens:", response.usage.total_tokens)

extra_bodyでDeepSeek独自パラメータも柔軟に設定可能です。

Nodeクライアント

NodeのOpenAI SDKも同様。thinking_mode等はトップレベルで渡す:

import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.DEEPSEEK_API_KEY,
  baseURL: "https://api.deepseek.com/v1",
});

const response = await client.chat.completions.create({
  model: "deepseek-v4-flash",
  messages: [
    { role: "user", content: "Explain the Muon optimizer in plain English." },
  ],
  thinking_mode: "thinking",
  temperature: 1.0,
  top_p: 1.0,
});

console.log(response.choices[0].message.content);
console.log("Usage:", response.usage);

Node SDKは未対応フィールドもエラーなく許容されます。

ストリーミング応答

stream: true指定でSSEに。OpenAIと同じ形式:

stream = client.chat.completions.create(
    model="deepseek-v4-pro",
    messages=[{"role": "user", "content": "Stream a 300-word essay on MoE."}],
    stream=True,
    extra_body={"thinking_mode": "non-thinking"},
)

for chunk in stream:
    delta = chunk.choices[0].delta.content or ""
    print(delta, end="", flush=True)

思考モード有効時はdelta.reasoning_contentで推論トレースを受信可能。

ツール呼び出し

OpenAIツール呼び出しスキーマそのまま利用可。tools配列で関数定義:

tools = [{
    "type": "function",
    "function": {
        "name": "get_weather",
        "description": "Return the current weather for a city.",
        "parameters": {
            "type": "object",
            "properties": {
                "city": {"type": "string"},
                "unit": {"type": "string", "enum": ["c", "f"]},
            },
            "required": ["city"],
        },
    },
}]

response = client.chat.completions.create(
    model="deepseek-v4-pro",
    messages=[{"role": "user", "content": "Weather in Lagos in Celsius?"}],
    tools=tools,
    tool_choice="auto",
    extra_body={"thinking_mode": "thinking"},
)

tool_call = response.choices[0].message.tool_calls[0]
print(tool_call.function.name, tool_call.function.arguments)

呼び出した結果はrole: "tool"メッセージとして返し、ループ処理で実装。

JSONモード

構造化出力にはresponse_formatで明示:

response = client.chat.completions.create(
    model="deepseek-v4-flash",
    messages=[
        {"role": "system", "content": "Reply with a single JSON object."},
        {"role": "user", "content": "Summarize this release note as {title, date, bullets}: ..."},
    ],
    response_format={"type": "json_object"},
    extra_body={"thinking_mode": "non-thinking"},
)

出力スキーマの厳密な検証はPydanticやZod等クライアント側でカバー。

Apidogでコレクションを構築する

APIクレジット消費と差分比較を最小化するためのワークフロー例:

  1. Apidogをダウンロードしプロジェクト作成。
  2. {{DEEPSEEK_API_KEY}}を秘密変数として登録。
  3. Authorization: Bearer {{DEEPSEEK_API_KEY}}ヘッダー付きで{{BASE_URL}}/chat/completionsにPOSTリクエスト保存。
  4. modelthinking_modeをパラメータ化し、A/Bテストを柔軟に。
  5. 各実行でusage.reasoning_tokensをビジュアルに確認し、コスト最適化。

既存のGPT-5.5 APIコレクションと同様に、ベースURLとモデルIDだけ切り替えることで即座に比較検証が可能です。

エラー処理

OpenAI準拠のエンベロープ。主要なエラーと対応策:

<!--kg-card-begin: html-->




















































コード 意味 修正
400 不正なリクエスト JSONスキーマ、特にmessagestoolsを確認してください。
401 無効なキー platform.deepseek.comで再生成してください。
402 残高不足 アカウントにチャージしてください。
403 モデルが許可されていません キーのスコープとモデルIDのスペルを確認してください。
422 パラメータが範囲外です おそらくmax_tokensまたはthinking_modeが一致していません。
429 レート制限 時間を置いてから、指数的なジッターで再試行してください。
500 サーバーエラー 一度再試行してください。繰り返す場合はステータスページを確認してください。
503 過負荷 V4-Flashにフォールバックするか、30秒後に再試行してください。
<!--kg-card-end: html-->

429・5xx系は指数バックオフ付きリトライ、4xxは論理バグなので自動リトライしないこと。

コスト管理パターン

コスト予測と最適化のための運用パターン:

  1. デフォルトはV4-Flash利用。 品質差分が明確な場合のみV4-Pro適用。
  2. thinking_maxは機能フラグで制御。 正確性重視時のみ利用し、無制限運用は避ける。
  3. max_tokensで出力上限設定。 通常2,000トークンで十分。1Mウィンドウは入力用。
  4. 全リクエストでusageを必ずログ化。 推論トークン数の急増時にアラート設定。

古いDeepSeekモデルからの移行

レガシーIDは非推奨。移行はモデルIDの1行差分のみ:

-  model="deepseek-chat"
+  model="deepseek-v4-pro"

本番移行前はApidogでA/B比較推奨。非推奨期限までに切り替え必須です。

よくある質問

DeepSeek V4 APIは本番対応? はい。2026年4月23日公開済み。インフラはV3世代から継続利用。

Anthropic形式もサポート? はい。https://api.deepseek.com/anthropic/v1/messagesで同じ基盤モデルにアクセス可能。

コンテキストウィンドウは? 両モデルとも100万トークン。thinking_maxは384K以上推奨。

入力トークンの事前カウント方法は? OpenAIトークナイザー推奨。正確値はusageで返却。

APIでファインチューニング可能? 現時点では不可。Hugging Face経由の自己ホストBaseチェックポイントのみ対応。

無料トライアルは? アカウントレベルでの無料枠はなし。新規登録時に試用クレジット提供の場合あり。

Top comments (0)