OpenAI API 사용 방법(2)-예제

OpenAI
Introducing GPT-4, OpenAI’s most advanced system
https://openai.com/
ChatGPT API를 사용하기 위해서는 OpenAI 홈페이지에 들어오셔서 Developers에 Documentation를 클릭합니다.
왼쪽 GET STARTED에서 Libraries로 들어갑니다. 여기서 openai Python library를 사용하는 방법에 대해서 나와있습니다.
Python library란, Python 프로그래밍 언어를 이용하여 개발할 때 사용할 수 있는 여러 모듈과 함수들을 모아 놓은 모음집입니다. 라이브러리를 사용하면 개발자는 자신이 직접 작성하지 않아도 되는 다양한 기능들을 쉽게 활용할 수 있습니다.
이를 Vscode를 열어 실습해 보았습니다.
파드라는 폴더를 미리 만들어 주세요.
Vscode에서 '파드'라는 폴더를 열어주세요.
안에 openai라는 폴더를 만들고 그 안에 play_with_openai.py라는 파일을 만들어 줍니다.
빨간색 네모 안에 오른쪽 아이콘으로 폴더를 만들기, 왼쪽 아이콘으로 파일을 만들어 줍니다.
먼저, Terminal을 열고 아래 입력을 통해 파이썬 라이브러리 사용이 가능하도록 합니다.
pip install openai
그 다음 우리는 아래 코드를 사용해서 간단한 실습을 해보겠습니다.
실습: 한동대 드롭탑 카페 AI 직원
위의 코드는 Python으로 작성된 대화형 AI 모델과 상호작용하는 간단한 대화 시스템입니다.
import os:os모듈을 가져옵니다. 이 모듈은 운영체제와 상호작용하기 위해 사용됩니다.import openai: OpenAI Python 라이브러리를 가져옵니다. 이 라이브러리를 사용하여 GPT-3.5 모델과 상호작용합니다.def ask(text):ask함수를 정의합니다. 이 함수는 사용자의 입력에 따라 모델에 질문을 하고 모델의 응답을 반환합니다.user_input = {"role": "user", "content": text}: 사용자의 입력을 나타내는 딕셔너리를 생성합니다.messages.append(user_input):messages리스트에 사용자 입력을 추가합니다.response = openai.ChatCompletion.create(...): OpenAI의ChatCompletionAPI를 사용하여 모델에 대화를 요청합니다.messages리스트를 전달하여 대화의 이전 메시지들과 현재 메시지를 모델에 전달합니다.bot_text = response['choices'][0]['message']['content']: 모델의 응답에서 챗봇의 텍스트를 추출합니다.bot_resp = {"role": "assistant", "content": bot_text}: 챗봇의 응답을 나타내는 딕셔너리를 생성합니다.messages.append(bot_resp):messages리스트에 챗봇의 응답을 추가합니다.return bot_text: 챗봇의 응답을 반환합니다.openai.api_key = "...": OpenAI API 키를 설정합니다. 이 키는 OpenAI API를 사용하기 위해 발급받아야 합니다.system_instruction = """...""": 시스템 메시지로, 사용자에게 어떤 역할을 하는지와 가능한 메뉴를 설명합니다.messages = [{"role": "system", "content": system_instruction}]:messages리스트에 시스템 메시지를 추가합니다.while True: ...: 사용자로부터 입력을 받고,ask함수를 사용하여 챗봇의 응답을 얻어 출력합니다.
이 코드는 대화형 AI 시스템을 만들기 위해 OpenAI의 GPT-3.5 모델을 사용하는 기본적인 틀을 제공합니다. 사용자는 입력을 제공하고 챗봇은 모델을 통해 응답을 생성합니다. (Answered by ChatGPT)
- 코드 설명:
- 한동대학교 드롭탑 카페 AI 직원과 사용자가 대화를 하는 간단한 프로그램이다.
- 먼저 ‘os, openai’ 라이브러리를 import한다.
- openai에서 발급 받은 api key를 따옴표 안에 넣어줍니다.
- system_instruction을 먼저 정의해 줍니다.
- 쉽게 설명하면 AI가 어떤 역할을 맡아야 하는지 정의해주는 부분입니다.
- 구체적으로 정의하면 할 수록 정확한 답변을 받을 수 있습니다.
- 앞에서 정의된 system_instruction를 그 역할(system)과 함께 messages라는 리스트에 넣습니다.
- while문으로 무한 반복해서 system과 user가 대화를 주고받도록 합니다.
- input()으로 사용자의 질문을 받아서 ask(text)라는 함수에 질문을 파라미터로 넣습니다.
- 그럼 그 역할(user)과 내용을 함께 messages에 넣습니다.
- 그럼 model="gpt-3.5-turbo"이 만들어진 messages를 분석해서 질문에 대한 최적의 답변을 찾아냅니다. 이를 response에 저장해 두고, 이를 사용자에게 보입니다.
import os
import openai
def ask(text):
user_input = {"role": "user", "content": text}
messages.append(user_input)
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=messages)
bot_text = response['choices'][0]['message']['content']
bot_resp = {"role": "assistant", "content": bot_text}
messages.append(bot_resp)
return bot_text
# Load your API key from an environment variable or secret management service
openai.api_key = "여기에 발급받은 api key를 넣어주세요:)"
system_instruction = """
너는 한동대학교 드롭탑 카페 AI 직원이야.
아래는 카페 음료 종류야.
아래 종류의 음료 말고는 다른 음료는 없어
- 아메리카노
- 라떼
- 스무디
위의 메뉴 말고는 없다고 생각하면돼
"""
messages = [{"role": "system", "content": system_instruction}]
while True:
user_input = input("user input: ")
bot_resp = ask(user_input)
print("-"*30)
print(f"user_input: {user_input}")
print(f"bot_resp: {bot_resp}")
- 실행 예시:
댓글
로그인 후 댓글을 남길 수 있습니다.
아직 댓글이 없습니다.