DeepSeeK
功能介绍
DeepSeek API是基于DeepSeek大模型推出的接口服务,它支持多场景文本交互,能够快速生成高质量对话、文案、故事等内容,可用于文本摘要、智能问答、内容创作等场景。
URI
NLP推理服务支持使用盘古推理接口(V1推理接口)调用,也支持使用业界通用的OpenAi格式接口(V2推理接口)调用。
V1接口、V2接口的鉴权方式不同,请求体和返回体略有差异。
API分类 |
API访问路径(URI) |
---|---|
V1推理接口 |
POST /v1/{project_id}/deployments/{deployment_id}/chat/completions |
V2推理接口 |
POST /api/v2/chat/completions |
请求参数
V1接口支持Token鉴权方式,也支持API Key鉴权方式。
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
X-Auth-Token |
是 |
String |
用户Token。 用于获取操作API的权限。获取Token接口响应消息头中X-Subject-Token的值即为Token。 |
Content-Type |
是 |
String |
发送的实体的MIME类型,参数值为“application/json”。 |
使用API Key认证方式的请求Header参数见表 请求Header参数(API Key认证)。
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
X-Apig-AppCode |
是 |
String |
API Key值。 用于获取操作API的权限。API Key认证响应消息头中X-Apig-AppCode的值即为API Key。 |
Content-Type |
是 |
String |
发送的实体的MIME类型,参数值为“application/json”。 |
V2接口只支持API Key鉴权方式。
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
Authorization |
是 |
String |
用户创建应用接入获取的API Key,拼接“Bearer ”后的字符串。示例:Bearer d59******9C3。 |
Content-Type |
是 |
String |
发送的实体的MIME类型,参数值为“application/json”。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
messages |
是 |
Array of 表7 objects |
多轮对话问答对,包含两个属性:role和content。
messages参数可以帮助模型根据对话的上下文生成合适的回复。 |
model |
是 |
String |
使用的模型ID,根据所部署的模型填写,填写DeepSeek-R1或DeepSeek-V3。 |
stream |
否 |
boolean |
流式开关。流式输出协议为SSE(Server-Sent Events)协议。 如果开启流式,请赋值true。开启流式开关后,API会在生成文本的过程中,实时地将生成的文本发送给客户端,而不是等到生成完成后一次性将所有文本发送给客户端。 缺省值:false |
temperature |
否 |
Float |
用于控制生成文本的多样性和创造力。 控制采样随机性的浮点数。一般来说,temperature越低,适合完成确定性的任务。temperature越高,如0.9,适合完成创造性的任务。值为 0 意味着贪婪采样。当取值超过1,会大概率出现效果不可用问题。 temperature参数可以影响语言模型输出的质量和多样性,但也不是唯一的因素。还有其他一些参数,如top_p参数也可以用来调整语言模型的行为和偏好,但不建议同时更改这两temperature和top_p。 最小值:0,建议不要低于1e-5 最大值:1.0 缺省值:1.0 |
top_p |
否 |
Float |
核采样参数。作为调节采样温度的替代方案,模型会考虑前 top_p 概率的 token 的结果。0.1 就意味着只有包括在最高 10% 概率中的 token 会被考虑。 建议修改这个值或者更改 temperature,但不建议同时对两者进行修改。 取值范围:(0.0, 1.0] 缺省值:0.8 |
max_tokens |
否 |
Integer |
生成文本的最大输出token数量。 输入的文本加上生成的文本总量不能超过模型所能处理的最大长度。 最小值:1 最大值:8K token。 缺省值:默认部署时,token长度为最大值。 token是指模型处理和生成文本的基本单位。token可以是词或者字符的片段。模型的输入和输出的文本都会被转换成token,然后根据模型的概率分布进行采样或者计算。 |
presence_penalty |
否 |
Float |
用于调整模型对新Token的处理方式。即如果一个Token已经在之前的文本中出现过,那么模型在生成这个Token时会受到一定的惩罚。当presence_penalty的值为正数时,模型会更倾向于生成新的、未出现过的Token,即模型会更倾向于谈论新的话题。 最小值:-2 最大值:2 缺省值:0 (表示该参数未生效)。 |
frequency_penalty |
否 |
Float |
用于调整模型对频繁出现的Token的处理方式。即如果一个Token在训练集中出现的频率较高,那么模型在生成这个Token时会受到一定的惩罚。当frequency_penalty的值为正数时,模型会更倾向于生成出现频率较低的Token,即模型会更倾向于使用不常见的词汇。最小值:-2,最大值:2 最小值:-2 最大值:2 缺省值:0 (表示该参数未生效)。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
role |
是 |
String |
对话的角色,默认取值范围:system、user、assistant、tool、function。支持自定义。 如果需要模型以某个人设形象回答问题,可以将role参数设置为system。不使用人设时,可设置为user。 返回参数时,为固定值:assistant。 在一次会话请求中,人设只需要设置一次。 |
content |
是 |
String |
对话的内容,可以是任意文本,单位token。 设置多轮对话时,message中content个数不能超过20。 最小长度:1 最大长度:不同模型支持的token长度。 缺省值:None |
响应参数
非流式
状态码: 200
参数 |
参数类型 |
描述 |
---|---|---|
id |
String |
用来标识每个响应的唯一字符串。形式为:"chatcmpl-{random_uuid()}" |
object |
String |
固定为"chat.completion" |
created |
Integer |
响应生成的时间,单位:s。 |
model |
String |
请求模型ID,固定值:pangu。 |
choices |
Array of表9 ChatCompletionResponseChoice objects |
生成的文本列表。 |
usage |
表10 object |
该对话请求的token用量信息。该参数可以帮助用户了解和控制模型的使用情况,避免超出Tokens限制。 |
prompt_logprobs |
Object |
输入文本以及对应token的对数概率信息。 缺省值:null |
参数 |
参数类型 |
描述 |
---|---|---|
message |
表11 object |
生成的文本内容。 |
index |
Integer |
生成的文本在列表中的索引,从0开始。 |
finish_reason |
String |
模型停止生成 token 的原因。 取值范围:[stop, length, content_filter, tool_calls, insufficient_system_resource] stop:模型自然停止生成,或遇到 stop 序列中列出的字符串。 length :输出长度达到了模型上下文长度限制,或达到了 max_tokens 的限制。 content_filter:输出内容因触发过滤策略而被过滤。 insufficient_system_resource:系统推理资源不足,生成被打断。 缺省值:stop |
logprobs |
Object |
评估指标,表示推理输出的置信度。 缺省值:null |
stop_reason |
Union[Integer, String] |
导致生成停止的token id或者字符串。如果是遇到EOS token则返回默认值。如果是因为用户请求参数参数中指定的stop参数中的字符串或者token id,则返回对应的字符串或者token id。不是openai接口标准字段,但vllm接口支持。 缺省值:None |
参数 |
参数类型 |
描述 |
---|---|---|
prompt_tokens |
Number |
用户prompt中所包含的token数。 |
total_tokens |
Number |
该次对话请求中,所有token的数量。 |
completion_tokens |
Number |
推理模型所产生的答案的token数量。 |
参数 |
参数类型 |
描述 |
---|---|---|
role |
String |
生成这条消息的角色。固定为:assistant。 |
content |
String |
对话的内容。 最小长度:1 最大长度:不同模型支持的token长度。 |
reasoning_content |
String |
内容为在最终答案之前的推理内容(模型的思考过程)。 仅适用于 DeepSeek-R1 模型。 |
流式(stream参数为true)
状态码: 200
参数 |
参数类型 |
描述 |
---|---|---|
data |
CompletionStreamResponse object |
stream=true时,模型生成的消息以流式形式返回。生成的内容以增量的方式逐步发送回来,每个data字段均包含一部分生成的内容,直到所有data返回,响应结束。 |
参数 |
参数类型 |
描述 |
---|---|---|
id |
String |
该对话的唯一标识符。 |
created |
Integer |
创建聊天完成时的 Unix 时间戳(以秒为单位)。流式响应的每个 chunk 的时间戳相同。 |
model |
String |
生成该 completion 的模型名。 |
object |
String |
对象的类型, 其值为 chat.completion.chunk。 |
choices |
模型生成的 completion 的选择列表。 |
参数 |
参数类型 |
描述 |
---|---|---|
index |
Integer |
该 completion 在模型生成的 completion 的选择列表中的索引。 |
finish_reason |
String |
模型停止生成 token 的原因。 取值范围:[stop, length, content_filter, tool_calls, insufficient_system_resource]。 stop:模型自然停止生成,或遇到 stop 序列中列出的字符串。 length :输出长度达到了模型上下文长度限制,或达到了 max_tokens 的限制。 content_filter:输出内容因触发过滤策略而被过滤。 insufficient_system_resource:系统推理资源不足,生成被打断。 |
状态码: 400
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
错误码。 |
error_msg |
String |
错误信息。 |
请求示例
- 非流式
POST https://{endpoint}/v1/{project_id}/alg-infer/3rdnlp/service/{deployment_id}/v1/chat/completions Request Header: Content-Type: application/json X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG... Request Body: { "model":"DeepSeek-V3", "messages":[ { "role":"user", "content":"你好" }] }
- 流式(stream参数为true)
POST https://{endpoint}/v1/{project_id}/alg-infer/3rdnlp/service/{deployment_id}/v1/chat/completions Request Header: Content-Type: application/json X-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG... Request Body: { "model":"DeepSeek-V3", "messages":[ { "role":"user", "content":"你好" }], "stream":true }
响应示例
非流式
状态码: 200
OK
{
"id": "chat-9a75fc02e45d48db94f94ce38277beef",
"object": "chat.completion",
"created": 1743403365,
"model": "DeepSeek-V3",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "你好!有什么我可以帮助你的吗?",
"tool_calls": []
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 64,
"total_tokens": 73,
"completion_tokens": 9
}
}
流式(stream参数为true)
状态码: 200
OK
data:{"id":"chat-97313a4bc0a342558364345de0380291","object":"chat.completion.chunk","created":1743404317,"model":"DeepSeek-V3","choices":[{"index":0,"delta":{"role":"assistant"},"logprobs":null,"finish_reason":null}]
data:{"id":"chat-97313a4bc0a342558364345de0380291","object":"chat.completion.chunk","created":1743404317,"model":"DeepSeek-V3","choices":[{"index":0,"delta":{"content":"你好"},"logprobs":null,"finish_reason":null}]}
data:{"id":"chat-97313a4bc0a342558364345de0380291","object":"chat.completion.chunk","created":1743404317,"model":"DeepSeek-V3","choices":[{"index":0,"delta":{"content":",有什么我能帮您的吗?"},"logprobs":null,"finish_reason":"stop","stop_reason":null}]}
data:[DONE]
流式(stream参数为true,触发内容审核)
状态码: 200
OK
event:moderation data:{"suggestion":"block","reply":"作为AI语言模型,我的目标是以积极、正向和安全的方式提供帮助和信息,您的问题超出了我的回答范围。"}
data:[DONE]
状态码
请参见状态码。
错误码
请参见错误码。