共计 1695 个字符,预计需要花费 5 分钟才能阅读完成。
背景痛点:新手常踩的坑
刚接触 ChatGPT 的开发者往往会遇到这些典型问题:

- 提示词效果不稳定 :同一个问题换种问法就得到完全不同的答案
- API 调用超时 :未设置合理超时导致线程阻塞
- 上下文丢失 :多轮对话时忘记维护历史消息
- 成本失控 :未监控 token 消耗导致意外账单
- 错误处理缺失 :网络波动时直接崩溃无重试
技术选型:API 调用方式对比
- 同步调用
- 优点:代码简单直观
- 缺点:请求期间线程阻塞
-
适用场景:快速原型开发
-
异步调用
- 优点:高并发时不阻塞主线程
- 缺点:需要 asyncio 等额外学习成本
-
适用场景:Web 服务等 IO 密集型应用
-
流式响应
- 优点:实时显示生成内容
- 缺点:需要处理分块数据
- 适用场景:需要打字机效果的场景
核心实现
提示词工程基本原则
- 具体性 :避免 ” 怎么写代码 ” 这种宽泛问题,改为 ” 用 Python 实现快速排序 ”
- 角色设定 :明确 AI 角色如 ” 你是一个资深 Python 工程师 ”
- 分步指令 :复杂任务拆解为多个步骤
- 示例示范 :提供输入输出样本(Few-shot learning)
Python API 调用示例
import openai
from tenacity import retry, stop_after_attempt, wait_exponential
# 带重试机制的 API 调用
@retry(stop=stop_after_attempt(3), wait=wait_exponential(multiplier=1, min=4, max=10))
def chat_completion(messages, model="gpt-3.5-turbo", temperature=0.7):
try:
response = openai.ChatCompletion.create(
model=model,
messages=messages,
temperature=temperature,
timeout=10 # 重要:设置超时
)
return response.choices[0].message.content
except Exception as e:
print(f"API 调用失败: {str(e)}")
raise
# 构建对话上下文
dialogue = [{"role": "system", "content": "你是一个 Python 编程助手"},
{"role": "user", "content": "如何用 pandas 读取 CSV 文件?"}
]
# 持续对话
dialogue.append({"role": "assistant", "content": "使用 pd.read_csv() 函数"})
dialogue.append({"role": "user", "content": "那如何只读取前 100 行呢?"})
response = chat_completion(dialogue)
print(response)
上下文对话构建技巧
- 始终维护 messages 数组
- 每条消息明确 role(system/user/assistant)
- 系统消息设定 AI 行为准则
- 控制对话轮次避免 token 溢出
性能考量
| 模型 | 平均响应时间 | 每千 token 成本 | 适合场景 |
|---|---|---|---|
| gpt-3.5-turbo | 1.2s | $0.002 | 常规问答 / 代码生成 |
| gpt-4 | 3.5s | $0.06 | 复杂逻辑 / 创造性工作 |
避坑指南
-
误区 :不清理对话历史导致 token 超标
解决 :定期重置或摘要历史对话 -
误区 :温度参数始终为默认值
解决 :创造性任务用 0.7-1.0,确定性任务用 0 -0.3 -
误区 :直接展示未经处理的 AI 回复
解决 :添加内容过滤层 -
误区 :忽略速率限制
解决 :实现请求队列和退避算法 -
误区 :未处理敏感信息
解决 :在客户端本地脱敏
进阶集成建议
- 代码补全 :绑定到 IDE 快捷键
- 文档生成 :结合 Swagger 自动生成 API 文档
- 异常诊断 :将错误日志自动发送给 AI 分析
实战练习
- 实现一个 CLI 聊天程序,支持对话历史查看功能
- 对比不同温度参数对代码生成质量的影响
- 用流式响应实现一个实时翻译工具
写在最后
实际使用中发现,合理设置 max_tokens 参数能显著提升响应速度。建议从简单的 gpt-3.5-turbo 开始上手,等熟悉 API 行为后再尝试 gpt-4。记得定期检查 OpenAI 官方文档,API 更新频率较高。
正文完
发表至: 未分类
近两天内
