如何使用 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 的核心方法。从测试简单的对话开始,然后逐渐探索流式传输和多轮对话等高级功能。如果您遇到任何问题,请随时发表评论进行讨论!

相关推荐
AORO_BEIDOU11 分钟前
科普|卫星电话有哪些应用场景?
网络·人工智能·安全·智能手机·信息与通信
dreamczf12 分钟前
基于Linux系统的边缘智能终端(RK3568+EtherCAT+PCIe+4G+5G)
linux·人工智能·物联网·5g
@Mr_LiuYang28 分钟前
深度学习PyTorch之13种模型精度评估公式及调用方法
人工智能·pytorch·深度学习·模型评估·精度指标·模型精度
Herbig29 分钟前
文心一言:中国大模型时代的破局者与探路者
人工智能
幻风_huanfeng32 分钟前
每天五分钟深度学习框架PyTorch:使用残差块快速搭建ResNet网络
人工智能·pytorch·深度学习·神经网络·机器学习·resnet
钡铼技术物联网关34 分钟前
导轨式ARM工业控制器:组态软件平台的“神经中枢”
linux·数据库·人工智能·安全·智慧城市
jndingxin1 小时前
OpenCV计算摄影学(15)无缝克隆(Seamless Cloning)调整图像颜色的函数colorChange()
人工智能·opencv·计算机视觉
kimi-2221 小时前
plt和cv2有不同的图像表示方式和颜色通道顺序
人工智能·opencv·计算机视觉
鹿导的通天塔1 小时前
这个SVG可视化编辑器,我愿称之为最强
人工智能