对话补全
基本信息
Action:/chat/completions
Method: POST
Content-Type:application/json
Accept:application/json
Authorization:需提前在 API 密钥管理中创建和获取。
请求参数
参数 | 类型 | 作用 | 是否必须 | 示例 |
---|---|---|---|---|
messages |
对象数组 |
对话的消息列表。 |
是 |
{ "content": "You are a helpful assistant", "role": "system" } |
model |
字符串 |
要使用的模型名称 |
是 |
DeepSeek-V3 |
frequency_penalty |
数值 |
介于 -2.0 和 2.0 之间的数字。如果该值为正,那么新 token 会根据其在已有文本中的出现频率受到相应的惩罚,降低模型重复相同内容的可能性。 |
否 |
默认值为 0 |
max_tokens |
数值 |
介于 1 到 8192 间的整数,限制一次请求中模型生成 completion 的最大 token 数。输入 token 和输出 token 的总长度受模型的上下文长度的限制。 |
否 |
如未指定 max_tokens 参数,默认使用 4096。 |
presence_penalty |
数值 |
介于 -2.0 和 2.0 之间的数字。如果该值为正,那么新 token 会根据其是否已在已有文本中出现受到相应的惩罚,从而增加模型谈论新主题的可能性。 |
否 |
默认值为 0 |
response_format |
对象数组 |
指定模型必须输出的格式,支持指定 text、json_object,默认为 text。 |
否 |
{ "type": "text" } |
stop |
字符串 |
一个 string 或最多包含 16 个 string 的 list,在遇到这些词时,API 将停止生成更多的 token。 |
否 |
- |
stream |
布尔类型 |
如果设置为 True,将会以 SSE(server-sent events)的形式以流式发送消息增量。消息流以 |
否 |
false |
temperature |
数值 |
采用温度,介于 0 和 2 之间。更高的值,如 0.8,会使输出更随机,而更低的值,如 0.2,会使其更加集中和确定。 我们通常建议可以更改这个值或者更改 top_p,但不建议同时对两者进行修改。 |
否 |
默认值为 1 |
top_p |
数值 |
作为调节采样温度的替代方案,模型会考虑前 top_p 概率的 token 的结果。所以 0.1 就意味着只有包括在最高 10% 概率中的 token 会被考虑。 我们通常建议修改这个值或者更改 temperature,但不建议同时对两者进行修改。 |
否 |
默认值为 1 |
tools |
对象数组 |
模型可能会调用的 tool 的列表。目前,仅支持 function 作为工具。使用此参数来提供以 JSON 作为输入参数的 function 列表。最多支持 128 个 function。 |
否 |
- |
tool_choice |
对象 |
控制模型调用 tool 的行为。 |
否 |
- |
logprobs |
布尔类型 |
是否返回所输出 token 的对数概率。如果为 true,则在 message 的 content 中返回每个输出 token 的对数概率。 |
否 |
false |
top_logprobs |
整数 |
一个介于 0 到 20 之间的整数 N,指定每个输出位置返回输出概率 top N 的 token,且返回这些 token 的对数概率。指定此参数时, |
否 |
- |
响应参数
参数 | 类型 | 描述 |
---|---|---|
id |
字符串 |
该对话的唯一标识符。 |
choice |
对象数组 |
模型生成的 completion 的选择列表。 |
created |
整数 |
创建聊天完成时的 Unix 时间戳(以秒为单位)。 |
model |
字符串 |
生成该 completion 的模型名。 |
object |
字符串 |
对象的类型,其值为 chat.completion |
usage |
对象 |
该对话补全请求的用量信息。 |
-
choices
为对象数组类型,其相关参数说明:参数 类型 描述 finish_reason
字符串
模型停止生成 token 的原因。
-
stop
:模型自然停止生成,或遇到 stop 序列中列出的字符串。 -
length
:输出长度达到了模型上下文长度限制,或达到了 max_tokens 的限制。 -
content_filter
:输出内容因触发过滤策略而被过滤。 -
insufficient_system_resource
:系统推理资源不足,生成被打断。
index
整数
该 completion 在模型生成的 completion 的选择列表中的索引。
message
对象
模型生成的 completion 消息。
logprobs
对象
该 choice 的对数概率信息。
-
-
usage
为对象数组类型,其相关参数说明:参数 类型 描述 completion_tokens
整数
模型 completion 产生的 token 数。
prompt_tokens
整数
用户 prompt 所包含的 token 数。该值等于 prompt_cache_hit_tokens + prompt_cache_miss_tokens
prompt_cache_hit_tokens
整数
用户 prompt 中,命中上下文缓存的 token 数。
prompt_cache_miss_tokens
整数
用户 prompt 中,未命中上下文缓存的 token 数。
total_tokens
整数
该请求中,所有 token 的数量(prompt + completion)。
completion_tokens_details
对象
completion tokens 的详细信息。
请求示例
Curl
curl -i -X POST \
-H "Content-Type:application/json" \
-H "Authorization:sk-xxxxxxxxxx" \
-H "Accept:application/json" \
-d \
'{
"messages": [
{
"content": "You are a helpful assistant",
"role": "system"
},
{
"content": "Hi",
"role": "user"
}
],
"model": "DeepSeek-V3",
"frequency_penalty": 0,
"max_tokens": 2048,
"presence_penalty": 0,
"response_format": {
"type": "text"
},
"stop": null,
"stream": false,
"stream_options": null,
"temperature": 1,
"top_p": 1,
"tools": null,
"tool_choice": "none",
"logprobs": false,
"top_logprobs": null
}' \
'https://openapi.coreshub.cn/v1/chat/completions'
Python
from openai import OpenAI
client = OpenAI(api_key='sk-xxxxxxxxxx', base_url='https://openapi.coreshub.cn/v1')
response = client.chat.completions.create(
model="DeepSeek-V3",
messages=[
{"role": "system", "content": "You are a helpful assistant"},
{"role": "user", "content": "Hello"},
],
max_tokens=1024,
temperature=0.7,
stream=False
)
print(response.choices[0].message.content)
响应示例
{
"id": "bc133d2cccf8494dacb8eea520ce01bd",
"object": "chat.completion",
"created": 1739860456,
"model": "DeepSeek-V3",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Hello! How can I assist you today? 😊",
"tool_calls": null
},
"logprobs": null,
"finish_reason": "stop",
"matched_stop": 1
}
],
"usage": {
"prompt_tokens": 9,
"total_tokens": 21,
"completion_tokens": 12,
"prompt_tokens_details": null
}
}