OpenAI API 错误:“这是聊天模型,v1/completions 端点不支持”

RAF*_*128 21 python discord openai-api chatgpt-api

import discord
import openai
import os


openai.api_key = os.environ.get("OPENAI_API_KEY")

#Specify the intent
intents = discord.Intents.default()
intents.members = True

#Create Client
client = discord.Client(intents=intents)

async def generate_response(message):
    prompt = f"{message.author.name}: {message.content}\nAI:"
    response = openai.Completion.create(
        engine="gpt-3.5-turbo",
        prompt=prompt,
        max_tokens=1024,
        n=1,
        stop=None,
        temperature=0.5,
    )
    return response.choices[0].text.strip()

@client.event
async def on_ready():
    print(f"We have logged in as {client.user}")
    
@client.event
async def on_message(message):
    if message.author == client.user:
        return

    response = await generate_response(message)
    await message.channel.send(response)

discord_token = 'DiscordToken'


client.start(discord_token)  
Run Code Online (Sandbox Code Playgroud)

我尝试使用不同的方式来访问 API 密钥,包括添加到环境变量。

我还能尝试什么或者哪里出错了,对于编程来说还很陌生。错误信息:

openai.error.AuthenticationError:未提供 API 密钥。您可以使用“openai.api_key =”在代码中设置 API 密钥,也可以设置环境变量 OPENAI_API_KEY=)。如果您的 API 密钥存储在文件中,您可以使用“openai.api_key_path = ”将 openai 模块指向它。您可以在 OpenAI Web 界面中生成 API 密钥。请参阅 https://onboard.openai.com 了解详细信息,如果您有任何疑问,请发送电子邮件至 support@openai.com。


编辑

我解决了“未提供 API 密钥”错误。现在我收到以下错误消息:

openai.error.InvalidRequestError:这是一个聊天模型,v1/completions 端点不支持。您的意思是使用 v1/chat/completions 吗?

Rok*_*nko 26

关于openai.error.InvalidRequestError: This is a chat model and not supported in the v1/completions endpoint

\n

如果您只更改一件事,您上面发布的代码将立即起作用:更改gpt-3.5-turbotext-davinci-003. 这将为您提供有关为何出现此错误的答案。这是因为您使用了适用于 GPT-3 API 端点的代码,但想要使用 GPT-3.5 模型(即gpt-3.5-turbo)。请参阅型号端点兼容性

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n
API端点模型组型号名称
/v1/聊天/完成\xe2\x80\xa2 GPT-4
\xe2\x80\xa2 GPT-3.5
\xe2\x80\xa2gpt-4和注明日期的型号版本
\xe2\x80\xa2gpt-4-32k和注明日期的型号版本
\xe2\x80\xa2 gpt-4-1106-preview
\xe2\x80\xa2 gpt-4-vision-preview
\xe2\x80\xa2gpt-3.5-turbo和注明日期的型号版本
\xe2\x80\xa2gpt-3.5-turbo-16k和注明日期模型发布了
\xe2\x80\xa2 的微调版本gpt-3.5-turbo
/v1/完成(旧版)\xe2\x80\xa2 GPT-3.5
\xe2\x80\xa2 GPT 基础
\xe2\x80\xa2 gpt-3.5-turbo-instruct
\xe2\x80\xa2 babbage-002
\xe2\x80\xa2davinci-002
/v1/助手除受支持之外的所有型号gpt-3.5-turbo-0301
检索工具需要gpt-4-1106-previewgpt-3.5-turbo-1106
/v1/音频/转录耳语\xe2\x80\xa2whisper-1
/v1/音频/翻译耳语\xe2\x80\xa2whisper-1
/v1/音频/语音语音合成\xe2\x80\xa2 tts-1
\xe2\x80\xa2tts-1-hd
/v1/fine_tuning/工作\xe2\x80\xa2 GPT-3.5
\xe2\x80\xa2 GPT 基础
\xe2\x80\xa2 gpt-3.5-turbo
\xe2\x80\xa2 babbage-002
\xe2\x80\xa2davinci-002
/v1/嵌入嵌入\xe2\x80\xa2text-embedding-ada-002
/v1/节制节制\xe2\x80\xa2 text-moderation-stable
\xe2\x80\xa2text-moderation-latest
\n

如果您想使用该gpt-3.5-turbo模型,则需要编写与 GPT-3.5 API 端点(即聊天完成 API端点)配合使用的代码。

\n

如上表所示,列出了 API 端点。如果您正在使用 OpenAI 包(就像您一样),那么您需要使用适当的方法名称。见下表。

\n

注意:请注意,您必须使用与您的 OpenAI SDK 版本兼容的方法名称。

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
API端点Python SDK <v1
方法名称
Python SDKv1
方法名称
Node.js SDKv3
方法名称
Node.js SDKv4
方法名称
/v1/聊天/完成openai.ChatCompletion.createopenai.chat.completions.createopenai.createChatCompletionopenai.chat.completions.create
/v1/完成(旧版)openai.Completion.createopenai.completions.createopenai.createCompletionopenai.completions.create
/v1/助手/openai.beta.assistants.create/openai.beta.assistants.create
/v1/音频/转录openai.Audio.transcribeopenai.audio.transcriptions.createopenai.createTranscriptionopenai.audio.transcriptions.create
/v1/音频/翻译openai.Audio.translateopenai.audio.translations.createopenai.createTranslationopenai.audio.translations.create
/v1/音频/语音/openai.audio.speech.create/openai.audio.speech.create
/v1/fine_tuning/工作/openai.fine_tuning.jobs.create/openai.fineTuning.jobs.create
/v1/嵌入openai.Embedding.createopenai.embeddings.createopenai.createEmbeddingopenai.embeddings.create
/v1/节制openai.Moderation.createopenai.moderations.createopenai.createModerationopenai.moderations.create
\n

您需要调整整个代码。请参阅下面工作示例中的注释。

\n

v1该模型的Python SDK工作示例gpt-3.5-turbo(即聊天完成 API

\n

如果你跑test.py,OpenAI API 将返回以下完成信息:

\n
\n

你好呀!今天我能为您提供什么帮助?

\n
\n

测试.py

\n
import os\nfrom openai import OpenAI\nclient = OpenAI()\nOpenAI.api_key = os.getenv(\'OPENAI_API_KEY\')\n\ncompletion = client.chat.completions.create( # Change the method name\n  model = \'gpt-3.5-turbo\',\n  messages = [ # Change the prompt parameter to messages parameter\n    {\'role\': \'user\', \'content\': \'Hello!\'}\n  ],\n  temperature = 0  \n)\n\nprint(completion.choices[0].message.content) # Change message content extraction\n
Run Code Online (Sandbox Code Playgroud)\n
\n

关于openai.error.AuthenticationError: No API key provided

\n

改变这个...

\n
openai.api_key = os.environ.get(\'OPENAI_API_KEY\')\n
Run Code Online (Sandbox Code Playgroud)\n

……对此。

\n
openai.api_key = os.getenv(\'OPENAI_API_KEY\')\n
Run Code Online (Sandbox Code Playgroud)\n