You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python入门ChatGPT Bot兼容性问题求助:API调用报错无可行方案

解决思路与代码修正

核心问题分析

你遇到的是OpenAI SDK版本迭代导致的新旧API不兼容问题,同时代码中存在会话连续性的错误写法(OpenAI API并无session_id参数)。

分步解决方法

1. 安装/升级到最新稳定版OpenAI SDK

先确保使用的是最新版SDK,避免版本混乱:

pip3 install --upgrade openai

2. 修正代码适配新版API规范

新版API的调用方式、参数结构和返回值解析均有变化,且会话连续性需通过维护messages列表实现,以下是修正后的完整代码:

from openai import OpenAI

def chat_with_gpt(api_key):
    client = OpenAI(api_key=api_key)
    # 维护对话历史,实现上下文连续性
    messages = [{"role": "system", "content": "You are a helpful assistant."}]

    while True:
        prompt = input("Prompt: ")
        if prompt == "/quit":
            break
        
        messages.append({"role": "user", "content": prompt})
        
        try:
            response = client.chat.completions.create(
                model="gpt-3.5-turbo",
                messages=messages
            )
            # 解析新版API返回值
            assistant_reply = response.choices[0].message.content
            print(assistant_reply)
            # 将助手回复加入对话历史
            messages.append({"role": "assistant", "content": assistant_reply})
        except Exception as e:
            print(f"错误信息: {e}")

if __name__ == "__main__":
    api_key = "your_actual_api_key"  # 替换为你的真实API密钥
    chat_with_gpt(api_key)

3. 排查"请求过多"错误的方向

  • 确认API密钥正确且属于当前使用的账号,避免混用不同账号密钥
  • 登录OpenAI官网查看账号的API用量和限额,新账号初始限额可能较低
  • 检查网络环境,排查是否因代理工具的缓存/重试机制导致重复请求
  • 若确认限额充足,尝试重启终端或IDE后重新运行代码

4. 跳过openai migrate工具的替代方案

若权限问题导致迁移工具无法使用,直接手动替换代码即可:

  • 旧版openai.ChatCompletion.create → 新版client.chat.completions.create(需先实例化OpenAI客户端)
  • 旧版返回值response["choices"][0]["message"]["content"] → 新版response.choices[0].message.content
  • 会话连续性通过维护messages列表实现,而非不存在的session_id参数

内容的提问来源于stack exchange,提问作者markaaronky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 11:26:12