0%

DeepSeek Chat Completion API 申请及使用

DeepSeek 是一款非常强大的 AI 对话系统,只要输入提示词,就能在短短几秒内生成流畅自然的回复。DeepSeek-V3 以其出色的语言理解和生成能力在业界独树一帜,如今,DeepSeek-V3 早已在各个行业和领域广泛应用,其影响力愈发显著。无论是日常对话、创意写作,还是专业咨询、代码编程,DeepSeek-V3 都能提供令人惊叹的智能协助,极大地提高了人类的工作效率和创造力。

本文档主要介绍 DeepSeek Chat Completion API 操作的使用流程,利用它我们可以轻松使用官方 DeepSeek 的对话功能。

申请流程

要使用 DeepSeek Chat Completion API,首先可以到 DeepSeek Chat Completion API 页面点击「Acquire」按钮,获取请求所需要的凭证:

如果你尚未登录或注册,会自动跳转到登录页面邀请您来注册和登录,登录注册之后会自动返回当前页面。

在首次申请时会有免费额度赠送,可以免费使用该 API。

基本使用

接下来就可以在界面上填写对应的内容,如图所示:

在第一次使用该接口时,我们至少需要填写三个内容,一个是 authorization,直接在下拉列表里面选择即可。另一个参数是 modelmodel 就是我们选择使用 DeepSeek 官网模型类别,这里我们主要有 4 种模型,详情可以看我们提供的模型。最后一个参数是messagesmessages是我们输入的提问词数组,它是一个数组,表示可以同时上传多个提问词,每个提问词包含了 rolecontent,其中 role 表示提问者的角色,我们提供了三种身份,分别为 userassistantsystem 。另一个 content 就是我们提问的具体内容。

同时您可以注意到右侧有对应的调用代码生成,您可以复制代码直接运行,也可以直接点击「Try」按钮进行测试。

常用可选参数:

  • max_tokens:限制单次回复的最大 token 数。
  • temperature:生成随机性,0-2 之间,值越大越发散。
  • n:一次生成多少条候选回复。
  • response_format:返回格式设置。

调用之后,我们发现返回结果如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{
"id": "chatcmpl-050bf20a-ebcd-498a-bf6e-63ee0738013b",
"object": "chat.completion",
"created": 1764846609,
"model": "deepseek-v3.2-exp",
"usage": {
"prompt_tokens": 8,
"completion_tokens": 11,
"total_tokens": 19
},
"choices": [
{
"index": 0,
"message": {
"content": "Hello! 😊 How can I help you today?",
"role": "assistant"
},
"refs": null,
"logprobs": null,
"finish_reason": "stop",
"service_tier": null
}
]
}

返回结果一共有多个字段,介绍如下:

  • id,生成此次对话任务的 ID,用于唯一标识此次对话任务。
  • created,此次对话任务的创建时间信息。
  • model,选择的 DeepSeek 官网模型。
  • choicesDeepSeek 针对提问词给于的回答信息。
  • usage:针对本次问答对 token 的统计信息。

其中 choices 是包含了 DeepSeek 的回答信息,它里面的 choices 是 DeepSeek的回答信息,可以发现如图所示。

可以看到,choices 里面的 content 字段包含了 DeepSeek 回复的具体内容。

流式响应

该接口也支持流式响应,这对网页对接十分有用,可以让网页实现逐字显示效果。

如果想流式返回响应,可以更改请求头里面的 stream 参数,修改为 true

修改如图所示,不过调用代码需要有对应的更改才能支持流式响应。

stream 修改为 true 之后,API 将逐行返回对应的 JSON 数据,在代码层面我们需要做相应的修改来获得逐行的结果。

Python 样例调用代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import requests

url = "https://api.acedata.cloud/deepseek/chat/completions"

headers = {
"accept": "application/json",
"authorization": "Bearer {token}",
"content-type": "application/json"
}

payload = {
"model": "deepseek-v3",
"messages": [{"role":"user","content":"hello"}],
"stream": True
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)

输出效果如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": "Hello", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": "!", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": "", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": " 😊", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": " How", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": " can", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": " I", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": " assist", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": " you", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": " today", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": "?", "role": "assistant"}, "logprobs": null, "finish_reason": null, "index": 0}], "usage": null}

data: {"id": "o7X27b1-2kFHot-97098d957dd1d39a-PDX", "object": "chat.completion.chunk", "created": 1755437709, "model": "deepseek-v3", "system_fingerprint": null, "choices": [{"delta": {"content": "", "role": "assistant"}, "logprobs": null, "finish_reason": "stop", "index": 0}], "usage": {"prompt_tokens": 4, "completion_tokens": 12, "total_tokens": 16, "prompt_tokens_details": {"cached_tokens": 0, "text_tokens": 0, "audio_tokens": 0, "image_tokens": 0}, "completion_tokens_details": {"text_tokens": 0, "audio_tokens": 0, "reasoning_tokens": 0}, "input_tokens": 0, "output_tokens": 0, "input_tokens_details": null}}

data: [DONE]

可以看到,响应里面有许多 datadata 里面的 choices 即为最新的回答内容,与上文介绍的内容一致。choices 是新增的回答内容,您可以根据结果来对接到您的系统中。同时流式响应的结束是根据 data 的内容来判断的,如果内容为 [DONE],则表示流式响应回答已经全部结束。返回的 data 结果一共有多个字段,介绍如下:

  • id,生成此次对话任务的 ID,用于唯一标识此次对话任务。
  • model,选择的 DeepSeek 官网模型。
  • choices,DeepSeek 针对提问词给于的回答信息。

JavaScript 也是支持的,比如 Node.js 的流式调用代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
const options = {
method: "post",
headers: {
"accept": "application/json",
"authorization": "Bearer {token}",
"content-type": "application/json"
},
body: JSON.stringify({
"model": "deepseek-v3",
"messages": [{"role":"user","content":"hello"}],
"stream": true
})
};

fetch("https://api.acedata.cloud/deepseek/chat/completions", options)
.then(response => response.json())
.then(response => console.log(response))
.catch(err => console.error(err));

Java 样例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
JSONObject jsonObject = new JSONObject();
jsonObject.put("model", "deepseek-v3");
jsonObject.put("messages", [{"role":"user","content":"hello"}]);
jsonObject.put("stream", true);
MediaType mediaType = "application/json; charset=utf-8".toMediaType();
RequestBody body = jsonObject.toString().toRequestBody(mediaType);
Request request = new Request.Builder()
.url("https://api.acedata.cloud/deepseek/chat/completions")
.post(body)
.addHeader("accept", "application/json")
.addHeader("authorization", "Bearer {token}")
.addHeader("content-type", "application/json")
.build();

OkHttpClient client = new OkHttpClient();
Response response = client.newCall(request).execute();
System.out.print(response.body!!.string())

其他语言可以另外自行改写,原理都是一样的。

多轮对话

如果您想要对接多轮对话功能,需要对 messages 字段上传多个提问词,多个提问词的具体示例如下图所示:

Python 样例调用代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import requests

url = "https://api.acedata.cloud/deepseek/chat/completions"

headers = {
"accept": "application/json",
"authorization": "Bearer {token}",
"content-type": "application/json"
}

payload = {
"model": "deepseek-v3",
"messages": [{"role":"user","content":"Hello"},{"role":"assistant","content":"Hi! How can I assist you today?"},{"role":"user","content":"What I say just now?"}]
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)

通过上传多个提问词,就可以轻松实现多轮对话,可以得到如下回答:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{
"id": "as-8g3qzbsw2b",
"object": "chat.completion",
"created": 1755437895,
"model": "deepseek-v3",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "You just said: \n\n**\"Hello\"** \n\nAnd I responded with: \n\n**\"Hi! How can I assist you today?\"** \n\nThen you followed up with: \n\n**\"What I say just now?\"** \n\nLet me know how I can help! 😊"
},
"finish_reason": "stop",
"flag": 0
}
],
"usage": {
"prompt_tokens": 22,
"completion_tokens": 57,
"total_tokens": 79
}
}

可以看到,choices 包含的信息与基本使用的内容是一致的,这个包含了 DeepSeek 针对多个对话进行回复的具体内容,这样就可以根据多个对话内容来回答对应的问题了。

错误处理

在调用 API 时,如果遇到错误,API 会返回相应的错误代码和信息。例如:

  • 400 token_mismatched:Bad request, possibly due to missing or invalid parameters.
  • 400 api_not_implemented:Bad request, possibly due to missing or invalid parameters.
  • 401 invalid_token:Unauthorized, invalid or missing authorization token.
  • 429 too_many_requests:Too many requests, you have exceeded the rate limit.
  • 500 api_error:Internal server error, something went wrong on the server.

错误响应示例

1
2
3
4
5
6
7
8
{
"success": false,
"error": {
"code": "api_error",
"message": "fetch failed"
},
"trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

结论

通过本文档,您已经了解了如何使用 DeepSeek Chat Completion API 轻松实现官方 DeepSeek 的对话功能。希望本文档能帮助您更好地对接和使用该 API。如有任何问题,请随时联系我们的技术支持团队。