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

无法安装OpenAI库,用Python调用ChatGPT报错的解决方法

问题修复方案

错误原因分析

从报错信息可定位三个核心问题:

  • 模型名称拼写错误:text-danvinci-003 应为正确的 text-davinci-003,这是触发"That model does not exist"错误的直接原因
  • API端点使用错误:调用的 /v1/engines/{model}/jobs 不是文本补全的正确端点,官方指定的端点为 /v1/completions
  • 响应处理逻辑错误:API返回的是字典对象,不能用 .choices 这种属性访问方式,且未提前处理错误响应,导致后续代码崩溃

修复后的代码

import requests

with open('../api-key.txt','r') as key:
    data = key.read().strip()

api_key = data
# 修正模型名称拼写
model="text-davinci-003"

def chat_with_chatgpt(prompt):
    # 修正API端点,同时请求体中添加model参数
    res = requests.post("https://api.openai.com/v1/completions", 
                        headers = {
                            "Content-Type":"application/json",
                            "Authorization":f"Bearer {api_key}"
                        },
                        json={
                            "model": model,
                            "prompt":prompt,
                            "max_tokens":100
                        }).json()
    
    # 优先处理错误响应
    if "error" in res:
        print(f"Error: {res['error']['message']}")
        return None
    
    # 用字典键索引方式获取结果,去除多余空白字符
    return res['choices'][0]['text'].strip()

while True:
    prompt = input('Me: ')
    # 处理空输入情况
    if not prompt:
        print("请输入有效内容")
        continue
    response = chat_with_chatgpt(prompt)
    if response:
        print(f'ChatGPT: {response}')

修改说明

  1. 模型名称修正:修正拼写错误,匹配OpenAI官方提供的模型标识
  2. API端点调整:更换为官方文本补全API端点,同时按照要求在请求体中指定model参数
  3. 响应逻辑优化:
    • 先检查响应中的错误字段,提前拦截并输出错误信息,避免后续代码报错
    • 改用字典键索引的方式访问返回内容,符合Python字典的操作规范
    • 对返回文本执行strip()处理,去除多余空白字符,优化输出格式
  4. 空输入处理:添加空输入判断,避免无意义的API调用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 16:05:52