如何使用 Python 调用 DeepSeek-R1 API?

如何使用 Python 调用 DeepSeek-R1 API?深入的分步指南

本教程将指导您使用 Python 调用 DeepSeek 的 R1 大型模型 API。即使您没有编程经验,也可以轻松跟上。本文最后还包括一个常见问题解答部分,我们建议您保存以供参考!

步骤1. 准备

获取您的 API 密钥

首先,登录DeepSeek 平台并获取您的 API 密钥。

在"API 密钥"页面上,单击"创建 API 密钥"并复制生成的密钥(例如 sk-123456789abc)。请务必保存它,因为如果您忘记或丢失了它,您将需要生成一个新的 API 密钥。

注意:您需要先充值您的账户,然后才能使用您的 API Key。

步骤 2.Python 设置

1. 设置环境:安装 Python(如果已安装则跳过)

  • 如果您的计算机上未安装 Python,则需要安装它(macOS 预装了 Python 3)。您可以从python.org下载它。

  • 下载最新版本(推荐:3.8+)。

  • 安装过程中请务必检查"将 Python 添加到 PATH"。

如果您不需要 Python 环境并且想要使用可视化界面调用 API,请参考本指南:如何使用 Deepseek API(R1 和 V3):带有屏幕截图的分步指南

2. 安装 Requests 库(如果已经安装请跳过)

在 VSCode 或其他 IDE 中创建一个新的项目文件夹,然后打开终端(顶部菜单:终端 → 新建终端)并运行以下命令:

复制代码
pip install requests

Enter fullscreen mode Exit fullscreen mode

或者:

复制代码
pip3 install requests

Enter fullscreen mode Exit fullscreen mode

如果命令成功运行,您应该会看到类似以下内容:

或者这样:

复制代码
Successfully installed requests-x.x.x

Enter fullscreen mode Exit fullscreen mode

如果安装失败,并且您的计算机上已经安装了 Python,则可能是由于安装了多个 Python 版本。该requests库可能仅安装在一个版本的环境中。

您可以在屏幕右下角切换 Python 版本。

你也可以在 VSCode 中安装"Python"扩展并检查当前版本。然后打开相应版本的控制台面板运行命令。

如果您无法解决这些错误,请跳至本文的最后一部分,其中提供了调用 DeepSeek-R1 API 的更简单方法。或者,您可以使用此处的可视化界面方法:如何使用 Deepseek API(R1 和 V3):带有屏幕截图的分步指南

3. 基本调用代码

一旦上述命令成功执行,.py在您的项目中创建一个文件(例如,deepseek.py)并粘贴以下代码(记得替换sk-your-key为您的实际的 API 密钥)。

python 复制代码
# deepseek.py

import requests

# Enter your API Key
API_KEY = "sk-your-key"  

url = "https://api.deepseek.com/chat/completions"
headers = {
    "Content-Type": "application/json",
    "Authorization": f"Bearer {API_KEY}"
}

data = {
    "model": "deepseek-reasoner",  # Use 'deepseek-reasoner' for R1 model or 'deepseek-chat' for V3 model
    "messages": [
        {"role": "system", "content": "You are a professional assistant"},
        {"role": "user", "content": "Who are you?"}
    ],
    "stream": False  # Disable streaming
}

response = requests.post(url, headers=headers, json=data)

if response.status_code == 200:
    result = response.json()
    print(result['choices'][0]['message']['content'])
else:
    print("Request failed, error code:", response.status_code)

Enter fullscreen mode Exit fullscreen mode

您可以通过指定 来调用DeepSeek-V3 API model='deepseek-chat'

要调用 DeepSeek-R1,请使用model='deepseek-reasoner'

4. 运行代码

您可以通过多种方式运行代码:

  • 点击右上角的"▶"按钮运行代码。

  • 在终端中运行命令python3 deepseek.py或。python deepseek.py

  • 右键单击编辑器并选择"在终端中运行 Python 文件"。

5. 成功输出

当看到这样的输出时,表示调用成功:

vbnet 复制代码
Hi! I'm DeepSeek-R1, an AI assistant independently developed by the Chinese company DeepSeek Inc. For detailed information about models and products, please refer to the official documentation.

Enter fullscreen mode Exit fullscreen mode

步骤3.代码解释

1. 关键参数

|------------|------------------------------|
| 范围 | 描述 |
| model | deepseek-reasoner适用于 R1 型号 |
| messages | 对话历史(支持多轮对话) |
| stream | 设置True为流式输出(适合长文本) |

2. 多轮对话示例

ini 复制代码
messages = [
    {"role": "system", "content": "You are a poet"},
    {"role": "user", "content": "Write a poem about spring"},
    {"role": "assistant", "content": "The spring breeze caresses, the willow branches grow..."},
    {"role": "user", "content": "Please continue the second stanza"}
]

Enter fullscreen mode Exit fullscreen mode

步骤4.流媒体模式

修改以下参数以启用流式传输:

scss 复制代码
data["stream"] = True

response = requests.post(url, headers=headers, json=data, stream=True)

for line in response.iter_lines():
    if line:
        decoded_line = line.decode('utf-8')
        print(decoded_line)

Enter fullscreen mode Exit fullscreen mode

完整代码:

python 复制代码
# deepseek.py

import requests

# Enter your API Key
API_KEY = "sk-your-API-Key"  

url = "https://api.deepseek.com/chat/completions"
headers = {
    "Content-Type": "application/json",
    "Authorization": f"Bearer {API_KEY}"
}

data = {
    "model": "deepseek-chat",  # Use 'deepseek-reasoner' for R1 model or 'deepseek-chat' for V3 model
    "messages": [
        {"role": "system", "content": "You are a professional assistant"},
        {"role": "user", "content": "Who are you?"}
    ],
    "stream": False  # Disable streaming
}

data["stream"] = True

response = requests.post(url, headers=headers, json=data, stream=True)

for line in response.iter_lines():
    if line:
        decoded_line = line.decode('utf-8')
        print(decoded_line)

Enter fullscreen mode Exit fullscreen mode

以下输出来自 V3 模型(deepseek-chat)。为什么不使用 R1?它非常受欢迎,但经常没有响应😂。


常问问题

Q1:如何区分V3和R1型号?

  • V3版model: "deepseek-chat"

  • R1model: "deepseek-reasoner"

Q2:如何修复401错误?

  • 检查 API 密钥是否输入正确。

  • 确保密钥尚未过期。

Q3:出现"No module named 'requests'"怎么办?

  • 确保您pip install requests在正确的终端中运行。

  • 确保 VSCode 使用正确的 Python 解释器。

Q4: 是什么 requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 意思?

  • 此错误通常表示服务器繁忙或 API 未返回有效的 JSON 数据,导致响应为空。

Q5:为什么流输出总是显示"keep-alive"?

  • 如果服务器负载过重,长时间保持连接打开,则可能会发生这种情况。

更简单的调用 DeepSeek-R1 API 的方法(推荐)

您可以通过Apidog调用 DeepSeek-R1 API 或 DeepSeek-V3 API。Apidog支持式和非流式结果:

有关详细指南,请参阅:如何使用 Deepseek API(R1 和 V3):带有屏幕截图的分步指南


通过本教程,您已经了解了调用 DeepSeek API 的核心方法。从测试简单的对话开始,然后逐渐探索流式传输和多轮对话等高级功能。如果您遇到任何问题,请随时发表评论进行讨论!

相关推荐
hello_ejb35 分钟前
聊聊Spring AI Alibaba的SentenceSplitter
人工智能·python·spring
摸鱼仙人~2 小时前
机器学习常用评价指标
人工智能·机器学习
一点.点3 小时前
WiseAD:基于视觉-语言模型的知识增强型端到端自动驾驶——论文阅读
人工智能·语言模型·自动驾驶
fanstuck4 小时前
从知识图谱到精准决策:基于MCP的招投标货物比对溯源系统实践
人工智能·知识图谱
dqsh064 小时前
树莓派5+Ubuntu24.04 LTS串口通信 保姆级教程
人工智能·python·物联网·ubuntu·机器人
打小就很皮...5 小时前
编写大模型Prompt提示词方法
人工智能·语言模型·prompt
Aliano2175 小时前
Prompt(提示词)工程师,“跟AI聊天”
人工智能·prompt
weixin_445238125 小时前
第R8周:RNN实现阿尔兹海默病诊断(pytorch)
人工智能·pytorch·rnn
KingDol_MIni5 小时前
ResNet残差神经网络的模型结构定义(pytorch实现)
人工智能·pytorch·神经网络
新加坡内哥谈技术6 小时前
亚马逊推出新型仓储机器人 Vulcan:具备“触觉”但不会取代人类工人
人工智能