DeepSeek类型:人工智能
简介:一款基于深度学习和自然语言处理技术的产品,人气赶超ChatGPT。
deepseek-reasoner是由DeepSeek推出的推理模型。在输出最终回答之前,模型会先给出思维链内容,以帮助提升最终答案的准确性。DeepSeek API开放了deepseek-reasoner思维链内容,用户可以查看、展示或蒸馏该思维链信息。
在使用 deepseek-reasoner 时,请确保先升级 OpenAI SDK,以支持新参数:
pip3 install -U openai
一、DeepSeek API参数
1、输入参数
max_tokens:指定最终回答的最大长度(不包括思维链内容)。默认为 4K,最大支持 8K。请注意,思维链的输出最多可达 32K tokens,控制思维链长度的参数(reasoning_effort)将于近期推出。
2、输出字段
- reasoning_content:思维链内容,位于 content 字段同级,可以访问该内容进行查看;
- content:最终回答内容。
3、上下文长度
API 支持最大 64K 的上下文,注意思维链内容的长度不计入 64K 的上下文限制。
4、支持功能
对话补全
对话前缀续写(Beta)
5、不支持功能
- Function Call
- Json Output
- FIM 补全(Beta)
6、不支持的参数
temperature、top_p、presence_penalty、frequency_penalty、logprobs、top_logprobs。虽然为了兼容现有软件,设置这些参数不会报错,但它们不会生效。若设置了 logprobs 或 top_logprobs,会导致报错。
二、上下文拼接
在每一轮对话过程中,模型会输出思维链内容(reasoning_content)和最终回答(content)。但是,在下一轮对话中,前一轮输出的思维链内容不会拼接到上下文中。如下所示:

请注意,若在输入的 messages 序列中传入了 reasoning_content,API 将返回 400 错误。因此,请确保在进行下一次请求时,删除前轮输出中的 reasoning_content 字段。以下是具体的操作方式。
三、访问示例
以下是使用 Python 语言进行 API 调用的示例,展示了如何访问思维链内容和最终回答,并在多轮对话中拼接上下文。
1、非流式调用
from openai import OpenAI
client = OpenAI(api_key="<DeepSeek API Key>", base_url="https://api.deepseek.com")
messages = [{"role": "user", "content": "9.11 和 9.8,哪个更大?"}]
response = client.chat.completions.create(
model="deepseek-reasoner",
reasoning_content = response.choices[0].message.reasoning_content
content = response.choices[0].message.content
messages.append({'role': 'assistant', 'content': content})
messages.append({'role': 'user', 'content': "‘strawberry’ 这个词里有几个字母 R?"})
response = client.chat.completions.create(
model="deepseek-reasoner",
from openai import OpenAI
client = OpenAI(api_key="<DeepSeek API Key>", base_url="https://api.deepseek.com")
# 第 1 轮对话
messages = [{"role": "user", "content": "9.11 和 9.8,哪个更大?"}]
response = client.chat.completions.create(
model="deepseek-reasoner",
messages=messages
)
reasoning_content = response.choices[0].message.reasoning_content
content = response.choices[0].message.content
# 第 2 轮对话
messages.append({'role': 'assistant', 'content': content})
messages.append({'role': 'user', 'content': "‘strawberry’ 这个词里有几个字母 R?"})
response = client.chat.completions.create(
model="deepseek-reasoner",
messages=messages
)
# ...
from openai import OpenAI
client = OpenAI(api_key="<DeepSeek API Key>", base_url="https://api.deepseek.com")
# 第 1 轮对话
messages = [{"role": "user", "content": "9.11 和 9.8,哪个更大?"}]
response = client.chat.completions.create(
model="deepseek-reasoner",
messages=messages
)
reasoning_content = response.choices[0].message.reasoning_content
content = response.choices[0].message.content
# 第 2 轮对话
messages.append({'role': 'assistant', 'content': content})
messages.append({'role': 'user', 'content': "‘strawberry’ 这个词里有几个字母 R?"})
response = client.chat.completions.create(
model="deepseek-reasoner",
messages=messages
)
# ...
2、流式调用
from openai import OpenAI
client = OpenAI(api_key="<DeepSeek API Key>", base_url="https://api.deepseek.com")
messages = [{"role": "user", "content": "9.11 和 9.8,哪个更大?"}]
response = client.chat.completions.create(
model="deepseek-reasoner",
if chunk.choices[0]..reasoning_content:
reasoning_content += chunk.choices[0]..reasoning_content
content += chunk.choices[0]..content
messages.append({"role": "assistant", "content": content})
messages.append({'role': 'user', 'content': "‘strawberry’ 这个词里有几个字母 R?"})
response = client.chat.completions.create(
model="deepseek-reasoner",
from openai import OpenAI
client = OpenAI(api_key="<DeepSeek API Key>", base_url="https://api.deepseek.com")
# 第 1 轮对话
messages = [{"role": "user", "content": "9.11 和 9.8,哪个更大?"}]
response = client.chat.completions.create(
model="deepseek-reasoner",
messages=messages,
stream=True
)
reasoning_content = ""
content = ""
# 处理流式返回的数据
for chunk in response:
if chunk.choices[0]..reasoning_content:
reasoning_content += chunk.choices[0]..reasoning_content
else:
content += chunk.choices[0]..content
# 第 2 轮对话
messages.append({"role": "assistant", "content": content})
messages.append({'role': 'user', 'content': "‘strawberry’ 这个词里有几个字母 R?"})
response = client.chat.completions.create(
model="deepseek-reasoner",
messages=messages,
stream=True
)
# ...
from openai import OpenAI
client = OpenAI(api_key="<DeepSeek API Key>", base_url="https://api.deepseek.com")
# 第 1 轮对话
messages = [{"role": "user", "content": "9.11 和 9.8,哪个更大?"}]
response = client.chat.completions.create(
model="deepseek-reasoner",
messages=messages,
stream=True
)
reasoning_content = ""
content = ""
# 处理流式返回的数据
for chunk in response:
if chunk.choices[0]..reasoning_content:
reasoning_content += chunk.choices[0]..reasoning_content
else:
content += chunk.choices[0]..content
# 第 2 轮对话
messages.append({"role": "assistant", "content": content})
messages.append({'role': 'user', 'content': "‘strawberry’ 这个词里有几个字母 R?"})
response = client.chat.completions.create(
model="deepseek-reasoner",
messages=messages,
stream=True
)
# ...