개요
최근 OpenAI가 개발한 ChatGPT가 굉장히 화제가 되고 있는데, 이 글에서는 Python과 OpenAI API를 이용해 ChatGPT와 대화하는 간단한 프로그램을 작성해보려고 한다.
openai 계정이 필요하므로 회원가입부터 진행한다.
회원가입/로그인
https://platform.openai.com/에 접속하여 회원가입 또는 로그인한다. 회원가입 시 전화번호 인증이 필요하다.
크레딧 확인
API를 호출할 때마다 비용이 발생한다. 회원가입을 하면 무료 크레딧이 기본적으로 부여된다.
부여된 크레딧은 오른쪽 상단 Personal > Manage account로 이동하여 확인할 수 있다.
API 키 발급
오른쪽 상단 Personal > View API keys로 접근하여 API를 호출할 때 사용할 키를 발급한다.
팝업창을 닫으면 발급한 키를 다시 확인할 수 없으니 발급한 키는 잘 복사해 둔다. 만약 복사하지 못했다면 새 키를 발급받으면 된다.
openai 라이브러리 설치
openai를 사용하기 위한 라이브러리를 설치한다.
pip install openai
라이브러리 import
설치한 openai 라이브러리는 아래 import 문으로 사용할 수 있다.
import openai
openai API 키 설정
openai와 연동하기 위해 API를 설정해야 한다. 간단히 openai.api_key 값만 설정하면 된다.
import openai
openai.api_key = '발급받은 OpenAI API KEY'
사용 예시
openai에 응답을 요청할 때는 openai.ChatCompletion.create 함수에 사용할 모델과 메시지를 전달한다.
openai.ChatCompletion.create(
# 사용 모델
model="gpt-3.5-turbo",
# 전달 메세지
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Who won the world series in 2020?"},
{"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."},
{"role": "user", "content": "Where was it played?"}
]
)
openai의 응답 자체를 print로 단순히 출력하면 아래와 같다.
실제 메시지는 choices[].message.content에 해당하므로 출력은 아래와 같이 할 수 있다.
response = completion.choices[0].message.content
print(f'A: {response}')
예시 코드는 접은 글로 작성해 둔다.
위 코드는 무한 루프이므로 사용자가 중지할 때까지 챗봇과 대화한다.
import openai
openai.api_key = 'API KEY'
while True:
# 사용자 질문 입력
prompt = input('Q:')
# 응답
completion = openai.ChatCompletion.create(model="gpt-3.5-turbo", # 사용할 모델
# 보낼 메세지 목록
messages=[{"role": "system", "content":"넌 챗봇이야."},
{"role": "user", "content": prompt}]) # 사용자
# 출력
response = completion.choices[0].message.content
print(f'A: {response}')
실행 결과
참고 문서
https://platform.openai.com/docs/guides/chat