通过 OpenAI 兼容网关调用 DeepSeek API:Python、Node 与 curl 示例
发布于 2026-11-11
只要网关用 OpenAI Chat Completions 格式提供 DeepSeek 模型,你就可以直接用标准的 OpenAI SDK,只改两项设置:Base URL 和密钥。本文用 OriginCoder 这个 AI API 网关,演示 Python、Node.js 和 curl 的写法。如果你搜的是「DeepSeek API」,简短版本是:在 DeepSeek 分组里创建 Key,把你的 OpenAI 客户端指向 https://origincoder.com/v1,再传入 DeepSeek 的模型名。
利益声明:我们运营 OriginCoder,所以我们对网关这条路线有立场。你也可以直接用 DeepSeek 官方 API;下面的代码换成 DeepSeek 官方的 Base URL 和密钥照样能跑,方便你对比。内容截至 2026 年 11 月。
该用哪个模型名
请使用控制台模型广场里 DeepSeek 对应的准确模型名。我们不在这里列出具体名字,因为 DeepSeek 发布新版本时模型集合和名称都会变化,以模型价格页上的实时列表为准。示例里用 your-deepseek-model 作占位,请换成从该页复制的名字。
准备工作
- 一个 OriginCoder 账号并有余额。注册账号。
- 一个属于 DeepSeek 模型分组的 API Key。分组决定这个 Key 能调用哪些模型。只属于 Claude 分组的 Key 调用 DeepSeek 的名字会返回「模型不存在」。
- 任意 OpenAI 兼容客户端:Python 或 Node.js 的官方 OpenAI SDK,或者直接发 HTTP。
curl
curl https://origincoder.com/v1/chat/completions \
-H "Authorization: Bearer sk-xxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "your-deepseek-model",
"messages": [{"role": "user", "content": "用两句话解释什么是互斥锁。"}]
}'
Python
from openai import OpenAI
client = OpenAI(
base_url="https://origincoder.com/v1",
api_key="sk-xxxx",
)
resp = client.chat.completions.create(
model="your-deepseek-model",
messages=[{"role": "user", "content": "用两句话解释什么是互斥锁。"}],
)
print(resp.choices[0].message.content)
Node.js
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://origincoder.com/v1",
apiKey: "sk-xxxx",
});
const resp = await client.chat.completions.create({
model: "your-deepseek-model",
messages: [{ role: "user", content: "用两句话解释什么是互斥锁。" }],
});
console.log(resp.choices[0].message.content);
不要把真实密钥写死在代码里,请从环境变量读取,例如 process.env.ORIGINCODER_API_KEY 或 os.environ["ORIGINCODER_API_KEY"]。
流式输出
和 OpenAI API 完全一样:设置 stream=True(Python)或 stream: true(Node.js),然后遍历返回的数据块。
推理模型
部分 DeepSeek 模型会把推理过程和最终答案分开返回。网关是否、以及如何透传这个字段,取决于具体模型和网关版本,所以在写依赖它的代码之前,请先用你的模型实测并查看原始响应。
为什么通过网关调用 DeepSeek
- 一个 Key 对接多个厂商。 改个模型名,代码就能在 DeepSeek、Claude、GPT、Gemini 之间切换,共用一份余额。什么情况下这很重要,见 AI 网关是什么。
- 逐请求记录。 每次调用都会出现在控制台使用记录里,带 token 数和费用。
- 账单集中在一处, 不用在每个厂商分别开账号。
取舍也是网关的通用问题:你的提示词会经过第三方,网关也可能落后于厂商的最新功能。完整的权衡清单请读 LLM 网关对比。
常见问题排查
| 现象 | 可能原因 | 处理 |
|---|---|---|
| 401 或「API Key 无效」 | Key 错误或被禁用 | 重新从控制台复制 |
| 404 | Base URL 缺少 /v1 或写了两遍 |
OpenAI 客户端使用 https://origincoder.com/v1 |
| 「模型不存在」或 403 | Key 所在分组不提供该模型,或名字拼错 | 从模型价格页复制名字,并使用 DeepSeek 分组的 Key |
| 429 | 触发速率限制 | 带退避重试,并在控制台检查该 Key 的限额 |
| 余额相关报错 | 没有余额 | 在控制台充值 |
价格与安全
DeepSeek 在 OriginCoder 上的按 token 价格显示在模型价格页,可能与 DeepSeek 官方价格不同,决定前请对比。请阅读服务条款了解你的数据如何处理,并避免发送机密信息。OriginCoder 是独立平台,与 DeepSeek 没有任何关联。
想用编程 Agent 而不是直接调 API?见 Claude Code 接入自定义 API 地址和 Codex CLI 接入自定义 API 地址。