小白也能学会!用Python调用DeepSeek API保姆级教程

一、环境搭建(3分钟搞定)

  1. 安装Python(已安装可跳过)
  2. 官网下载安装包:https://www.python.org/downloads/
  3. 安装时务必勾选"Add Python to PATH"
  4. 安装必备库(打开cmd/powershell执行)
pip install requests python-dotenv

二、快速入门流程

注册API → 创建项目 → 编写代码 → 测试运行

三、分步详细教程

步骤1:注册并获取API密钥

  1. 访问DeepSeek官网注册账号
  2. 进入控制台创建API Key
  3. 复制生成的密钥(类似sk-12ab34cd56ef78gh90ij12kl34mn56op)

步骤2:项目环境搭建

  1. 新建项目文件夹(例如deepseek_demo)
  2. 创建.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']

五、注意事项清单

开发注意事项

  1. 密钥管理三不要:不要写入代码不要上传到Github不要通过聊天软件传输
  2. 错误处理要点:网络超时设置(建议添加timeout=10参数)响应状态码检查(200为成功)

安全通信规范

  1. 必须使用HTTPS
  2. 定期更换API密钥
  3. 禁用调试模式后及时移除密钥
  4. 建议配置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调用对接。建议先使用简单问题进行测试,成功后再扩展复杂功能。

相关文章

Python 开发工程师必会的 5 个系统命令操作库

当我们需要编写自动化脚本、部署工具、监控程序时,熟练操作系统命令几乎是必备技能。今天就来聊聊我在实际项目中高频使用的 5 个系统命令操作库,这些可都是能让你效率翻倍的 "瑞士军刀"。一...

Windows“任务计划程序”定时执行bat脚本

一、实现原理在Windows 系统中都有一个自带的应用程序叫做“任务计划程序” (Task Scheduler)。通过这个程序配合bat脚本,就可以实现每日定时运行特定程序的功能,二、任务计划程序 打...

如何查看运行脚本的 Python 版本(怎么查看一个脚本的代码)

在日常的 Python 编程过程中,我们常常会遇到这样的需求:想知道当前运行脚本所使用的 Python 版本。这在很多场景下都非常重要,比如排查兼容性问题、确保代码能在特定版本的 Python 环境中...

Python是32位还是64位(查看python是32位还是64位)

分享Python是32位还是64位的判断技巧,如下:1、 Python32位与64位的区别有哪些?2、 64位Python可使用更大内存,仅能在64位系统运行,无法兼容32位系统。而32位Python...

Python Windows 11 安装后,CMD界面进入不了Python编译界面的解决

1. Python安装进入官网下载python编译界面Python Release Python 3.10.4 | Python.org2. 搜索栏输入cmd,进入命令提示符这时输入python命令提...