共计 1986 个字符,预计需要花费 5 分钟才能阅读完成。
一、ChatGPT API 能做什么
ChatGPT API 是 OpenAI 提供的自然语言处理接口,核心能力包括:

- 多轮对话管理:支持上下文关联的连续对话
- 文本生成:从简短回复到长篇文章生成
- 代码辅助:解释 / 生成 / 调试编程代码
- 多语言处理:支持近百种语言的互译与处理
典型应用场景:
- 智能客服对话系统
- 内容创作辅助工具
- 编程教育助手
- 多语言翻译服务
二、Python vs Node.js 调用对比
Python 版(官方推荐)
优势:
– 语法简洁易读
– 丰富的 AI 生态库支持
– 官方 SDK 维护及时
安装:
pip install openai
Node.js 版
优势:
– 适合全栈开发者
– 非阻塞 IO 适合高并发
– 与前端项目无缝集成
安装:
npm install openai
三、核心代码实现
基础对话示例(含错误处理)
import openai
from openai.error import APIConnectionError, RateLimitError
openai.api_key = "你的 API_KEY" # 实际使用应从环境变量读取
try:
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "用 Python 写个快速排序"}],
temperature=0.7, # 控制输出随机性(0-2)
max_tokens=500 # 限制生成长度
)
print(response.choices[0].message.content)
except (APIConnectionError, RateLimitError) as e:
print(f"API 错误: {e}")
上下文保持技巧
conversation = [{"role": "system", "content": "你是一个 Python 专家"},
{"role": "user", "content": "如何用 lambda 实现排序?"}
]
# 后续请求需包含完整对话历史
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=conversation
)
# 将 AI 回复加入对话历史
conversation.append({
"role": "assistant",
"content": response.choices[0].message.content
})
流式响应处理
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "解释量子计算基础"}],
stream=True # 启用流式传输
)
for chunk in response:
content = chunk.choices[0].delta.get("content", "")
print(content, end="", flush=True)
四、关键问题分析
1. Token 计算与成本控制
- 中文 1 字≈1.3 tokens
- 计费依据:输入 + 输出总 tokens
- 优化建议:
- 设置
max_tokens限制 - 压缩系统提示内容
- 使用
gpt-3.5-turbo替代gpt-4节省成本
2. 速率限制规避
- 免费账号:3 次 / 分钟
- 付费账号:3500 次 / 分钟
- 应对策略:
- 实现指数退避重试
- 使用
time.sleep()控制请求频率 - 考虑本地缓存常见回复
3. 敏感内容过滤
- 服务端会自动过滤违规内容
- 推荐双重防护:
from openai.moderation import create def is_safe(text): response = create(input=text) return not response.results[0].flagged
五、生产环境 Checklist
必须配置项
-
超时设置
openai.api_requestor.TIMEOUT = 15 # 单位秒 -
重试机制
from tenacity import retry, stop_after_attempt @retry(stop=stop_after_attempt(3)) def safe_chat_completion(**kwargs): return openai.ChatCompletion.create(**kwargs) -
日志监控
- 记录请求 / 响应元数据
- 监控 token 消耗趋势
- 设置错误报警阈值
六、进阶思考题
- 如何实现多轮对话的长期记忆?(提示:结合向量数据库)
- 当需要处理超长文档时,有哪些分块策略?(提示:递归总结)
- 在电商场景中,怎样设计 prompt 来优化商品推荐?
写在最后
实际开发中遇到问题,建议先查阅官方文档的最新说明。API 的细节会持续更新,保持对 OpenAI 官方博客 的关注很重要。刚开始调用时建议开启详细日志,有助于理解完整的请求 - 响应过程。
正文完
