Reputation: 91
I'm a little confused about using OpenAI in Python and need a little help to make this code work. I tried several solutions found on StackOverflow, none of them are working.
My goal is to make a Python code that asks two questions to the user, and then the gpt-3.5-turbo-instruct
model finds the answer and exports a questions_reponses.csv
with it. I will then convert this to XML to import it into a moodle environment.
Error message: OpenAIError: The api_key client option must be set either by passing api_key to the client or by setting the OPENAI_API_KEY environment variable
Environnement: MacOS/Thonny
My code:
import pandas as pd
# Configure OpenAI API key
from openai import OpenAI
client = OpenAI()
openai.api_key = 'my secret key openai'
# Prompt user for 2 questions
questions = []
for i in range(2):
question = input("Posez une question: ")
questions.append(question)
# Use OpenAI to answer questions
answers = []
for question in questions:
response = client.Completions.create(
engine="gpt-3.5-turbo-instruct",
prompt=f"Question: {question}\nRéponse:",
max_tokens=1024,
n=1,
stop=None,
temperature=0.7,
)
answer = response.choices[0].text.strip()
answers.append(answer)
# Create a pandas dataframe with questions and answers
df = pd.DataFrame({"Question": questions, "Réponse": answers})
# Export dataframe to CSV file
df.to_csv("questions_reponses.csv", index=False)
print("Le fichier CSV a été créé avec succès.")`
I've tried to set the environment variable OPENAI_API_KEY
in my os, but it didn't work (I always get the same error message). So I keep trying to set the key inside the code below. I don't know if my syntax is okay.
I am reaching out to the answerer here. As to the rules of Stack Exchange, I must do this in the question.
I've just tried option 1, same error message:
import pandas as pd
# Configure OpenAI API key
import os
from openai import OpenAI
client = OpenAI()
OpenAI.api_key = os.getenv('OPENAI_API_KEY')
# Prompt user for 5 questions
questions = []
for i in range(1):
question = input("Posez une question: ")
questions.append(question)
# Use OpenAI to answer questions
answers = []
for question in questions:
response = client.Completions.create(
engine="gpt-3.5-turbo-instruct",
prompt=f"Question: {question}\nRéponse:",
max_tokens=1024,
n=1,
stop=None,
temperature=0.7,
)
answer = response.choices[0].text.strip()
answers.append(answer)
# Create a pandas dataframe with questions and answers
df = pd.DataFrame({"Question": questions, "Réponse": answers})
# Export dataframe to CSV file
df.to_csv("questions_reponses.csv", index=False)
print("Le fichier CSV a été créé avec succès.")
I've just tried option 2, same error message:
import pandas as pd
# Configure OpenAI API key
from openai import OpenAI
client = OpenAI()
OpenAI.api_key = "sk-xxxxxxxxxxxxxx"
# Prompt user for 5 questions
questions = []
for i in range(1):
question = input("Posez une question: ")
questions.append(question)
# Use OpenAI to answer questions
answers = []
for question in questions:
response = client.Completions.create(
engine="gpt-3.5-turbo-instruct",
prompt=f"Question: {question}\nRéponse:",
max_tokens=1024,
n=1,
stop=None,
temperature=0.7,
)
answer = response.choices[0].text.strip()
answers.append(answer)
# Create a pandas dataframe with questions and answers
df = pd.DataFrame({"Question": questions, "Réponse": answers})
# Export dataframe to CSV file
df.to_csv("questions_reponses.csv", index=False)
print("Le fichier CSV a été créé avec succès.")
I don't understand what is going on.
This is a remark from an outsider. As to the check of the heading above: the questioner has only tried the approach 1. With approach 2, it would work, that is why the questioner could already accept the answer.
Upvotes: 6
Views: 53396
Reputation: 21
import os
os.environ["OPENAI_API_KEY"] = "your-api-key-here"
this works for me other ways just throwing teh same error over and over
Upvotes: 2
Reputation: 1683
This is a similar full code that works:
from openai import OpenAI
client = OpenAI(
api_key = "Your_API_KEY",
)
completion = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{
"role": "user",
"content": "Write a haiku about recursion in programming."
}
]
)
print(completion.choices[0].message)
Upvotes: 0
Reputation: 23078
You need to set the OpenAI API key. There are two options if you're using the OpenAI Python SDK >=v1.0.0
:
Option 1 (recommended): Set the OpenAI API key as an environment variable
import os
from openai import OpenAI
client = OpenAI(
api_key = os.environ.get("OPENAI_API_KEY"),
)
Option 2: Set the OpenAI API key directly
from openai import OpenAI
client = OpenAI(
api_key = "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
)
Upvotes: 13
Reputation: 1
On UNIX, run the command below in the terminal
export OPENAI_API_KEY=real api key
In your python file:
import os
from openai import OpenAI
client = OpenAI(
api_key=os.getenv("OPENAI_API_KEY"),
)
Upvotes: 0
Reputation: 2010
please check the openai version first, above answers might work for older versions
pip show openai
Version: 1.13.3
Summary: The official Python library for the openai API
Home-page:
Author:
Author-email: OpenAI <[email protected]>
License:
following is the another approach to set OPENAI_API_KEY for openai version 1.x.x,
import os
import openai
key = 'sk-xxxxxxxxxxxxxxx'
OR
key = os.environ['OPENAI_API_KEY']
client = openai.OpenAI(api_key=key)
Upvotes: 1
Reputation: 31
First pip install python-dotenv
Then set your .env file
OPENAI_API_KEY="*****"
NOW
import os
from openai import OpenAI
from dotenv import load_dotenv
load_dotenv()
client = OpenAI(
api_key=os.environ.get("OPENAI_API_KEY"),
)
//CODE HERE
Upvotes: 3