零基础入门大模型API调用:从Jupyter环境搭建、密钥安全存储到Claude与DeepSeek双平台完整实战教程
【全文速览・精简复习版】
-
运行环境:需 Python ≥ 3.7.1,执行
jupyter notebook启动本地服务,在浏览器中逐段编写运行代码,非常适合新手调试。 -
依赖安装:Claude 平台安装
anthropic官方包,DeepSeek 平台安装openai+python-dotenv包,Notebook 内统一使用%pip魔法命令安装。 -
密钥管理:禁止将密钥硬编码在代码中,统一存入笔记本同级目录的
.env文件,通过load_dotenv()读取,从根源避免密钥泄露。 -
调用流程:初始化客户端 → 传入模型名称、最大输出长度、对话内容 → 发送请求 → 提取并打印 AI 返回文本。
-
平台差异:DeepSeek 兼容 OpenAI 接口格式,必须额外指定
base_url="https://api.deepseek.com",调用方法与返回字段和 Claude 原生 SDK 不同。 -
避坑准则:
.env真实后缀不能是.txt、密钥与接口地址必须一一对应、修改.env后需重启 Jupyter 内核才能生效。
一、前置环境准备
大模型 API 调用的代码运行在 Python 环境中,入门阶段推荐使用 Jupyter Notebook 作为开发工具。它支持单元格逐段运行、即时查看输出结果,无需一次性写完所有代码,非常适合新手分步调试学习。
1.1 Python 版本要求
Claude Python SDK 要求 Python 版本不低于 3.7.1,DeepSeek 兼容接口同样支持该版本及以上。 你可以在终端 / 命令行中执行以下命令,查看当前的 Python 版本:
python --version
如果版本不达标,前往 Python 官方网站下载安装对应版本即可。
1.2 Jupyter Notebook 启动方法
-
打开 PowerShell 或 CMD,执行
jupyter notebook命令启动本地服务 -
浏览器会自动打开文件管理页面,默认地址为
http://localhost:8888 -
点击页面右上角「New → Python 3」,即可新建一个空白笔记本,开始编写代码
【知识点汇总表:前置环境要求】
|
项目 |
要求说明 |
验证 / 操作命令 |
|
Python 版本 |
≥ 3.7.1 |
|
|
Jupyter 安装 |
包含在 jupyter 元包中,一键安装全套组件 |
|
|
工作目录 |
命令行所在文件夹即为 Notebook 默认根目录 |
|
二、依赖包安装
不同的大模型平台,需要安装对应的 SDK 工具包;在 Notebook 环境和终端环境,安装命令也有细微区别。
2.1 Notebook 专属安装方式
在 Jupyter Notebook 的代码单元格中,使用 %pip 魔法命令安装包,可以保证包安装到当前 Notebook 对应的 Python 环境中,避免出现 “终端安装成功,但代码里导入失败” 的环境不一致问题。 如果是普通命令行开发,则直接使用 pip install 命令。
2.2 不同平台对应的依赖包
-
Claude 官方平台:使用官方专属 SDK 包
anthropic,封装了完整的 Claude 接口规范 -
DeepSeek 平台:接口完全兼容 OpenAI 格式,直接使用
openai包即可调用,无需额外安装专属 SDK -
两个平台都推荐搭配
python-dotenv包,用来安全读取本地存储的 API 密钥
【知识点汇总表:依赖包安装命令】
|
适用平台 |
Notebook 内安装命令 |
终端安装命令 |
作用说明 |
|
Claude 官方 |
|
|
Claude 官方 SDK,用于调用 Claude 全系列模型 |
|
DeepSeek |
|
|
openai 用于兼容调用 DeepSeek,dotenv 用于读取密钥 |
|
通用密钥工具 |
|
|
加载 .env 文件,实现密钥与代码分离 |
三、API 密钥获取与安全存储
API 密钥就像是调用大模型服务的 “专属通行证”,平台通过密钥识别你的账号身份、扣减调用额度,因此必须像密码一样妥善保管。
3.1 密钥获取通用步骤
以 Claude 官方平台为例,DeepSeek 等绝大多数平台逻辑完全一致:
-
前往对应平台官网注册账号(Claude:https://console.anthropic.com;DeepSeek:DeepSeek)
-
登录后,进入个人设置中的「API Keys」页面
-
点击「创建密钥」,给密钥起一个能区分用途的名称
-
生成后立刻完整复制保存,关闭页面后将无法再次查看完整密钥
3.2 为什么不能直接写在代码里
新手最容易犯的错误就是把密钥直接写在代码里。一旦把代码分享给他人、上传到公开仓库,密钥就会泄露,别人可以盗用你的账号额度,造成财产损失。 行业通用的最佳实践是:密钥与代码分离存放,使用 .env 配置文件单独存储敏感信息。
3.3 .env 文件创建与配置
-
在你的
.ipynb笔记本同级文件夹下,新建一个名为.env的文件Windows 注意:必须开启文件夹的「文件扩展名」显示,避免文件名实际变成
.env.txt,否则程序无法识别该文件 -
在文件中按照「变量名 = 密钥值」的格式写入内容,等号两侧不要加空格、不要加引号
# Claude 平台变量名 ANTHROPIC_API_KEY=你的Claude完整密钥 # DeepSeek 平台变量名 DEEPSEEK_API_KEY=你的DeepSeek完整密钥 -
保存文件即可
3.4 用 python-dotenv 读取密钥
通过 load_dotenv() 函数可以把 .env 里的配置加载到程序环境中,再通过 os.getenv() 取出对应密钥。
from dotenv import load_dotenv
import os
load_dotenv()
my_api_key = os.getenv("DEEPSEEK_API_KEY")
【知识点汇总表:密钥管理核心要点】
|
操作项 |
规范要求 |
常见错误 |
|
存储方式 |
单独存入 |
直接把密钥写在代码里(硬编码) |
|
文件位置 |
与 |
放在其他目录,程序找不到文件 |
|
文件命名 |
严格命名为 |
命名为 |
|
内容格式 |
|
等号两侧加空格、密钥前后带换行 / 空格 |
|
生效时机 |
修改文件后需重启 Jupyter 内核 |
修改后直接运行,读取的还是内存中的旧值 |
四、第一次 API 请求:完整流程拆解
调用大模型的核心逻辑非常固定,一共分为三步:创建客户端 → 构造请求参数 → 发送请求并提取结果。
4.1 Claude 官方 SDK 完整示例
步骤 1:导入包并加载密钥
from dotenv import load_dotenv
import os
from anthropic import Anthropic
load_dotenv()
my_api_key = os.getenv("ANTHROPIC_API_KEY")
步骤 2:创建客户端
客户端是你和大模型服务器交互的 “中转站”,所有请求都通过它发送和接收。
# 写法1:手动传入密钥变量
client = Anthropic(api_key=my_api_key)
# 写法2:SDK自动读取环境变量 ANTHROPIC_API_KEY,无需手动传参
client = Anthropic()
步骤 3:发送请求并打印结果
our_first_message = client.messages.create(
model="claude-3-haiku-20240307",
max_tokens=1000,
messages=[
{"role": "user", "content": "Hi there! Please write me a haiku about a pet chicken"}
]
)
print(our_first_message.content[0].text)
4.2 DeepSeek 兼容接口完整示例
DeepSeek 没有独立的 Python SDK,它完全兼容 OpenAI 的接口格式,因此使用 openai 包即可调用,只需要额外指定接口地址。
from dotenv import load_dotenv
import os
from openai import OpenAI
load_dotenv()
my_api_key = os.getenv("DEEPSEEK_API_KEY")
# 初始化客户端,必须指定 base_url
client = OpenAI(
api_key=my_api_key,
base_url="https://api.deepseek.com"
)
# 发送请求
response = client.chat.completions.create(
model="deepseek-v4-pro",
max_tokens=1000,
messages=[
{"role": "user", "content": "你好,请给我讲一个笑话"}
]
)
# 打印结果
print(response.choices[0].message.content)
【知识点汇总表:API 调用核心参数】
|
参数名 |
作用说明 |
示例值 |
|
model |
指定调用的具体模型,名称必须与平台官方完全一致 |
|
|
max_tokens |
限制 AI 输出的最大长度,避免消耗过多额度 |
1000 |
|
messages |
对话消息列表,采用「角色 + 内容」的结构化格式 |
|
|
role |
消息角色,分为用户 user 和 AI 助手 assistant |
|
|
content |
具体的对话文本内容 |
自定义提问文本 |
五、Claude 与 DeepSeek 调用规则完整对比
5.1 为什么写法不一样
-
Claude 使用官方自研的 SDK,接口规范由 Anthropic 官方独立定义,功能更贴合自身模型特性
-
DeepSeek 采用了行业通用的 OpenAI 兼容接口,可以直接复用 OpenAI 生态的所有工具和代码,大幅降低开发者的学习和迁移成本
【知识点汇总表:双平台调用差异对比】
|
对比维度 |
Claude 官方 SDK |
DeepSeek(OpenAI 兼容格式) |
|
导入包语句 |
|
|
|
客户端类名 |
|
|
|
接口地址配置 |
内置默认地址,无需手动配置 |
必须手动配置 |
|
核心调用方法 |
|
|
|
自动识别的环境变量 |
自动识别 |
无默认值,需自定义变量名传入 |
|
提取返回文本 |
|
|
|
消息列表参数名 |
|
|
|
长度限制参数名 |
|
|
六、入门实战练习:让 AI 讲笑话
对应课程的课后练习任务,只需要修改 content 里的提问内容,就能实现不同的交互效果。
6.1 Claude 版本
from dotenv import load_dotenv
import os
from anthropic import Anthropic
load_dotenv()
my_api_key = os.getenv("ANTHROPIC_API_KEY")
client = Anthropic(api_key=my_api_key)
response = client.messages.create(
model="claude-3-haiku-20240307",
max_tokens=1000,
messages=[
{"role": "user", "content": "请给我讲一个笑话"}
]
)
print(response.content[0].text)
6.2 DeepSeek 版本
from dotenv import load_dotenv
import os
from openai import OpenAI
load_dotenv()
my_api_key = os.getenv("DEEPSEEK_API_KEY")
client = OpenAI(api_key=my_api_key, base_url="https://api.deepseek.com")
response = client.chat.completions.create(
model="deepseek-v4-pro",
max_tokens=1000,
messages=[
{"role": "user", "content": "请给我讲一个笑话"}
]
)
print(response.choices[0].message.content)

七、新手高频踩坑排查指南
入门阶段最容易遇到的报错,几乎都集中在几类低级错误,对照下表可以快速定位并解决问题。
【知识点汇总表:报错排查速查表】
|
报错类型 |
报错关键词 |
常见原因 |
解决方法 |
|
参数缺失错误 |
|
参数名拼写错误,比如 |
核对参数名,确保为复数形式 |
|
鉴权失败错误 |
|
密钥无效、密钥与接口地址不匹配、密钥复制不全 |
核对密钥有效性;确认密钥和 base_url 属于同一平台;重新完整复制密钥 |
|
密钥读取失败 |
打印密钥为 |
|
检查文件位置和名称;确认等号两侧无空格;重启内核 |
|
语法错误 |
|
引号、括号不配对,使用了中文标点符号 |
检查所有符号均为英文半角;确认括号成对闭合 |
|
模块导入失败 |
|
包未安装,或安装到了其他 Python 环境 |
在 Notebook 内用 |
|
模型不存在 |
|
模型名称拼写错误 |
到对应平台官网核对准确的模型名称 |
更多推荐




所有评论(0)