共计 2187 个字符,预计需要花费 6 分钟才能阅读完成。
前置准备
1. 获取 API 密钥
要使用 ChatGPT 的 API 功能,首先需要获取 API 密钥。以下是具体步骤:

- 访问 OpenAI 官网(https://openai.com)并注册账号
- 登录后进入 API 页面(https://platform.openai.com)
- 在右上角用户菜单选择 ”View API keys”
- 点击 ”Create new secret key” 生成 API 密钥
重要提示:
- API 密钥只会在创建时显示一次,请立即妥善保存
- 不要将 API 密钥直接暴露在客户端代码中
- 建议设置使用限额以防意外消耗
2. 环境配置
对于 Python 开发者,需要安装官方库:
pip install openai
建议创建一个新的虚拟环境来管理依赖:
python -m venv chatgpt-env
source chatgpt-env/bin/activate # Linux/Mac
chatgpt-env\Scripts\activate # Windows
核心概念
1. 模型版本
ChatGPT API 提供多个模型版本,新手推荐使用:
gpt-3.5-turbo:性价比高,响应快gpt-4:能力更强但价格更高
2. Token 机制
- 1 个 token 约等于 0.75 个英文单词
- 中文通常需要更多 token
- API 调用有 token 数量限制(如 4096 tokens)
第一个 API 调用示例
下面是一个完整的 Python 示例,包含错误处理:
import openai
from openai.error import APIError, RateLimitError
# 设置 API 密钥
openai.api_key = "你的 API 密钥" # 实际使用时建议从环境变量读取
try:
# 发起 API 请求
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo", # 指定模型
messages=[ # 消息历史
{"role": "system", "content": "你是一个有帮助的助手"},
{"role": "user", "content": "请用简单语言解释量子计算"}
],
temperature=0.7, # 控制创造性(0-2)
max_tokens=150 # 限制响应长度
)
# 提取响应内容
answer = response["choices"][0]["message"]["content"]
print(answer)
except RateLimitError:
print("请求过于频繁,请稍后再试")
except APIError as e:
print(f"API 错误: {str(e)}")
except Exception as e:
print(f"发生意外错误: {str(e)}")
关键参数说明:
messages: 对话历史,包含角色(system/user/assistant)temperature: 值越高回答越随机max_tokens: 限制响应长度
错误处理
常见错误及解决方案
- 401 Unauthorized
- 原因:API 密钥无效
-
解决:检查密钥是否正确,是否已复制完整
-
429 Too Many Requests
- 原因:超过速率限制
-
解决:降低请求频率或升级账户
-
503 Service Unavailable
- 原因:服务器过载
- 解决:稍后重试
性能考量
1. 请求频率限制
- 免费账户:20 请求 / 分钟
- 付费账户:更高限制(取决于等级)
2. 响应时间优化
- 使用
gpt-3.5-turbo替代gpt-4提高速度 - 合理设置
max_tokens减少响应体积
避坑指南
- 密钥暴露
- 错误:将 API 密钥硬编码在客户端代码中
-
正确:使用环境变量或配置文件
-
超长对话
- 错误:不限制
max_tokens导致意外消耗 -
正确:根据需求设置合理上限
-
上下文丢失
- 错误:每次请求都从新对话开始
- 正确:维护对话历史(见最佳实践)
最佳实践
1. 缓存策略
对常见问题答案进行缓存,减少 API 调用:
from functools import lru_cache
@lru_cache(maxsize=100)
def get_cached_response(prompt):
# 此处调用 API...
return response
2. 对话上下文管理
保持多轮对话连续性:
conversation_history = [{"role": "system", "content": "你是一个有帮助的助手"}
]
def chat(message):
conversation_history.append({"role": "user", "content": message})
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=conversation_history
)
assistant_reply = response["choices"][0]["message"]["content"]
conversation_history.append({"role": "assistant", "content": assistant_reply})
return assistant_reply
扩展学习建议
- 流式响应:处理长文本时改善用户体验
- 微调模型:为特定任务定制模型行为
- 函数调用:让模型返回结构化数据
掌握了这些基础知识后,你就可以开始构建自己的智能对话应用了。API 的功能远不止于此,建议从简单项目开始,逐步探索更多可能性。
正文完
