DeepSeek API 调用教程:V4 Flash / Pro、Python 与 JavaScript
通过 APIMaster 使用 curl、Python 和 JavaScript 调用 DeepSeek V4 Flash 和 Pro。配置您的 API 密钥,流式传输响应并排查常见错误。
您能使用 OpenAI SDK 调用 DeepSeek 吗?可以。通过 APIMaster,将 API Base 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 Base 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 shell 语法。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 Base URL。 |
| 429 或配额不足 | 阅读错误正文以区分速率限制和配额耗尽。对于速率限制,使用退避重试;对于配额错误,检查余额。 |
| 空或截断的答案 | 检查 finish_reason,增加令牌预算,并区分 content 和推理字段。 |
| 超时或 5xx | 记录时间戳和请求 ID,使用退避重试,如果持续存在请联系支持。切勿在错误报告中发送您的完整密钥。 |
常见问题解答
API 密钥与 DeepSeek 官方密钥相同吗?
不同。本教程使用 APIMaster 颁发的密钥和 APIMaster 的端点。请将密钥与其颁发提供商的端点配对使用。
我可以在不重写集成的情况下在 Flash 和 Pro 之间切换吗?
可以,只要您的密钥可以访问这两个模型,就可以在 deepseek-v4-flash 和 deepseek-v4-pro 之间更改 model 字段。检查每个模型的输出和您工作负载的当前定价。
成功的请求是否证明底层模型的身份?
不能。HTTP 成功和返回的模型名称仅表明请求已完成;它们不能独立验证模型身份。
我可以在 Codex 和 Claude Code 中使用这些模型吗?
我们测试的配置在两个 CLI 中均完成了文本和文件读取工具请求。协议不同:Codex 使用 /v1/responses,而 Claude Code 使用 /v1/messages。请遵循专门的指南,而不是将 Chat Completions 端点替换到 CLI 配置中。