小白也能学会!用Python调用DeepSeek API保姆级教程
一、环境搭建(3分钟搞定)
- 安装Python(已安装可跳过)
- 官网下载安装包:https://www.python.org/downloads/
- 安装时务必勾选"Add Python to PATH"
- 安装必备库(打开cmd/powershell执行)
pip install requests python-dotenv
二、快速入门流程
注册API → 创建项目 → 编写代码 → 测试运行
三、分步详细教程
步骤1:注册并获取API密钥
- 访问DeepSeek官网注册账号
- 进入控制台创建API Key
- 复制生成的密钥(类似sk-12ab34cd56ef78gh90ij12kl34mn56op)
步骤2:项目环境搭建
- 新建项目文件夹(例如deepseek_demo)
- 创建.env文件保存密钥:
DEEPSEEK_API_KEY=你的实际密钥
重要:务必把.env添加到.gitignore防止泄露
步骤3:编写基础请求代码
创建deepseek_demo.py文件:
import os
import requests
from dotenv import load_dotenv
# 加载环境变量
load_dotenv()
def ask_deepseek(prompt):
# 设置请求头
headers = {
"Authorization": f"Bearer {os.getenv('DEEPSEEK_API_KEY')}",
"Content-Type": "application/json"
}
# 构造请求数据
data = {
"messages": [
{"role": "user", "content": prompt}
],
"model": "deepseek-chat",
"temperature": 0.7,
"max_tokens": 500
}
try:
# 发送POST请求
response = requests.post(
"https://api.deepseek.com/v1/chat/completions",
headers=headers,
json=data
)
response.raise_for_status() # 自动抛出HTTP错误
# 解析返回结果
return response.json()['choices'][0]['message']['content']
except requests.exceptions.RequestException as e:
print(f"请求失败: {str(e)}")
return None
# 测试使用
if __name__ == "__main__":
question = input("请输入你的问题:")
answer = ask_deepseek(question)
print("\nDeepSeek回答:")
print(answer)
步骤4:运行测试
在终端执行:
python deepseek_demo.py
输入问题后即可看到AI的回答
四、重点难点解析
难点1:环境变量管理
- 为什么用.env文件?
防止密钥泄露,方便不同环境切换 - 加载原理:
python-dotenv会自动读取项目根目录的.env文件
难点2:API响应处理
- 响应结构示例:
{
"choices": [
{
"message": {
"content": "这里是回答内容..."
}
}
]
}
- 正确访问路径:response.json()['choices'][0]['message']['content']
五、注意事项清单
开发注意事项
- 密钥管理三不要:不要写入代码不要上传到Github不要通过聊天软件传输
- 错误处理要点:网络超时设置(建议添加timeout=10参数)响应状态码检查(200为成功)
安全通信规范
- 必须使用HTTPS
- 定期更换API密钥
- 禁用调试模式后及时移除密钥
- 建议配置IP白名单(在DeepSeek控制台设置)
六、完整代码示例
(以下为教程中使用的完整代码,保存为deepseek_demo.py即可使用)
import os
import requests
from dotenv import load_dotenv
# 加载环境变量
load_dotenv()
def ask_deepseek(prompt):
"""
向DeepSeek API发送请求并获取响应
参数:
prompt (str): 用户输入的提问内容
返回:
str: AI生成的回答内容,出错时返回None
"""
# 设置请求头
headers = {
"Authorization": f"Bearer {os.getenv('DEEPSEEK_API_KEY')}",
"Content-Type": "application/json"
}
# 构造请求数据
data = {
"messages": [
{"role": "user", "content": prompt}
],
"model": "deepseek-chat",
"temperature": 0.7,
"max_tokens": 500
}
try:
# 发送POST请求(增加10秒超时设置)
response = requests.post(
"https://api.deepseek.com/v1/chat/completions",
headers=headers,
json=data,
timeout=10
)
response.raise_for_status() # 自动抛出HTTP错误
# 解析返回结果
return response.json()['choices'][0]['message']['content']
except requests.exceptions.HTTPError as http_err:
print(f"HTTP错误: {http_err}")
except requests.exceptions.Timeout:
print("请求超时,请检查网络连接")
except requests.exceptions.JSONDecodeError:
print("响应解析失败,请检查API返回格式")
except Exception as e:
print(f"未知错误: {str(e)}")
return None
# 测试使用
if __name__ == "__main__":
question = input("请输入你的问题:")
answer = ask_deepseek(question)
if answer:
print("\nDeepSeek回答:")
print(answer)
else:
print("获取回答失败,请检查错误信息")
七、常见问题解答
Q:为什么返回的内容不完整?
A:可调整max_tokens参数(最大值参考API文档)
Q:如何提高响应速度?
A:适当降低max_tokens,或联系API服务商升级套餐
Q:出现SSL证书错误怎么办?
A:1. 检查系统时间是否准确 2. 更新证书库 pip install --upgrade certifi
按照本教程操作,10分钟即可完成API调用对接。建议先使用简单问题进行测试,成功后再扩展复杂功能。