Ошибка аутентификации OpenAI: ключ API не предоставлен для open ai api

Ошибка аутентификации: ключ API не предоставлен. Вы можете установить свой ключ API в коде, используя «openai.api_key =», или вы можете установить переменную среды OPENAI_API_KEY=). Если ваш ключ API хранится в файле, вы можете указать на него модуль openai с помощью «openai.api_key_path =». Вы можете генерировать ключи API в веб-интерфейсе OpenAI.

Я запускаю это в совместной работе с текущим кодом, который я использую.

      import os
import openai
from dotenv import load_dotenv, find_dotenv
_ = load_dotenv(find_dotenv()) # read local .env file

openai.api_key  = os.getenv('API-KEY')
def get_completion(prompt, model="gpt-3.5-turbo"):
    messages = [{"role": "user", "content": prompt}]
    response = openai.ChatCompletion.create(
        model=model,
        messages=messages,
        temperature=0, # this is the degree of randomness of the model's output
    )
    return response.choices[0].message["content"]
def collect_messages(_):
    prompt = inp.value_input
    inp.value = ''
    context.append({'role':'user', 'content':f"{prompt}"})
    response = get_completion_from_messages(context) 
    context.append({'role':'assistant', 'content':f"{response}"})
    panels.append(
        pn.Row('User:', pn.pane.Markdown(prompt, width=600)))
    panels.append(
        pn.Row('Assistant:', pn.pane.Markdown(response, width=600, style={'background-color': '#F6F6F6'})))
 
    return pn.Column(*panels)

//i get error when I run this piece of block
import panel as pn  # GUI
pn.extension()

panels = [] # collect display 

context = [ {'role':'system', 'content':"""
You are OrderBot, an automated service to collect orders for a pizza restaurant. \
You first greet the customer, then collects the order, \
and then asks if it's a pickup or delivery. \
You wait to collect the entire order, then summarize it and check for a final \
time if the customer wants to add anything else. \
If it's a delivery, you ask for an address. \
Finally you collect the payment.\
Make sure to clarify all options, extras and sizes to uniquely \
identify the item from the menu.\
You respond in a short, very conversational friendly style. \
The menu includes \
pepperoni pizza  12.95, 10.00, 7.00 \
cheese pizza   10.95, 9.25, 6.50 \
eggplant pizza   11.95, 9.75, 6.75 \
fries 4.50, 3.50 \
greek salad 7.25 \
Toppings: \
extra cheese 2.00, \
mushrooms 1.50 \
sausage 3.00 \
canadian bacon 3.50 \
AI sauce 1.50 \
peppers 1.00 \
Drinks: \
coke 3.00, 2.00, 1.00 \
sprite 3.00, 2.00, 1.00 \
bottled water 5.00 \
"""} ]  # accumulate messages


inp = pn.widgets.TextInput(value="Hi", placeholder='Enter text here…')
button_conversation = pn.widgets.Button(name="Chat!")

interactive_conversation = pn.bind(collect_messages, button_conversation)

dashboard = pn.Column(
    inp,
    pn.Row(button_conversation),
    pn.panel(interactive_conversation, loading_indicator=True, height=300),
)

dashboard

как было предложено изменить «openai.api_key =» в поле ошибки, когда я перешел сopenai.api_key = os.getenv('API-KEY')кopenai.api_key = <API-KEY>это дало синтаксическую ошибку

2 ответа

Хорошо, я вижу, вы работаете в Google Colab. Была аналогичная проблема в Colab, исходя из этого кода:

      import openai
import os

openai.api_key = os.getenv("thisisadummyapikey123456789")

response = openai.ChatCompletion.create(
  model="gpt-3.5-turbo-16k-0613",
  messages=[
    {...

Что дало ошибку:

      AuthenticationError: No API key provided. You can set your API key in code using 'openai.api_key = <API-KEY>', or you can set the environment variable OPENAI_API_KEY=<API-KEY>). If your API key is stored in a file, you can point the openai module at it with 'openai.api_key_path = <PATH>'. You can generate API keys in the OpenAI web interface. See https://platform.openai.com/account/api-keys for details.

Поскольку переменная среды не требовалась, это сработало путем удаления .getenv из шаблона openapi:

      openai.api_key = "thisisadummyapikey123456789"

Можете ли вы сначала попробовать это, чтобы убедиться, что ваша аутентификация сама по себе в порядке?

После этого, если проблема не исчезнет, ​​задокументируйте здесь настройку переменной среды, чтобы мы могли продолжить поиск.

Вместо этого:

      openai.api_key  = os.getenv('API-KEY')

Сделай это:

openai.api_key = 'abcde12345789'

Другие вопросы по тегам