DeepSeek API チュートリアル: V4 Flash / Pro を Python と JavaScript で使用
APIMaster を使用して、curl、Python、JavaScript で DeepSeek V4 Flash と Pro を呼び出します。API キーの設定、ストリーミング応答、一般的なエラーのトラブルシューティングを行います。
OpenAI SDK で DeepSeek を呼び出すことはできますか? はい。APIMaster を通じて、API ベース URL を https://apimaster.ai/v1 に設定し、APIMaster API キーを使用して、deepseek-v4-flash または deepseek-v4-pro を選択します。 このガイドでは、そのゲートウェイ構成について説明します。別のプロバイダーが発行したキーは互換性がありません。
最終テスト日: 2026-09-07。両モデルとも、Chat Completions テストで HTTP 200 と期待されるテキストを返しました。Codex CLI 0.153.4 と Claude Code 2.1.239 も、同じゲートウェイを通じてテキストおよびファイル読み取りツールのテストを完了しました。これらは短い機能チェックであり、長いコンテキストや信頼性のベンチマークではありません。以下の Python、JavaScript、ストリーミングの例は、対応する API の使用法を示しています。これらは個別のベンチマーク結果ではありません。
1. キーを取得してモデルを選択する
アカウントを作成し、API キーを取得します。キーが選択したモデルにアクセスでき、十分なクォータがあることを確認してください。現在の価格はモデルマーケットプレイスで確認できます。料金はルートや時間によって異なる場合があります。
| 設定 | 値 |
|---|---|
| SDK ベース URL | https://apimaster.ai/v1 |
| HTTP エンドポイント | POST https://apimaster.ai/v1/chat/completions |
| 認証 | Authorization: Bearer YOUR_APIMASTER_API_KEY |
| Flash モデル | deepseek-v4-flash |
| Pro モデル | deepseek-v4-pro |
両モデルとも同じリクエスト形式を使用します。どちらかのモデルから始めて、自分のワークロードで結果を比較してください。以下の YOUR_APIMASTER_API_KEY をローカルのキーに置き換えてください。ソース管理にコミットしたり、ブラウザコードに含めたりしないでください。
macOS / Linux:
export APIMASTER_API_KEY='YOUR_APIMASTER_API_KEY'
Windows PowerShell:
$env:APIMASTER_API_KEY = 'YOUR_APIMASTER_API_KEY'
これらの変数は現在のターミナルに適用されます。以下の例はそのターミナルから実行してください。
2. curl で最初のリクエストを行う
次のコマンドは、macOS / Linux シェル構文を使用しています。Windows ユーザーは、以下のクロスプラットフォームの Python の例を使用できます。
curl --fail-with-body 'https://apimaster.ai/v1/chat/completions' \
-H "Authorization: Bearer $APIMASTER_API_KEY" \
-H 'Content-Type: application/json' \
-d '{
"model": "deepseek-v4-flash",
"messages": [{"role": "user", "content": "Reply with exactly: DEEPSEEK_TEST_OK"}],
"max_tokens": 256,
"stream": false
}'
期待される結果: HTTP 200 と choices[0].message.content が DEEPSEEK_TEST_OK に等しいこと。model を deepseek-v4-pro に変更するだけでテストを繰り返せます。応答にはバージョン付きのモデル名が含まれる場合があります。リクエストでは上記の公開モデル ID を引き続き使用してください。
3. Python から DeepSeek を呼び出す
SDK をインストールします:
python -m pip install openai
deepseek_example.py として保存し、python deepseek_example.py を実行します:
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["APIMASTER_API_KEY"],
base_url="https://apimaster.ai/v1",
)
response = client.chat.completions.create(
model="deepseek-v4-flash",
messages=[{"role": "user", "content": "Reply with exactly: DEEPSEEK_TEST_OK"}],
max_tokens=256,
)
print(response.choices[0].message.content)
コーディングタスクの場合は、プロンプトを要件に置き換えてください。長い回答には出力予算を増やしてください。短いテスト予算は、完全なアプリケーションを生成するには適していません。
4. JavaScript から DeepSeek を呼び出す
サーバーサイドの Node.js 環境を使用します:
npm install openai
deepseek_example.mjs として保存し、node deepseek_example.mjs を実行します:
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.APIMASTER_API_KEY,
baseURL: "https://apimaster.ai/v1",
});
const response = await client.chat.completions.create({
model: "deepseek-v4-pro",
messages: [{ role: "user", content: "Reply with exactly: DEEPSEEK_TEST_OK" }],
max_tokens: 256,
});
console.log(response.choices[0].message.content);
5. 最終回答をストリーミングする
上記の Python の client を使用します:
stream = client.chat.completions.create(
model="deepseek-v4-flash",
messages=[{"role": "user", "content": "Explain a Python dictionary in three sentences."}],
max_tokens=1024,
stream=True,
)
for chunk in stream:
if not chunk.choices:
continue
text = chunk.choices[0].delta.content
if text:
print(text, end="", flush=True)
print()
これにより、content から最終回答テキストが出力されます。一部の応答では reasoning_content も公開されますが、これは最終回答とは別です。すべてのストリーミングチャンクにテキストや choices エントリが含まれているとは想定しないでください。
トラブルシューティング
| 症状 | 確認すべきこと |
|---|---|
| 401 | APIMaster キーを使用し、空白と Bearer ヘッダーを確認し、環境変数がこのターミナルで設定されていることを確認します。 |
| 403 またはモデルアクセスエラー | キーのモデル権限とアカウントの制限を確認します。 |
| 404 | /v1/chat/completions を使用します。/v1 を重複させたり、SDK ベース URL にエンドポイントを追加したりしないでください。 |
| 429 またはクォータ不足 | エラーボディを読み、レート制限とクォータ枯渇を区別します。レート制限にはバックオフで再試行し、クォータエラーには残高を確認します。 |
| 空または不完全な回答 | finish_reason を調べ、トークン予算を増やし、content と推論フィールドを区別します。 |
| タイムアウトまたは 5xx | タイムスタンプとリクエスト ID を記録し、バックオフで再試行し、続く場合はサポートに連絡します。バグレポートに完全なキーを送信しないでください。 |
よくある質問
API キーは DeepSeek 公式キーと同じですか?
いいえ。このチュートリアルでは、APIMaster が発行したキーと APIMaster のエンドポイントを使用します。キーとその発行プロバイダーのエンドポイントをペアで維持してください。
統合を書き直さずに Flash と Pro を切り替えられますか?
はい。キーが両方にアクセスできる場合、model フィールドを deepseek-v4-flash と deepseek-v4-pro の間で変更できます。各モデルの出力と現在の価格をワークロードで確認してください。
リクエストが成功したら、基盤となるモデルの同一性が証明されますか?
いいえ。HTTP の成功と返されたモデル名は、リクエストが完了したことを示しますが、モデルの同一性を独立して検証するものではありません。
これらのモデルを Codex と Claude Code で使用できますか?
テストした構成では、両 CLI でテキストおよびファイル読み取りツールのリクエストを完了しました。プロトコルは異なります: Codex は /v1/responses を使用し、Claude Code は /v1/messages を使用します。Chat Completions エンドポイントを CLI 構成に置き換えるのではなく、専用ガイドに従ってください。