OpenAI Python库版本兼容与gpt-3.5模型访问问题求助
解决方案
一、适配OpenAI 1.0.0+版本的代码修改
原代码存在API调用路径错误、模型ID不正确的问题,以下是修正后的完整代码:
from openai import OpenAI from gtts import gTTS from playsound import playsound # 初始化OpenAI客户端(1.0.0+版本强制要求) client = OpenAI(api_key="你的API密钥") # 若已设置环境变量OPENAI_API_KEY可省略api_key参数 def speakgpt(): aiactive = True while aiactive: # 补充获取用户输入的逻辑,避免原代码中query未定义的问题 query = input("输入问题(输入deactivate退出):").strip() if query.lower() == 'deactivate': aiactive = False else: # 1.0.0+版本的正确聊天补全调用方式 completion = client.chat.completions.create( model="gpt-3.5-turbo", # 使用正确的模型ID messages=[{"role": "user", "content": query}] ) text = completion.choices[0].message.content gptresult = gTTS(text=text, lang='en', slow=False, tld="com.scot") # 保存并播放音频(假设speak函数是播放逻辑,这里用playsound示例) temp_audio = "gpt_response.mp3" gptresult.save(temp_audio) playsound(temp_audio)
二、解决模型访问错误的关键
你遇到的The model gpt-3.5 does not exist错误,核心原因是模型ID使用错误:
- OpenAI没有名为
gpt-3.5的公开模型,正确的GPT-3.5系列模型ID为gpt-3.5-turbo(基础版)、gpt-3.5-turbo-16k(长上下文版)等,无论新旧API版本都必须使用正确ID。 - 同时需确认你的API密钥拥有对应模型的访问权限,且账户余额充足(免费额度耗尽后需充值)。
三、修复openai migrate命令无法识别的问题
若想自动迁移代码,不要直接运行openai migrate,改用:
python -m openai migrate
该命令会强制使用当前Python环境中的OpenAI工具,避免系统PATH未配置的问题。
额外注意点
- 1.0.0+版本的OpenAI API必须通过客户端实例调用,不能直接使用
openai.chat.completions.create这类模块级方法(需先初始化client = OpenAI())。 - 原代码中
query[0] == 'deactivate'的写法存在索引错误风险(如输入空字符串时),建议改为判断整个字符串是否匹配。
内容的提问来源于stack exchange,提问作者hiwhatsup
相关产品推荐
相关产品推荐

