DeepSeek API调用手册
发送文本并取得模型回答
通过非思考、非流式请求完成一次短文本摘要,检查是否完整返回。
← 返回平台功能接入准备
- 已创建服务端 API Key,账号有可用余额。
- 本例使用正式 API,会产生模型用量。
准备环境变量
示例值需要替换为自己的凭证或资源 ID。代码在本机或服务端运行;密钥不应放进公开网页。
DEEPSEEK_API_KEY- 在 DeepSeek API keys 创建,只在本地终端或服务端设置。
export DEEPSEEK_API_KEY='replace_with_your_deepseek_key'以上 export 适用于 macOS / Linux 的终端。按调用步骤保存代码文件,再在同一终端执行。
调用步骤
- 01
设置 DEEPSEEK_API_KEY,复制下方任一语言代码。
- 02
替换 messages 里的任务文本后执行,检查 choices 和 finish_reason。
- 03
结合 usage 核对用量,确认模型回答后再用于业务。
调用 01
请求文本摘要
限制输出预算,先验证单次 Chat Completions 请求。
POST
https://api.deepseek.com/chat/completions请求头
AuthorizationBearer ${DEEPSEEK_API_KEY}Content-Typeapplication/json
参数说明
参数表可左右滑动,查看完整说明。
| 字段 / 位置 | 类型 / 必填 | 说明 |
|---|---|---|
model请求体 | string必填 | 本例 deepseek-flash。 |
messages请求体 | array必填 | 按顺序传入角色和文本。 |
thinking.type请求体 | string可选 | 本例 disabled,关闭思考。 |
max_tokens请求体 | integer可选 | 本例 512,限制生成预算。 |
stream请求体 | boolean可选 | 本例 false,返回 JSON。 |
调用代码
替换示例 ID 与请求体内容后运行。cURL 会报 HTTP 错误,业务状态还需按下方返回示例核对。
cat > request-body.json <<'JSON'
{
"model": "deepseek-flash",
"messages": [
{
"role": "system",
"content": "用中文简洁回答,只依据用户给出的内容。"
},
{
"role": "user",
"content": "把笔记概括为一句话:周三完成接口联调,周四检查超时和错误处理。"
}
],
"thinking": {
"type": "disabled"
},
"max_tokens": 512,
"stream": false
}
JSON
# 执行后核对返回 JSON 的业务状态;HTTP 200 仍可能包含业务错误。
curl --silent --show-error --fail-with-body \
--request POST \
--url "https://api.deepseek.com/chat/completions" \
--header "Authorization: Bearer ${DEEPSEEK_API_KEY}" \
--header "Content-Type: application/json" \
--data-binary @request-body.json
import json
import os
import re
import urllib.request
import urllib.error
def expand(value):
return re.sub(r"\$\{([A-Z][A-Z0-9_]*)\}",
lambda match: os.environ[match.group(1)], value)
url = expand("https://api.deepseek.com/chat/completions")
headers = {
"Authorization": expand("Bearer ${DEEPSEEK_API_KEY}"),
"Content-Type": expand("application/json"),
}
body = {
"model": "deepseek-flash",
"messages": [
{
"role": "system",
"content": "用中文简洁回答,只依据用户给出的内容。",
},
{
"role": "user",
"content": "把笔记概括为一句话:周三完成接口联调,周四检查超时和错误处理。",
},
],
"thinking": {
"type": "disabled",
},
"max_tokens": 512,
"stream": False,
}
data = json.dumps(body, ensure_ascii=False).encode("utf-8")
request = urllib.request.Request(url, data=data, headers=headers, method="POST")
try:
with urllib.request.urlopen(request, timeout=30) as response:
result = json.load(response)
except urllib.error.HTTPError as error:
print(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}")
raise SystemExit(1)
print(json.dumps(result, ensure_ascii=False, indent=2))
// Node.js 22+,保存为 request.mjs 后运行 node request.mjs
function expand(value) {
return value.replace(/\$\{([A-Z][A-Z0-9_]*)\}/g, (_, name) => {
if (!process.env[name]) throw new Error(`缺少环境变量 ${name}`);
return process.env[name];
});
}
const url = expand("https://api.deepseek.com/chat/completions");
const headers = Object.fromEntries(
Object.entries({
"Authorization": "Bearer ${DEEPSEEK_API_KEY}",
"Content-Type": "application/json"
}).map(([key, value]) => [key, expand(value)])
);
const body = {
"model": "deepseek-flash",
"messages": [
{
"role": "system",
"content": "用中文简洁回答,只依据用户给出的内容。"
},
{
"role": "user",
"content": "把笔记概括为一句话:周三完成接口联调,周四检查超时和错误处理。"
}
],
"thinking": {
"type": "disabled"
},
"max_tokens": 512,
"stream": false
};
const response = await fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
signal: AbortSignal.timeout(30000),
});
const text = await response.text();
if (!response.ok) throw new Error(`HTTP ${response.status}: ${text}`);
const result = JSON.parse(text);
console.log(JSON.stringify(result, null, 2));
返回示例
虚构结构示意,非实测;message.content 是回答,usage 数字仅示意。 以下为结构示意,非本站实测结果。
{
"id": "example-completion-id",
"object": "chat.completion",
"model": "deepseek-flash",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "周三完成接口联调,周四检查超时与错误处理。"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 40,
"completion_tokens": 20,
"total_tokens": 60
}
}常见错误与排查
HTTP 401Key 无法认证。- 核对 DeepSeek Key 是否有效且未撤销。
HTTP 402账号余额不足。- 在官方控制台核对可用余额,不要不断重试。
HTTP 400 / 422参数或消息格式无效。- 检查 model、messages 和模式参数,按响应错误调整。
HTTP 429账号触发限流。- 降低并发并退避,不用更多 Key 规避账号限额。
调用注意
- finish_reason=length 表示输出可能截断,不能直接当成完整业务结果。
注意事项
- 代码打印完整响应以便排错,接入业务时再提取 message.content。
- 改成流式时需要实现 SSE 解析,不能沿用本例一次性 JSON 读取。
核验来源
本站按官方资料整理本场景的必要调用步骤与代码,覆盖范围以本页列出的接口为准。官方资料用于追溯规范及查看变更。
- 01创建 Key 与根地址核验日期 2026-10-15
- 02价格与扣费核验日期 2026-10-15
- 03错误码核验日期 2026-10-15
- 04Chat Completions 请求参数核验日期 2026-10-15