반응형
from openai import OpenAI
import os
from dotenv import load_dotenv
load_dotenv()
print(os.getenv("MYOPENAI_API_KEY"))
client = OpenAI(api_key=os.getenv("MYOPENAI_API_KEY"))
# client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
def chat(message:str) -> str:
response = client.chat.completions.create(
model = "gpt-4o",
messages = [
{"role":"system", "content": "You are a helpful asssistant"},
{"role":"user", "content":message},
],
max_tokens = 300,
temperature = 0.9,
)
return response.choices[0].message.content
if __name__ == "__main__":
print(chat("what is the meaning of life?"))
디버깅 정말 어렵게 진행했는데 결국 알아내었다.
위의 코드이고, dotenv를 활용했는데 api를 계속 생성해서 붙여도
계속해서 Authentication 오류가났다.
그 이유는 os.getenv를 했을 때 sk-proj-sk-proj-이렇게 출력되게 되어서 문제가 발생한 것이다.
어떻게 알아냈냐하면 그냥 붙여넣을 때는 잘 되다가 안되었던 것이다.
OPENAI_API_KEY
.env파일에 이렇게 붙였을 경우 중복이 되는데
MYOPENAI_API_KEY
내가 임의로 바꿀 경우 제대로된 형식으로 출력이 되었다.
그 이유는 내가 OPENAI_API_KEY를 했을 경우
윈도 시스템에 있는 OPENAI_API_KEY를 우선적으로 적용하기 때문이다. 그래서 OPENAI_API_KEY가 올바른지 환경변수에 확인하고 적용시켜주어야한다.
그렇게 했을 때 이렇게 잘 출력된 것을 볼 수 있다.
dot_env파일은 API를 붙여넣을 경우 발생하는 문제에 대비해서 .env파일에 붙여넣을 경우
반응형