DeepSeek-R1 模型使用指南

概述

DeepSeek-R1 是一款由 deepseek-ai 开发的高级语言模型,旨在通过输出思维链内容(reasoning_content)来提升最终回答的准确性。在使用该模型时,建议先升级 OpenAI SDK 以支持新参数。

安装与升级

在使用 DeepSeek-R1 之前,请确保已安装最新版本的 OpenAI SDK。可以通过以下命令进行升级:

pip3 install -U openai

API 参数

  • 输入参数: max_tokens:回答的最大长度(包含思维链输出),最大为 8K。

  • 返回参数:

    • reasoning_content:思维链内容,与 content 同级。

    • content:最终回答内容

上下文拼接

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

openai请求示例

流式输出请求

from openai import OpenAI

url = 'https://api.siliconflow.cn/v1/'
api_key = 'your api_key'

client = OpenAI(
    base_url=url,
    api_key=api_key
)

# 发送带有流式输出的请求
content = ""
reasoning_content=""
messages = [
    {"role": "user", "content": "奥运会的传奇名将有哪些?"}
]
response = client.chat.completions.create(
    model="deepseek-ai/DeepSeek-R1",
    messages=messages,
    stream=True,  # 启用流式输出
    max_tokens=4096
)
# 逐步接收并处理响应
for chunk in response:
    if chunk.choices[0].delta.content:
        content += chunk.choices[0].delta.content
    if chunk.choices[0].delta.reasoning_content:
        reasoning_content += chunk.choices[0].delta.reasoning_content

# Round 2
messages.append({"role": "assistant", "content": content})
messages.append({'role': 'user', 'content': "继续"})
response = client.chat.completions.create(
    model="deepseek-ai/DeepSeek-R1",
    messages=messages,
    stream=True
)

非流式输出请求

from openai import OpenAI
url = 'https://api.siliconflow.cn/v1/'
api_key = 'your api_key'

client = OpenAI(
    base_url=url,
    api_key=api_key
)

# 发送非流式输出的请求
messages = [
    {"role": "user", "content": "奥运会的传奇名将有哪些?"}
]
response = client.chat.completions.create(
    model="deepseek-ai/DeepSeek-R1",
    messages=messages,
    stream=False, 
    max_tokens=4096
)
content = response.choices[0].message.content
reasoning_content = response.choices[0].message.reasoning_content

# Round 2
messages.append({"role": "assistant", "content": content})
messages.append({'role': 'user', 'content': "继续"})
response = client.chat.completions.create(
    model="deepseek-ai/DeepSeek-R1",
    messages=messages,
    stream=False
)

注意事项

  • API 密钥:请确保使用正确的 API 密钥进行身份验证。
  • 流式输出:流式输出适用于需要逐步接收响应的场景,而非流式输出则适用于一次性获取完整响应的场景。
  • 上下文管理:在每一轮对话中,模型输出的思维链内容不会被拼接到下一轮对话的上下文中,因此需要手动管理上下文。

常见问题

  • 如何获取 API 密钥?

    请访问 SiliconFlow 注册并获取 API 密钥。

  • 如何处理超长文本?

    可以通过调整 max_tokens 参数来控制输出的长度,但请注意最大长度为 8K。