DeepSeek V4は、リリース初日からAPIが利用可能です。モデルIDはdeepseek-v4-proとdeepseek-v4-flashで、OpenAI互換エンドポイント(ベースURL:https://api.deepseek.com)が提供されているため、既存のOpenAIクライアントはベースURLを変更するだけでそのまま利用できます。
このガイドでは、認証、主要パラメータ、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-thinking/thinking/thinking_max)をサポート。 - 推奨パラメータは
temperature=1.0, top_p=1.0。OpenAI/GPT-5.5/Claudeのデフォルト値は避ける。 - レガシーID(
deepseek-chat/deepseek-reasoner)は2026年7月24日に非推奨。移行必須。 - リクエスト再実行や思考モード比較、APIキーの安全管理にはApidogダウンロードを推奨。
前提条件
初回リクエストまでに以下を準備してください。
-
platform.deepseek.comで2ドル以上チャージしたDeepSeek開発者アカウント。残高不足時は
402 Insufficient Balance。 - プロジェクトスコープのAPIキー。本番運用では必ずプロジェクトキーを利用。
- OpenAI互換SDK(Python
openai>=1.30.0/Nodeopenai@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.codeとerror.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 | 繰り返されるトークンにペナルティ。 |
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クレジット消費と差分比較を最小化するためのワークフロー例:
- Apidogをダウンロードしプロジェクト作成。
-
{{DEEPSEEK_API_KEY}}を秘密変数として登録。 -
Authorization: Bearer {{DEEPSEEK_API_KEY}}ヘッダー付きで{{BASE_URL}}/chat/completionsにPOSTリクエスト保存。 -
modelとthinking_modeをパラメータ化し、A/Bテストを柔軟に。 - 各実行で
usage.reasoning_tokensをビジュアルに確認し、コスト最適化。
既存のGPT-5.5 APIコレクションと同様に、ベースURLとモデルIDだけ切り替えることで即座に比較検証が可能です。
エラー処理
OpenAI準拠のエンベロープ。主要なエラーと対応策:
<!--kg-card-begin: html-->
| コード | 意味 | 修正 |
|---|---|---|
| 400 | 不正なリクエスト | JSONスキーマ、特にmessagesとtoolsを確認してください。 |
| 401 | 無効なキー | platform.deepseek.comで再生成してください。 |
| 402 | 残高不足 | アカウントにチャージしてください。 |
| 403 | モデルが許可されていません | キーのスコープとモデルIDのスペルを確認してください。 |
| 422 | パラメータが範囲外です | おそらくmax_tokensまたはthinking_modeが一致していません。 |
| 429 | レート制限 | 時間を置いてから、指数的なジッターで再試行してください。 |
| 500 | サーバーエラー | 一度再試行してください。繰り返す場合はステータスページを確認してください。 |
| 503 | 過負荷 | V4-Flashにフォールバックするか、30秒後に再試行してください。 |
429・5xx系は指数バックオフ付きリトライ、4xxは論理バグなので自動リトライしないこと。
コスト管理パターン
コスト予測と最適化のための運用パターン:
- デフォルトはV4-Flash利用。 品質差分が明確な場合のみV4-Pro適用。
-
thinking_maxは機能フラグで制御。 正確性重視時のみ利用し、無制限運用は避ける。 -
max_tokensで出力上限設定。 通常2,000トークンで十分。1Mウィンドウは入力用。 -
全リクエストで
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)