DeepSeek推理模型 (deepseek-reasoner)

2025-02-12 97
DeepSeek

类型:人工智能

简介:一款基于深度学习和自然语言处理技术的产品,人气赶超ChatGPT。

deepseek-reasoner是由DeepSeek推出的推理模型。在输出最终回答之前,模型会先给出思维链内容,以帮助提升最终答案的准确性。DeepSeek API开放了deepseek-reasoner思维链内容,用户可以查看、展示或蒸馏该思维链信息。

在使用 deepseek-reasoner 时,请确保先升级 OpenAI SDK,以支持新参数:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
pip3 install -U openai
pip3 install -U openai
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)。但是,在下一轮对话中,前一轮输出的思维链内容不会拼接到上下文中。如下所示:

DeepSeek推理模型 (deepseek-reasoner)

请注意,若在输入的 messages 序列中传入了 reasoning_content,API 将返回 400 错误。因此,请确保在进行下一次请求时,删除前轮输出中的 reasoning_content 字段。以下是具体的操作方式。

三、访问示例

以下是使用 Python 语言进行 API 调用的示例,展示了如何访问思维链内容和最终回答,并在多轮对话中拼接上下文。

1、非流式调用

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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 ) # ...
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、流式调用

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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 ) # ...
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
)
# ...
  • 广告合作

  • QQ群号:707632017

温馨提示:
1、本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。邮箱:2942802716#qq.com(#改为@)。 2、本站原创内容未经允许不得转裁,转载请注明出处“站长百科”和原文地址。
DeepSeek
上一篇: DeepSeek润色指令
DeepSeek
下一篇: DeepSeek多轮对话