edu icon indicating copy to clipboard operation
edu copied to clipboard

API key set as an environment variable is not recognised by openai

Open bkowshik opened this issue 1 year ago • 0 comments

NOTE: I have opened the notebook on Google Colab by clicking on the icon at the top of the Jupyter notebook.

  • https://github.com/wandb/edu/blob/main/llm-apps-course/notebooks/01.%20Using_APIs.ipynb

Expected outcome

Since, the API token is pasted into the prompt, the expected behaviour is for the API calls to work.

if os.getenv("OPENAI_API_KEY") is None:
  if any(['VSCODE' in x for x in os.environ.keys()]):
    print('Please enter password in the VS Code prompt at the top of your VS Code window!')
  os.environ["OPENAI_API_KEY"] = getpass("Paste your OpenAI key from: https://platform.openai.com/account/api-keys\n")

assert os.getenv("OPENAI_API_KEY", "").startswith("sk-"), "This doesn't look like a valid OpenAI API key"
print("OpenAI API key configured")

Paste your OpenAI key from: https://platform.openai.com/account/api-keys
··········
OpenAI API key configured

As additional verification, I checked the value of the environment variable manually using the code snippet below:

print(os.environ["OPENAI_API_KEY"])

Actual outcome

Instead, I get the following error; the openai package for some reason is not able to read the token.

---------------------------------------------------------------------------
AuthenticationError                       Traceback (most recent call last)
[<ipython-input-8-6552200a9f15>](https://0znpwkodc2fc-496ff2e9c6d22116-0-colab.googleusercontent.com/outputframe.html?vrz=colab-20230612-060131-RC00_539609191#) in <cell line: 1>()
      1 for temp in [0, 0.5, 1, 1.5, 2]:
----> 2   pprint(f'TEMP: {temp}, GENERATION: {generate_with_temperature(temp)}')

6 frames
[/usr/local/lib/python3.10/dist-packages/openai/util.py](https://0znpwkodc2fc-496ff2e9c6d22116-0-colab.googleusercontent.com/outputframe.html?vrz=colab-20230612-060131-RC00_539609191#) in default_api_key()
    184         return openai.api_key
    185     else:
--> 186         raise openai.error.AuthenticationError(
    187             "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."
    188         )

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.

Temporary solution

The AuthenticationError provided an alternative to set API. Using this, the authentication was successful. 🎉

openai.api_key = os.environ["OPENAI_API_KEY"]

bkowshik avatar Jun 14 '23 08:06 bkowshik