共计 2086 个字符,预计需要花费 6 分钟才能阅读完成。
核心概念
ChatGPT API 基于 GPT(Generative Pre-trained Transformer)模型,通过 HTTP 接口提供服务。开发者可以通过发送请求与模型交互,获取生成的文本响应。其计费模式基于 token 数量,每 1000 个 token 计费一次。

- 基础架构:采用 RESTful API 设计,支持同步和异步调用
- 计费模式:按实际使用的 token 数量收费,不同模型单价不同
- 速率限制:免费账号每分钟 3 次请求,付费账号可提升至 60 次 / 分钟
准备工作
- 访问 OpenAI 官网(https://openai.com)并点击 ”Sign up” 注册账号
- 完成邮箱验证和手机号绑定(不支持虚拟号码)
- 登录后进入 API Keys 页面(https://platform.openai.com/account/api-keys)
- 点击 ”Create new secret key” 生成 API 密钥
- 妥善保存密钥(页面关闭后将无法再次查看完整密钥)
接入方案
REST API vs Streaming API
- REST API:
- 适合简单请求 / 响应场景
- 一次性返回完整结果
-
代码实现简单
-
Streaming API:
- 适合长文本生成场景
- 实时返回部分结果
- 提升用户体验(避免长时间等待)
代码实战
以下是 Python 3.8+ 的完整示例代码,包含错误处理和上下文管理:
import openai
import asyncio
from tenacity import retry, stop_after_attempt, wait_exponential
openai.api_key = "your-api-key"
class ChatGPTClient:
def __init__(self):
self.conversation_history = []
@retry(stop=stop_after_attempt(3), wait=wait_exponential(multiplier=1, min=4, max=10))
async def send_message(self, message):
try:
self.conversation_history.append({"role": "user", "content": message})
response = await openai.ChatCompletion.acreate(
model="gpt-3.5-turbo",
messages=self.conversation_history,
temperature=0.7,
stream=True # 启用流式响应
)
full_response = ""
async for chunk in response:
content = chunk["choices"][0].get("delta", {}).get("content", "")
if content:
full_response += content
print(content, end="", flush=True)
self.conversation_history.append({"role": "assistant", "content": full_response})
return full_response
except openai.error.AuthenticationError as e:
print(f"认证失败: {e}")
except openai.error.RateLimitError as e:
print(f"速率限制: {e}")
except Exception as e:
print(f"未知错误: {e}")
async def main():
client = ChatGPTClient()
while True:
user_input = input("\nYou:")
if user_input.lower() in ['quit', 'exit']:
break
print("AI:", end="")
await client.send_message(user_input)
if __name__ == "__main__":
asyncio.run(main())
性能优化
上下文窗口管理
- 摘要技术:对长对话历史生成摘要,替代完整历史
- 滑动窗口:仅保留最近的 N 条对话(推荐 N =6)
- 关键信息提取:识别并保留重要实体和意图
Token 节省技巧
- 设置
max_tokens参数限制响应长度 - 使用
gpt-3.5-turbo而非gpt-4(成本低 10 倍) - 精简用户输入的冗余信息
避坑指南
- 无效 API Key 错误
- 检查密钥是否正确复制(注意首尾空格)
-
确认账号是否已完成邮箱和手机验证
-
费率限制错误
- 免费账号升级到付费计划
-
实现请求队列和退避重试机制
-
上下文超限错误
- 监控
usage.total_tokens返回值 - 当接近 4096 限制时主动清空或缩减历史
结语
接入 ChatGPT API 的过程其实并不复杂,关键是要理解其工作原理和最佳实践。建议先从简单的对话功能开始,逐步尝试更复杂的上下文管理和流式响应。OpenAI 的文档更新频繁,遇到问题时查阅最新官方文档往往是最快捷的解决方案。随着使用深入,你会发现这个强大的工具能为你的应用带来无限可能。
正文完
