使用 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 应用中。

上一篇      下一篇