使用 requests 调用 ChatGPT API 的 Python 示例
学习笔记作者:admin日期:2025-09-28点击:14
摘要:本文介绍了如何不使用 openai 库,直接通过 requests 发送 POST 请求调用 OpenAI 的 ChatGPT API 接口,并提供了完整的代码示例和多轮对话实现方式。
概述
本文提供了一个使用 Python 的 requests
库直接调用 OpenAI 的 ChatGPT API(/v1/chat/completions
)的完整示例,无需依赖官方库 openai
。
环境准备
在开始之前,请确保已安装以下依赖:
pip install requests
API 配置
你需要一个有效的 OpenAI API Key 才能调用 API。请从 OpenAI 官网获取你的 API Key。
核心代码
以下是完整的 Python 示例代码,用于与 ChatGPT 进行对话。
import requests
import json
# 设置你的 API Key 和模型名称
API_KEY = "your-api-key-here" # 替换为你的实际 API Key
API_URL = "https://api.openai.com/v1/chat/completions"
# 请求头
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {API_KEY}"
}
# 对话历史(可以持续添加)
messages = [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "你好,请介绍一下你自己。"}
]
# 发送请求
def chat_with_gpt(messages):
data = {
"model": "gpt-3.5-turbo", # 也可以使用 gpt-4 等
"messages": messages,
"temperature": 0.7,
"max_tokens": 150
}
try:
response = requests.post(API_URL, headers=headers, data=json.dumps(data))
response.raise_for_status() # 检查 HTTP 错误
result = response.json()
reply = result['choices'][0]['message']['content']
return reply
except requests.exceptions.RequestException as e:
print("请求出错:", e)
return None
# 调用并获取回复
reply = chat_with_gpt(messages)
if reply:
print("ChatGPT 回复:")
print(reply)
安全提示
不要将 API Key 直接写在代码中,建议使用环境变量来管理敏感信息。
import os
API_KEY = os.getenv("OPENAI_API_KEY")
然后运行前设置环境变量:
export OPENAI_API_KEY="sk-..."
python chat_demo.py
多轮对话实现
你可以通过维护一个消息列表来实现多轮对话,例如:
# 用户新消息
user_input = "中国的首都是哪里?"
messages.append({"role": "user", "content": user_input})
# 获取回复
reply = chat_with_gpt(messages)
if reply:
print("ChatGPT:", reply)
messages.append({"role": "assistant", "content": reply})
总结
本文展示了如何使用 Python 的 requests
库直接调用 ChatGPT API,包括基本的单次对话、多轮对话以及安全实践。你可以基于此构建自己的聊天机器人或集成到 Web 应用中。