共计 2335 个字符,预计需要花费 6 分钟才能阅读完成。
前置准备
- OpenAI 账号注册
- 访问 OpenAI 官网 点击 ”Sign Up”,建议使用邮箱注册
- 完成邮箱验证后,需绑定手机号(支持 +86 中国大陆号码)
-
注意:部分国家 / 地区可能需要科学上网工具才能访问

-
API Key 获取
- 登录后进入API 密钥管理页面
- 点击 ”Create new secret key” 生成密钥(建议命名为 dev_key 等有意义的名称)
-
密钥只会显示一次,请立即妥善保存
-
免费额度说明
- 新账号通常有 $5 免费额度(有效期 3 个月)
- 可通过 Usage 页面 查看剩余额度
- 注意:gpt- 4 模型不包含在免费额度中
环境配置
-
创建 Python 虚拟环境
python -m venv chatgpt_env source chatgpt_env/bin/activate # Linux/Mac chatgpt_env\Scripts\activate # Windows -
安装依赖库
pip install openai python-dotenv -
安全存储 API 密钥
- 项目根目录创建
.env文件:OPENAI_API_KEY= 你的实际密钥 - 创建
.gitignore文件加入:.env __pycache__/
核心代码实现
基础同步请求
import os
from dotenv import load_dotenv
from openai import OpenAI, APIError
load_dotenv() # 加载环境变量
client = OpenAI(api_key=os.getenv('OPENAI_API_KEY'))
def chat_completion(prompt: str) -> str:
try:
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": prompt}],
temperature=0.7, # 控制创造性(0-2)max_tokens=500, # 限制响应长度
)
return response.choices[0].message.content
except APIError as e:
print(f"API 错误: {e}")
return ""
异步请求改进
import asyncio
from openai import AsyncOpenAI
aclient = AsyncOpenAI(api_key=os.getenv('OPENAI_API_KEY'))
async def async_chat(prompt: str) -> str:
try:
response = await aclient.chat.completions.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": prompt}],
stream=True # 启用流式响应
)
full_response = ""
async for chunk in response:
content = chunk.choices[0].delta.content
if content:
full_response += content
print(content, end="") # 实时输出
return full_response
except Exception as e:
print(f"异步请求失败: {e}")
return ""
避坑指南
- 常见错误码处理
- 401:API 密钥无效 → 检查密钥是否复制完整
- 429:请求过频 → 实现指数退避重试机制
-
503:服务不可用 → 等待后重试或切换地域
-
速率限制规避
import time def request_with_retry(prompt, max_retries=3): for i in range(max_retries): try: return chat_completion(prompt) except APIError as e: if e.status_code == 429: wait_time = 2 ** i # 指数退避 print(f"等待 {wait_time} 秒后重试...") time.sleep(wait_time) else: raise return "请求失败" -
敏感数据过滤
- 在发送请求前对用户输入进行关键词过滤
- 使用
re模块检测隐私信息(如手机号、邮箱)
扩展实践
-
封装 Flask API
from flask import Flask, request, jsonify app = Flask(__name__) @app.route('/chat', methods=['POST']) def chat_api(): data = request.json response = chat_completion(data.get('prompt', '')) return jsonify({"response": response}) -
集成 LangChain
from langchain.llms import OpenAI llm = OpenAI( temperature=0.5, openai_api_key=os.getenv('OPENAI_API_KEY') ) print(llm("如何学习 Python 编程?"))
思考题
- 如何设计对话上下文管理,使 AI 能记住之前的对话?
-
提示:维护 messages 列表,交替保存 user 和 assistant 消息
-
当需要处理超长文本时,有哪些优化策略?
- 提示:考虑文本分块、摘要提取、使用 gpt-3.5-turbo-16k 等模型
结语
通过本文的实践,你应该已经掌握了 ChatGPT API 的基础接入方法。建议先从简单的同步请求开始,逐步尝试流式响应和异步调用。遇到问题时,善用 OpenAI 的 官方文档 和社区论坛。下一步可以尝试实现多轮对话系统或结合其他工具构建更复杂的 AI 应用。
正文完

