基本信息

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)的形式以流式发送消息增量。消息流以 data: [DONE] 结尾。

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 的对数概率。指定此参数时,logprobs 必须为 true

-

响应参数

参数 类型 描述

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
    }
}