ㅁ 개요
O 프로그램 소개
- 이번 글은 이전글([업그레이드]chatGPT API 사용 하기 - 4.구글colab에서 스테이블디퓨젼+chatGPT로 이미지 생성하기)에 이은 5번째 마지막 글로 앞에서 했던 모든내용을 파이썬 코드로 작성 후 자동으로 실행하는 방법에 대하여 설명합니다.
**본 포스팅 글은 아래 유튜브 사이트(국내 파이썬 최고 실력자 중 한 분)의 내용을 참고하여 작성하였으며, 초보자들이 좀 더 쉽고, 잘 따라할 수 있도록 해당 내용을 세부적으로 설명한 글입니다. 자세한 내용은 아래 사이트를 참고하여 주시기 바랍니다.
[출처] 자신의 상상을 그림으로 그리는 인공지능 - ChatGPT API 사용법|빵형의 개발도상국
https://www.youtube.com/watch?v=sLgYJIpqUJg
O 완성된 프로그램 실행 화면
1.프로그램을 실행하면 아래와 같이 동작 합니다.
최초 chatGPT에게 물어볼 수 있도록 '명령을 내려 주세요: ' 란에 질문을 요청하면 수초내에 응답을 해주며, 다시
'명령을 내려 주세요.: ' 가 깜빡이며 명령을 기다립니다.
명령을 내려 주세요: chatGPT에 대해 설명해줘
명령을 내려 주세요: 위 문장을 50자로 요약해줘
2. 아래와 같이 계속해서 위의 질문 내용과 연계하여 요약을 요청하였으며, 점 점 더 짧게 요약을 잘 해주고 있는 것을 볼 수 있습니다.
명령을 내려 주세요: 위 문장을 40자로 요약해줘
명령을 내려 주세요: 위 문장을 30자로 요약해줘
명령을 내려 주세요: 위 문장을 20자로 요약해줘
3. 프로그램 종료 시 'bye'를 입력하여 정상적으로 종료합니다.
bye
O 사전 준비
1.프로그램 실행 시 아래 에러 메시지가 뜨는 경우 openai의 버전을 확인해야 합니다.
AttributeError: module 'openai' has no attribute 'ChatCompletion'
2. 아래 명령으로 openai의 버전 확인 결과 '0.26.5'가 확인 되었습니다. chatGPT3.5 API를 사용하기 위해서는 버전이 0.27.0 이상 되어야 합니다.
>pip show openai
3. 따라서 아래와 같은 명령으로 openai를 업그레이드 해줍니다.
>pip install --upgrade openai
4. 다시 버전 확인 결과 '0.27.2' 버전으로 확인되며, '0.27.0' 버전 이상이므로 이제 우리는 chatGPT3.5의 API를 사용할 수 있습니다.
ㅁ 세부 내용
O 완성된 소스
소스 : 1.py
import openai
from config import *
import time
openai.api_key = OPENAI_API_KEY
print("chatGPT를 종료하려면 'bye'를 입력하세요.\n")
content = ''
while True:
prompt = input("명령을 내려 주세요: ")
try:
messages = [
{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': content},
]
messages.append({'role': 'assistant', 'content': msg })
messages.append({'role': 'user', 'content': prompt })
except:
messages = [
{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': prompt},
]
if prompt == 'bye':
print("chatGPT를 종료합니다.")
break
response = openai.ChatCompletion.create(
model='gpt-3.5-turbo',
messages=messages
)
print(response)
print("--------------------------------")
print(str(response['choices'][0]['message']['content']).strip())
msg = str(response['choices'][0]['message']['content']).strip()
print("--------------------------------")
time.sleep(1)
content = content + msg
O 주요 내용
1.소스코드에 대해 간략히 설명 드리겠습니다.
코드의 내용 중 핵심은 chatGPT가 이전 질의/응답 내용을 이해하고 이어서 질문을 하더라도 이에 맞는 답변을 할 수 있게 하는 것입니다.
아래 코드에서는
최초 prompt에 질문하는 경우(line 11)
messages[]리스트가 없으므로(거짓이므로), try~except 구문의 except 구문이 실행됩니다. (line 20)
예)'chatGPT에 대해 설명해줘'
이후 다음번 질문 부터는 messages[]가 생성되었으므로(참이므로), try~except 구문의 try 구문이 실행됩니다.(line 12)
여기서 chatGPT 3.5 API의 요청 형식에 맞게
1) system(chatGPT)와 user(나, 요청자)의 역할을 정의해 주고 (line13~16)
1-2) 누적된 이전 질의/응답을 포함할 수 있도록 content를 넣어 줍니다. (line 15)
messages = [
{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': content},
]
content 변수는 누적된 이전 질의/응답을 포함하도록 while 루프 하단에 아래와 같이 코딩해 줍니다.
content = content + msg(직전 질의/응답) (line 43)
2) 그 후 messages.append() 함수로 messages리스트에 role을 추가해 줍니다.
messages.append({'role': 'assistant', 'content': 'You are a helpful assistant.'})
messages.append({'role': 'user', 'content': prompt })
예)'위 내용을 50자로 요약해줘'
그 외 설명은 위의 주석을 참고하시기 바랍니다.
ㅁ 정리
O 우리가 배운 내용
이것으로 [업그레이드]chatGPT API사용하기 편을 마치며, 댓글과 하트는 제가 이글을 지속할 수 있게 해주는 힘이 됩니다.
위의 내용이 유익하셨다면, 댓글과 하트 부탁드립니다.
감사합니다.
※ 추가적인 정보는 아래 유튜브 영상에서 해당 내용을 더욱 자세히 보실 수 있습니다.
'파이썬 AI 실습 > [업그레이드]chatGPT API 사용하기' 카테고리의 다른 글
[업그레이드]chatGPT API 사용 하기 - 4.구글colab에서 스테이블디퓨젼+chatGPT로 이미지 생성하기 (0) | 2023.04.04 |
---|---|
[업그레이드]chatGPT API 사용 하기 - 3.chatGPT API 사용하기 (0) | 2023.04.04 |
[업그레이드]chatGPT API 사용 하기 - 2.구글 colab사용하기 (0) | 2023.04.04 |
[업그레이드]chatGPT API 사용 하기 - 1.소개편 (0) | 2023.04.04 |