发生错误:模块“openai”没有属性“ChatCompletion”。

7

我正在尝试构建一个Discord机器人,它使用GPT-4 API作为Discord上的聊天机器人。我拥有最新版本的OpenAI库,但当我运行我的代码时,它告诉我“发生错误:模块'openai'没有属性'ChatCompletion'”。

我尝试卸载并重新安装OpenAI库,我尝试使用完成端点,并收到错误消息“这是一个聊天模型,不支持v1 / completions端点。您是否想使用v1 / chat / completions?”

这是给我带来问题的代码片段:

async def get_gpt_response(prompt, history):
    history_strings = [f"{message['role']}: {message['content']}" for message in history] # update history format
    chat_prompt = '\n'.join(history_strings + [f"user: {prompt}"])
    
    completions = openai.ChatCompletion.create(
        engine=config["model"],
        prompt=chat_prompt,
        max_tokens=config["max_tokens"],
        n=1,
        temperature=config["temperature"],
    )
    return completions.choices[0].text.strip().split('assistant:', 1)[-1].strip()

是的,在我提供的代码片段中,您可以看到它使用的是ChatCompletions端点而不是Completions端点。 - Anthony
首先,您是否已经获得了GPT-4 API的访问权限?其次,您的代码看起来像是想要使用GPT-3 API。您想要使用哪个OpenAI模型?这个问题需要更加专注。 - Rok Benko
这个回答解决了你的问题吗?module has no attribute - undefined
OpenAI已经改变了API,至少对我来说是这样的问题 https://github.com/openai/openai-python - undefined
12个回答

9

请确保您没有名为“openai.py”的文件


非常感谢你!你帮了我很多忙。 - Joseph Adam
这是一个如此简单而又自然的错误 :D - undefined

3

我遇到了完全相同的错误,即使只是安装了OpenAi库。我运行了下面的脚本:

pip install --upgrade openai

这为我提供了最新版本,并提供了ChatCompletion作为一种方法。


对我来说也是这样,不得不使用以下命令进行升级:pip install -U openai。谢谢。 - undefined

2
所以我也遇到了同样的问题,这是因为你的系统上没有安装最新版本的openai库,可能是因为你从requirements.txt安装时出了问题,或者其他原因,但是我是这样解决的:
你只需要卸载当前的openai库,然后安装最新版本的openai库即可。
pip uninstall openai

pip install openai

2

是的,我将文件名改为openai.py后它可以运行了。


我认为删除文件(例如通过重命名它)的答案已经在这里存在链接,不需要重复。 - Moritz Ringler

2
我在运行升级命令后仍然遇到了错误。当前版本的Open AI NOV 2023是1.1.1,我通过指定版本为0.28.0或0.28.1来解决了这个问题。

2
我觉得在最新版本的OpenAI聊天补全中,不再提供了。可能有其他的方法。如果你想让你的代码像之前那样工作,只需通过以下命令卸载当前的OpenAI并安装旧版本即可。这对我起作用了。
pip uninstall openai
pip install -Iv  openai==0.27.8

2

https://pypi.org/project/openai/

就像这样:

from openai import OpenAI

client = OpenAI(
    # defaults to os.environ.get("OPENAI_API_KEY")
    api_key="My API Key",
)

chat_completion = client.chat.completions.create(
    messages=[
        {
            "role": "user",
            "content": "Say this is a test",
        }
    ],
    model="gpt-3.5-turbo",
)

1
请确保您拥有最新的OpenAI库。我曾经遇到相同的问题,通过将openai从26.5升级到27.2版本解决了这个问题。

0

请确保您的Python版本为3.8或3.9。我曾经使用过3.6版本,也遇到了同样的问题,直到我升级到更高版本才能正常运行。


如果你有一个新问题,请点击提问按钮进行提问。如果这个问题链接对提供背景有帮助的话,请附上该链接。-来自审核 - Alez

0

使用以下命令进行安装并升级openai模块:

pip install --upgrade openai --user

这个方法对我有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接