共计 2447 个字符,预计需要花费 7 分钟才能阅读完成。
引言:ChatGPT 能力概述
ChatGPT 是 OpenAI 推出的强大语言模型,能够理解和生成自然语言文本。它可以用于各种场景,如聊天机器人、内容生成、代码辅助等。对于开发者来说,通过 API 调用 ChatGPT 可以轻松集成这些功能到自己的应用中。

准备工作:API 密钥获取与环境配置
- 注册 OpenAI 账号
- 访问 OpenAI 官网 并注册账号
-
完成邮箱验证和必要的身份认证
-
获取 API 密钥
- 登录后进入 API 密钥管理页面
- 点击『Create new secret key』生成新密钥
-
妥善保存密钥(只会显示一次)
-
安装必要的库
- 确保已安装 Python 3.7+
- 安装 OpenAI 官方库:
pip install openai
基础调用:完整代码示例与参数解析
下面是一个最简单的 ChatGPT API 调用示例:
import openai
# 设置 API 密钥
openai.api_key = '你的 API 密钥'
# 调用 ChatGPT
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "请用简单语言解释量子计算"}
]
)
# 打印响应
print(response.choices[0].message.content)
关键参数解析
- model
-
指定使用的模型版本,如 gpt-3.5-turbo 或 gpt-4
-
temperature (0-2)
- 控制输出的随机性
- 较低值(如 0.2)结果更确定
-
较高值(如 0.8)更有创造性
-
max_tokens
- 限制响应长度(1 token≈3/ 4 个英文单词)
- 典型值:256-2048
高级技巧:上下文管理与多轮对话实现
ChatGPT 支持多轮对话,关键在于正确维护 messages 数组:
conversation = [{"role": "system", "content": "你是一个乐于助人的 AI 助手"},
{"role": "user", "content": "推荐几本关于人工智能的好书"}
]
# 第一轮响应
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=conversation
)
# 添加 AI 回复到对话历史
conversation.append({"role": "assistant", "content": response.choices[0].message.content})
# 用户追问
conversation.append({"role": "user", "content": "这些书适合初学者吗?"})
# 第二轮调用
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=conversation
)
错误处理:常见问题解决方案
- 速率限制错误
- 现象:收到 429 状态码
-
解决方案:
- 实现指数退避重试机制
- 监控使用量(响应头中的 x-ratelimit-* 字段)
-
认证错误
- 现象:401 Unauthorized
-
检查:
- API 密钥是否正确
- 是否设置了正确的组织 ID(如有)
-
上下文过长
- 现象:400 Bad Request
- 解决方案:
- 减少 max_tokens
- 压缩或删除部分历史消息
生产环境建议:稳定性与成本考量
- 缓存策略
- 对常见查询结果进行缓存
-
设置合理的 TTL(如 1 小时)
-
成本控制
- 监控 token 使用量(response.usage.total_tokens)
-
为 API 设置预算和警报
-
性能优化
- 使用流式响应(stream=True)减少延迟感知
- 在客户端实现部分渲染
实战练习:构建天气查询对话机器人
现在,让我们动手创建一个简单的天气查询机器人:
-
首先安装 requests 库:
pip install requests -
创建 weather_bot.py:
import openai import requests # 天气 API(示例用,实际需替换为真实 API)def get_weather(city): # 这里应调用真实天气 API return f"{city} 的天气是晴朗,25°C" # 对话处理函数 def handle_conversation(user_input, conversation_history): # 检查是否询问天气 if "天气" in user_input: city = user_input.replace("天气", "").strip() return get_weather(city) # 否则调用 ChatGPT conversation_history.append({"role": "user", "content": user_input}) response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=conversation_history, temperature=0.7 ) reply = response.choices[0].message.content conversation_history.append({"role": "assistant", "content": reply}) return reply # 主循环 conversation = [{"role": "system", "content": "你是一个能查询天气的智能助手"}] while True: user_input = input("你:") if user_input.lower() in ["退出", "exit"]: break reply = handle_conversation(user_input, conversation) print("AI:", reply) -
运行测试:
python weather_bot.py尝试输入:” 北京天气怎么样 ” 或 “ 讲个笑话 ”
通过这个练习,你已经掌握了 ChatGPT API 的基本用法,并能将其与其他服务集成。接下来可以尝试扩展功能,比如添加更多服务接口或改进对话体验。
正文完
发表至: 未分类
近两天内
