.env 파일에 OpenAI API key 저장 & GPT 채팅 완성 코드 테스트
2024. 12. 23. 18:45ㆍProject Log/학부 졸업프로젝트
.env 파일 생성
- OpenAI 사이트에서 API Key를 발급 받는다.
- .env 파일에 OpenAI의 API KEY를 입력한다.
OPENAI_API_KEY="{YOUR_API_KEY}"
- dotenv 라이브러리로 API Key를 로드한다.
from dotenv import load_dotenv
load_dotenv()
import openai
import os
openai.api_key = os.getenv("OPENAI_API_KEY")
채팅 완성 기능 코드 테스트 1. 예제 코드
- OpenAI의 ChatCompletion 메서드를 사용하여 채팅 완성 기능을 테스트한다.
- 파라미터로 'gpt-3.5-turbo' 모델을 사용하였다.
- message 객체는 role(역할)과 content(대화 메시지) 속성을 갖는다.
- 모델의 response를 출력한다.
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{
"role": "system",
"content": "You are a helpful teacher."
},
{
"role": "user",
"content": "Are there other measures than time complexity for an \
algorithm?",
},
{
"role": "assistant",
"content": "Yes, there are other measures besides time complexity \
for an algorithm, such as space complexity.",
},
{
"role": "user",
"content": "What is it?"
},
]
)
print(response)
print(response['choices'][0]['message']['content'])
채팅 완성 기능 코드 테스트 1. 실행 결과
response를 그대로 출력하면 json 형태로 나오고, key 값으로 조회해서 응답 내용만 출력할 수 있다.
채팅 완성 기능 코드 테스트 2. 예제 코드
- 위의 코드와 거의 동일한데, message 객체의 content만 수정하였다.
- 유저의 기본 정보(질환, 걸음수 등)를 먼저 제공하고, 깊은 수면을 취하기 위한 습관을 질문한다.
# Q&A based on Fitbit data
from dotenv import load_dotenv
load_dotenv()
import openai
import os
openai.api_key = os.getenv("OPENAI_API_KEY")
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{
"role": "system",
"content": "You are a helpful health care expert."
},
{
"role": "user",
"content": "Kim Jin-soo is 80 years old this year and \
has high blood pressure. He is exercising 1,000 steps \
today and his heart rate is 85 bpm on average. \
Could you please take this into account and \
answer the following questions?",
},
{
"role": "assistant",
"content": "Yes, I will. What is the next question?",
},
{
"role": "user",
"content": "His deep sleep time is less than 2 hours. \
Recommend 3 habits for deep sleep and explain them in detail."
},
]
)
print(response)
print(response['choices'][0]['message']['content'])
채팅 완성 기능 코드 테스트 2. 실행 결과
- 깊은 수면을 위한 습관 추천을 응답으로 받을 수 있다.
To do
- 예시 문장을 직접 입력하는 게 아니라, 사용자 입력을 받아 채팅이 진행되도록 해야 한다.
- 이전 대화 맥락을 기억하도록 해야 한다.
- 한글로 변환하는 작업을 해야 한다.
- 응답 정확도와 구체성을 개선할 방법을 찾아야 한다.