Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Python openapi code keeps failing with errors

My attempt at using the OpenAI API keeps returning errors.

I think the problem is that I am not retrieving the API key correctly.

Is there a way I can access the API without using the environ. method for storing the key

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

import os
import openai_secret_manager
import openai
# Add Key to environ
os.environ["api_key"] = "secret key....." # I got a real key from openai.com

# Retrieve key from environ.
openai.api_key = os.getenv("api_key")

# Test connectiom and list available API models
res = openai.Model.list()
print(res) # This works fine


# load the API key from the environment
secrets = openai_secret_manager.get_secret(openai.api_key) # L31 - this line triggers the error

# prompt for the API to generate text
prompt = "What is the meaning of life?"

# generate a response from the API
response = openai.Completion.create(
  engine="davinci",
  prompt=prompt,
  max_tokens=10,
  n=1,
  stop=None,
  temperature=0.5,
)

# print the generated text
print(response.choices[0].text)

The error message I get is:

Traceback (most recent call last):
  File "/Users/home/Dropbox/Python_general_work/work_in_progress/chatgpt/main.py", line 31, in <module>
    secrets = openai_secret_manager.get_secret(openai.api_key)
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/openai_secret_manager.py", line 6, in get_secret
    return openai_secret_manager.get_secret(key_name)
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/openai_secret_manager.py", line 6, in get_secret
    return openai_secret_manager.get_secret(key_name)
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/openai_secret_manager.py", line 6, in get_secret
    return openai_secret_manager.get_secret(key_name)
  [Previous line repeated 996 more times]
RecursionError: maximum recursion depth exceeded

>Solution :

Looks like there is a recursive function call:

Traceback (most recent call last):
  File "/Users/home/Dropbox/Python_general_work/work_in_progress/chatgpt/main.py", line 31, in <module>
    secrets = openai_secret_manager.get_secret(openai.api_key)
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/openai_secret_manager.py", line 6, in get_secret
    return openai_secret_manager.get_secret(key_name)
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/openai_secret_manager.py", line 6, in get_secret
    return openai_secret_manager.get_secret(key_name)
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/openai_secret_manager.py", line 6, in get_secret
    return openai_secret_manager.get_secret(key_name)

openai_secret_manager.get_secret calls openai_secret_manager.get_secret which calls openai_secret_manager.get_secret and so on…

I don’t know what this actually is, but following the official Usage examples would look like this. There also does not seem a need for you to programmatically set and retrieve the environment variable:


import openai
openai.api_key = "sk-..." # Your key


# prompt for the API to generate text
prompt = "What is the meaning of life?"

# generate a response from the API
response = openai.Completion.create(
  engine="davinci",
  prompt=prompt,
  max_tokens=10,
  n=1,
  stop=None,
  temperature=0.5,
)

# print the generated text
print(response.choices[0].text)
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading