38-你的第一个AI程序-3行Python代码调用GPT大模型
文章目录
【35.Python+AI】你的第一个AI程序:3行Python代码调用GPT大模型
📖 文章简介: 本文是Python+AI大模型系列的第一篇,从零带领你完成第一个大模型API调用。内容涵盖OpenAI SDK的安装配置、API Key的安全获取与管理、第一个completion请求的完整代码及返回结果解析,并深入讲解Token费用计算与预算控制策略。文中附有Mermaid流程图拆解API调用的完整链路,适合从未接触过大模型API、想迈出AI开发第一步的Python开发者。

🎬 个人主页: 源码骑士
❄ 专栏传送门: 《Android开发基础》《python基础课程》
⭐️热衷从源码视角拆解技术底层原理,将复杂架构讲得通俗易懂
🎬 源码骑士的简介:
5年Android Framework系统开发经验,曾主导多项系统级性能优化专项
技术栈覆盖Android系统全链路(Binder/Handler/AMS/WMS/启动流程)及Java后端全家桶(Spring + MyBatis + Redis + Oracle)
累计产出原创技术文章100+篇,文章以流程图为特色,被读者评价为"看一篇胜过啃一周源码"
导入语
2025年了,如果你还没亲手调用过一次大模型API,就相当于2015年没写过一句SQL——不是说不能做开发,但你的工具箱里少了一把最锋利的刀。
很多人觉得"调用AI"是一件很高深的事。其实不是。OpenAI把大模型的能力封装成了一个极其简单的HTTP接口——你只需要三行Python代码,就能让一个1750亿参数的模型为你工作。
这篇文章的目标很明确:带你从零写出第一个大模型API调用,搞清楚API Key从哪来、Request里填什么、返回的JSON怎么解析。 文末你还会知道调用一次花了多少钱——对,就是几分钱的事。
1 ~> 准备工作:安装SDK和获取API Key
1.1 安装OpenAI Python SDK
打开终端,一条命令搞定:
pip install openai
如果你的项目用了虚拟环境(建议),先激活再装:
# Windows
venv\Scripts\activate
pip install openai
# macOS / Linux
source venv/bin/activate
pip install openai
验证安装是否成功:
import openai
print(openai.__version__) # 输出类似 1.55.0
1.2 获取API Key——这一步最容易出错
去 platform.openai.com 注册账号(需要科学上网)。注册后在右上角头像 → “View API keys” → “Create new secret key”。
几个新手必知的坑:
| 坑 | 说明 |
|---|---|
| Key只显示一次 | 创建后立刻复制保存,关闭弹窗后就再也看不到了 |
| 不要硬编码在代码里 | 万一你不小心把代码推到GitHub,Key会被自动扫描并吊销 |
| 需要充值才能用 | 新账号通常有$5免费额度,但过期后需要绑定信用卡充值 |
| Key有权限范围 | 创建时可以限定Key的权限(只读/读写),生产环境建议用最小权限 |
安全存储API Key的方式:
# 方式一:环境变量(推荐)
export OPENAI_API_KEY="sk-your-key-here"
# 方式二:.env文件 + python-dotenv
pip install python-dotenv
# .env 文件内容(记得加入 .gitignore)
OPENAI_API_KEY=sk-your-key-here
# Python 中读取
from dotenv import load_dotenv
import os
load_dotenv()
api_key = os.getenv("OPENAI_API_KEY")
2 ~> 第一个API调用:三行代码让AI说话
2.1 最简代码
from openai import OpenAI
client = OpenAI() # 自动读取环境变量 OPENAI_API_KEY
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "用一句话介绍Python"}]
)
print(response.choices[0].message.content)
输出示例:
Python是一种简洁、易读且功能强大的高级编程语言,广泛应用于Web开发、
数据分析、人工智能和自动化脚本等领域。
2.2 逐行拆解
第1行:from openai import OpenAI
├─ 从openai包导入OpenAI客户端类(注意:新版SDK用 OpenAI(),不是 openai.ChatCompletion)
第2行:client = OpenAI()
├─ 创建客户端实例,默认从环境变量 OPENAI_API_KEY 读取密钥
├─ 也可以显式传入:client = OpenAI(api_key="sk-xxx")
第3~6行:client.chat.completions.create(...)
├─ model="gpt-3.5-turbo" —— 指定模型,gpt-3.5-turbo是最便宜最快的
├─ messages=[...] —— 对话消息列表,每一条包含role和content
│ ├─ role="system" —— 设定AI的行为规则(可选但推荐)
│ ├─ role="user" —— 用户说的话
│ └─ role="assistant" —— AI之前的回复(多轮对话时需要)
└─ 返回的response是一个复杂对象,最关键的是 response.choices[0].message.content
2.3 加上System Prompt让AI更听话
response = client.chat.completions.create(
model="gpt-3.5-tourbo",
messages=[
{"role": "system", "content": "你是一位资深Python讲师,回答要通俗易懂,多举例子。"},
{"role": "user", "content": "装饰器是什么?"}
]
)
print(response.choices[0].message.content)
有无System Prompt的对比:
| 无System Prompt | 有System Prompt | |
|---|---|---|
| 回答风格 | 标准教科书式 | 口语化、带例子 |
| 回答长度 | 可能有长有短 | 受"多举例子"影响,会更长 |
| 可控性 | 低 | 高 |
System Prompt是控制AI行为的"宪法"。 花时间打磨一段好的System Prompt,比反复调整User Prompt更有效。
3 ~> 调用链路全景图
3.1 Mermaid流程图
下面这张图展示了一次API调用从你的代码到模型返回的完整路径:
3.2 响应对象的完整结构
很多人只取了 content,但response对象里还有很多有用的信息:
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "Hello"}]
)
# 核心字段
print(response.id) # 本次请求的唯一ID
print(response.model) # 实际使用的模型
print(response.choices[0].finish_reason) # 结束原因:stop / length / content_filter
print(response.usage.prompt_tokens) # 输入消耗的Token数
print(response.usage.completion_tokens) # 输出消耗的Token数
print(response.usage.total_tokens) # 总Token数
finish_reason 的三个关键值:
| 值 | 含义 | 你该做什么 |
|---|---|---|
stop |
正常结束,模型自己决定说完了 | 无需处理 |
length |
达到max_tokens上限,话没说完 | 增大max_tokens或让模型精简回答 |
content_filter |
触发了安全过滤 | 检查你的输入是否包含敏感内容 |
4 ~> Token与费用:每次调用花了多少钱
4.1 Token是什么
大模型不是按"字"计费,而是按"Token"(词元)。一个Token大约等于:
英文:1个单词 ≈ 1~2个Token
中文:1个汉字 ≈ 1.5~3个Token
代码:因符号多,Token数通常比看起来多
4.2 费用计算
gpt-3.5-turbo 的官方定价(截至2025年6月):
├─ 输入:$0.50 / 100万 Token
└─ 输出:$1.50 / 100万 Token
也就是说:
├─ 一次问答(输入50 Token + 输出200 Token)
│ ├─ 输入费用:50 × 0.50/1,000,000 = $0.000025
│ ├─ 输出费用:200 × 1.50/1,000,000 = $0.0003
│ └─ 合计:约 $0.000325 ≈ 人民币 0.002元(两厘钱)
└─ 你充5美元,够你调用1.5万次!
4.3 用代码精确计算Token数
import tiktoken
# 加载gpt-3.5-turbo的编码器
encoding = tiktoken.encoding_for_model("gpt-3.5-turbo")
text = "Python是一种解释型、面向对象的高级编程语言。"
tokens = encoding.encode(text)
print(f"原文:{text}")
print(f"Token数:{len(tokens)}")
print(f"Token序列:{tokens}")
输出:
原文:Python是一种解释型、面向对象的高级编程语言。
Token数:24
Token序列:[10914, 232, 34002, ...]
5 ~> 常见报错与排错
5.1 新手最常遇到的四个错误
错误一:openai.AuthenticationError — "Incorrect API key provided"
├─ 原因:API Key没设置或写错了
└─ 解决:检查环境变量或显式传入正确的Key
错误二:openai.RateLimitError — "You exceeded your current quota"
├─ 原因:免费额度用完了,或者绑定的信用卡没钱了
└─ 解决:去 platform.openai.com 充值
错误三:openai.APIConnectionError — 连接超时
├─ 原因:网络问题(国内访问OpenAI需要代理)
└─ 解决:配置代理环境变量 HTTP_PROXY / HTTPS_PROXY
错误四:openai.BadRequestError — "max_tokens is too large"
├─ 原因:max_tokens超过了模型的上下文窗口
└─ 解决:减少max_tokens或缩短输入
5.2 一个健壮的调用封装
把上面的知识串起来,写一个生产可用的函数:
import os
from openai import OpenAI
def ask_gpt(prompt: str, model: str = "gpt-3.5-turbo", max_tokens: int = 500) -> str:
"""
封装GPT调用,带基础错误处理。
"""
client = OpenAI()
try:
response = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": prompt}],
max_tokens=max_tokens,
temperature=0.7
)
return response.choices[0].message.content
except Exception as e:
return f"调用失败:{type(e).__name__} - {str(e)}"
# 使用
result = ask_gpt("用Python写一个斐波那契函数")
print(result)
思考 && 总结
这篇文章带你完成了从零到大模型API调用的第一步,核心要点:
- 三行代码就能调用GPT:
from openai import OpenAI→client = OpenAI()→client.chat.completions.create(...)。不要被"大模型"这三个字吓到——它的API设计非常简洁。 - API Key是唯一凭证,保护它就是保护你的钱包: 绝对不要硬编码在代码里,用环境变量或.env文件管理。GitHub上有大量扫描机器人,Key泄露后几分钟内就会被盗用。
- System Prompt是控制AI行为的"宪法": 别只写User Message,花一分钟写好System Prompt,回答质量会有天壤之别。
- Token计费极其便宜: 一次问答大约花0.002元人民币。$5够你调用15000次——大胆去试,别怕花钱。
- finish_reason不能忽略: 如果返回
length,说明你的回答被截断了,需要增大max_tokens或让模型精简输出。 - 错误处理不是可选项: 网络超时、Key过期、额度用完——这些问题在真实项目中一定会遇到,至少要有一个try-except兜底。
这篇文章的目标很简单:让你亲手跑通一次API调用。当你看到AI在终端里回复你的那一刻,你和大模型之间的"次元壁"就打破了。剩下的,就是把这把刀用在你的项目里。
结尾
各位小伙伴,本文的内容到这里就全部结束了,源码骑士在这里再次感谢您的阅读!
源码骑士 — Android Framework & 全栈开发
👀 关注:跟博主一起从源码视角深耕底层原理,见证每一次成长
❤️ 点赞:让优质内容被更多人看见,让知识传递更有力量
⭐ 收藏:把API调用的代码模板存好,下次直接复制用
💬 评论:你第一次调用大模型API时踩过什么坑?评论区一起聊聊
🔄 一键四连:不要忘记给博主"一键四连"哦!今日AI入门达成!
🗡️ 寄语:三行代码打开AI的大门——重要的是你跨进来的这一步。
结语:现在打开终端,pip install openai,把本文的三行代码跑一遍。看到AI回复你的那一刻,你就正式成为AI开发者了。不要忘记给博主"一键四连"哦!
更多推荐

所有评论(0)