平台支持 DeepSeek 的推理模型 deepseek-reasoner。在输出最终回答之前,模型会先输出一段思维链内容,以提升最终答案的准确性。

前提条件

在使用推理模型前,需安装并升级 OpenAI SDK

API 参数

  • 输入参数

    • max_tokens:最终回答的最大长度(不含思维链输出),每个模型的默认值和最大值不相同,需参考平台文本对话窗口中的默认和最大值。

  • 输出字段

    • reasoning_content:思维链内容,与 content 同级,访问方法参看访问示例

    • content:最终回答内容.

  • 上下文长度:平台中 DeepSeek-R1 和 DeepSeek-V3 模型最大上下文长度为 64K,其他 DeepSeek 蒸馏模型最大上下文长度为 32K。

  • 支持的功能对话补全

  • 不支持的功能:Function Call、Json Output、FIM 补全 (Beta)。

上下文拼接

每进行一轮对话过程中,模型均会输出思维链内容(reasoning_content)和最终回答(content),在下一轮对话中,之前轮对话中输出的思维链内容不会被拼接在上下文中。

注意

API 调用时不能传入 reasoning_content 参数,否则 API 将会返回 400 错误。

model reasonner 1

访问示例

以 Python 语言为例,展示如何访问思维链和最终回答,以及如何在多轮对话中进行上下文拼接。

说明

示例中的 api_key 需提前在 API 密钥管理中创建和获取

非流式

from openai import OpenAI
client = OpenAI(api_key='sk-xxxxxxxxxx', base_url='https://openapi.coreshub.cn/v1')


# Round 1
messages = [{"role": "user", "content": "9.11 and 9.8, which is greater?"}]
response = client.chat.completions.create(
    model="DeepSeek-R1",
    messages=messages
)

reasoning_content = response.choices[0].message.reasoning_content
content = response.choices[0].message.content

# Round 2
messages.append({'role': 'assistant', 'content': content})
messages.append({'role': 'user', 'content': "How many Rs are there in the word 'strawberry'?"})
response = client.chat.completions.create(
    model="DeepSeek-R1",
    messages=messages
)
# ...

流式

from openai import OpenAI
client = OpenAI(api_key='sk-xxxxxxxxxx', base_url='https://openapi.coreshub.cn/v1')

# Round 1
messages = [{"role": "user", "content": "9.11 and 9.8, which is greater?"}]
response = client.chat.completions.create(
    model="DeepSeek-R1",
    messages=messages,
    stream=True
)

reasoning_content = ""
content = ""

for chunk in response:
    if chunk.choices[0].delta.reasoning_content:
        reasoning_content += chunk.choices[0].delta.reasoning_content
    else:
        content += chunk.choices[0].delta.content

# Round 2
messages.append({"role": "assistant", "content": content})
messages.append({'role': 'user', 'content': "How many Rs are there in the word 'strawberry'?"})
response = client.chat.completions.create(
    model="DeepSeek-R1",
    messages=messages,
    stream=True
)
# ...