DeepSeek API调用入门:Python接入国产大模型
入门·10 分钟·使用 Python 调用 DeepSeek API 的入门教程,覆盖环境变量、Chat Completions、多轮对话、异常处理和工程化封装。
DeepSeek API调用入门:Python接入国产大模型
DeepSeek API 常用于对话、代码生成、文本总结和推理类任务。它的接口风格接近 OpenAI Chat Completions,因此很适合已经学过大模型 API 的同学上手。
准备工作
你需要准备:
- Python 3.10 或更新版本;
- 一个 DeepSeek API Key;
requests或兼容 OpenAI 风格的 SDK;.env文件保存密钥。
安装依赖:
pip install requests python-dotenv
创建 .env:
DEEPSEEK_API_KEY=你的密钥
最小请求示例
下面用 requests 演示通用 HTTP 调用结构:
import os
import requests
from dotenv import load_dotenv
load_dotenv()
api_key = os.getenv('DEEPSEEK_API_KEY')
url = 'https://api.deepseek.com/chat/completions'
headers = {
'Authorization': f'Bearer {api_key}',
'Content-Type': 'application/json',
}
payload = {
'model': 'deepseek-chat',
'messages': [
{'role': 'system', 'content': '你是一个耐心的AI编程老师'},
{'role': 'user', 'content': '用三句话解释什么是RAG'}
],
'temperature': 0.3,
}
resp = requests.post(url, headers=headers, json=payload, timeout=60)
resp.raise_for_status()
data = resp.json()
print(data['choices'][0]['message']['content'])
如果你的账户或平台路径不同,以官方控制台提供的 base URL 为准。
messages怎么组织
messages 是对话数组。system 用来设定助手行为,user 是用户问题,assistant 可以放历史回答。多轮对话时,要把必要历史一起传入。
不要把所有历史无限追加。真实项目中要限制轮数,或者把早期对话总结成摘要。
代码生成场景
DeepSeek 常被用于代码相关任务。建议提示词写清楚语言、输入输出、边界条件和是否需要解释。
请用 Python 写一个函数,读取文本文件并返回前 500 个字符。
要求:处理文件不存在异常;代码后解释关键步骤。
越具体,输出越稳定。
错误处理
常见错误包括:
- 401:密钥错误或未授权;
- 429:请求过快或额度不足;
- 400:参数格式错误;
- 5xx:服务端异常;
- timeout:网络或模型响应超时。
建议封装函数:
def call_deepseek(messages):
try:
resp = requests.post(url, headers=headers, json={
'model': 'deepseek-chat',
'messages': messages,
'temperature': 0.3,
}, timeout=60)
resp.raise_for_status()
return resp.json()['choices'][0]['message']['content']
except requests.Timeout:
return '请求超时,请稍后重试'
except requests.HTTPError as e:
return f'接口错误:{e.response.status_code}'
工程化建议
- 密钥只放环境变量;
- 记录 requestId、耗时和错误类型;
- 对输入长度做限制;
- 重要任务保存原始请求和响应摘要;
- 对代码输出先人工审查再执行;
- 为常见问题准备测试样例。
小结
DeepSeek API 入门并不难,核心是掌握 Chat Completions 请求结构、密钥管理、异常处理和多轮上下文。真正做项目时,要把调用封装起来,并加日志、超时、重试和安全检查。