背景介绍:DeepSeek R1 和 V3 是什么?
红烁AI 培训,红烁 AI 中转站为您整理:DeepSeek 是深度求索(DeepSeek AI)推出的大语言模型系列,凭借极具竞争力的性价比和开放的 API 接口,迅速成为国内外开发者的热门选择。
目前最常用的两个版本是:
- DeepSeek-R1:专为复杂推理设计,内置”思维链”(Chain-of-Thought)能力,在数学、逻辑推断、代码调试等任务上表现突出。调用时模型会先输出
<think>推理过程,再给出最终答案。 - DeepSeek-V3:通用型旗舰模型,在对话、文本生成、代码补全、摘要等日常任务上速度更快、成本更低,适合高并发生产场景。
两个模型均通过 OpenAI 兼容接口 对外提供服务,这意味着你几乎不需要学习新的 SDK,用已有的 OpenAI Python 库就能直接调用。
准备工作:获取 API Key
在写任何代码之前,先完成以下准备步骤:
- 访问 platform.deepseek.com,注册并登录账号。
- 进入「API Keys」页面,点击「创建 API Key」,复制并妥善保存生成的密钥(页面关闭后不再显示)。
- 确认账户余额充足,新用户通常有免费额度可用。
DeepSeek 的 API Base URL 为:
https://api.deepseek.com
建议将 API Key 存入环境变量,而不是硬编码在代码里:
export DEEPSEEK_API_KEY="sk-your-key-here"
安装依赖
DeepSeek 官方推荐使用 openai Python SDK,只需切换 base_url 和 api_key 即可。安装命令:
pip install openai
如果你更倾向于直接发 HTTP 请求,也可以使用 requests 库,后文会一并演示。
核心内容:Python 调用 DeepSeek API
1. 调用 DeepSeek-V3(通用对话)
下面是最简单的单轮对话示例,使用 OpenAI SDK 调用 DeepSeek-V3:
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ.get("DEEPSEEK_API_KEY"),
base_url="https://api.deepseek.com"
)
response = client.chat.completions.create(
model="deepseek-chat", # 对应 DeepSeek-V3
messages=[
{"role": "system", "content": "你是一个专业的 Python 开发助手。"},
{"role": "user", "content": "用 Python 写一个快速排序算法,并加上注释。"}
],
temperature=0.7,
max_tokens=1024
)
print(response.choices[0].message.content)
其中 model="deepseek-chat" 指向最新版 DeepSeek-V3。temperature 控制输出随机性,0 表示确定性最强,1 表示最具创意。
2. 调用 DeepSeek-R1(推理模型)
调用 R1 只需将 model 参数改为 deepseek-reasoner。R1 会在 reasoning_content 字段中返回推理过程:
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ.get("DEEPSEEK_API_KEY"),
base_url="https://api.deepseek.com"
)
response = client.chat.completions.create(
model="deepseek-reasoner", # 对应 DeepSeek-R1
messages=[
{"role": "user", "content": "一个正整数 n,满足 n! 末尾恰好有 10 个零,求所有可能的 n。"}
]
)
message = response.choices[0].message
# 打印推理过程(R1 特有)
if hasattr(message, "reasoning_content") and message.reasoning_content:
print("=== 推理过程 ===")
print(message.reasoning_content)
print("=== 最终答案 ===")
print(message.content)
R1 的推理过程有助于调试和理解模型决策,在数学证明、逻辑题等场景下尤为有价值。
3. 流式输出(Streaming)
对于需要实时显示回复的场景(如聊天界面),开启流式输出可以大幅提升用户体验:
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ.get("DEEPSEEK_API_KEY"),
base_url="https://api.deepseek.com"
)
stream = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "user", "content": "介绍一下 Python 的异步编程机制。"}
],
stream=True # 开启流式输出
)
for chunk in stream:
delta = chunk.choices[0].delta
if delta.content:
print(delta.content, end="", flush=True)
print() # 换行
4. 多轮对话
多轮对话的关键是维护 messages 列表,将历史消息一并传入:
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ.get("DEEPSEEK_API_KEY"),
base_url="https://api.deepseek.com"
)
messages = [{"role": "system", "content": "你是一个友好的编程助手。"}]
while True:
user_input = input("你:")
if user_input.lower() in ("exit", "quit", "退出"):
break
messages.append({"role": "user", "content": user_input})
response = client.chat.completions.create(
model="deepseek-chat",
messages=messages
)
assistant_reply = response.choices[0].message.content
messages.append({"role": "assistant", "content": assistant_reply})
print(f"助手:{assistant_reply}\n")
实际应用场景
了解了基础调用方式后,来看几个典型的落地场景:
- 代码审查工具:将代码片段发给 DeepSeek-V3,让它指出潜在 Bug 和优化建议,集成到 CI/CD 流水线中。
- 数学/逻辑题求解器:使用 DeepSeek-R1,利用其推理能力逐步拆解复杂问题,适合教育类应用。
- 文档自动生成:传入函数签名和注释,让 V3 生成规范的 API 文档或 README。
- 智能客服后端:结合多轮对话能力,构建具备上下文记忆的客服机器人,降低人工成本。
- 数据分析报告:将结构化数据以文本形式传入,让模型生成自然语言分析摘要。
常见问题 FAQ
Q1:调用时报 AuthenticationError,怎么排查?
首先确认 API Key 是否正确复制,注意不要包含多余的空格。其次检查环境变量是否生效(可用 print(os.environ.get("DEEPSEEK_API_KEY")) 验证)。如果 Key 已过期或余额为零,也会触发此错误,登录控制台确认账户状态即可。
Q2:DeepSeek-R1 和 V3 如何选择?
简单来说:需要推理过程或解决复杂逻辑问题,选 R1;追求速度和成本效率的通用任务,选 V3。 R1 的 Token 消耗通常更高(因为包含推理链),生产环境中建议先用 V3 测试,只在确实需要推理能力时切换到 R1。
Q3:如何控制输出长度和格式?
通过 max_tokens 限制最大输出长度。如果需要 JSON 格式输出,可以在 System Prompt 中明确要求,并设置 response_format={"type": "json_object"}(V3 支持此参数)。
Q4:遇到 RateLimitError 怎么办?
DeepSeek API 有并发和 TPM(每分钟 Token 数)限制。建议在代码中加入指数退避重试逻辑,或使用 tenacity 库自动处理重试。高并发场景可申请提升限额。
Q5:能否在没有网络的环境中使用?
DeepSeek 官方 API 需要联网。如果有离线需求,可以考虑下载 DeepSeek 的开源权重(在 Hugging Face 上公开),通过 ollama 或 vLLM 在本地部署,接口格式与云端 API 基本一致。
总结
在 Python 中调用 DeepSeek R1 和 V3 API 的核心步骤只有三步:安装 openai SDK、配置 base_url 和 api_key、按需选择 deepseek-reasoner 或 deepseek-chat 模型。得益于 OpenAI 兼容接口,迁移成本极低,现有项目几乎可以零改动切换。
建议从单轮对话开始验证连通性,再逐步引入流式输出和多轮上下文管理,最后根据业务场景决定是否需要 R1 的推理能力。DeepSeek 的高性价比使其成为个人项目和商业产品的双优选择,值得深入探索。
想了解更多AI工具和技巧?欢迎访问红烁AI 培训,红烁 AI 中转站,获取最新AI资讯和实用教程。
