[AI] 5분 만에 GPT3 chatbot 만들기
들어가며
안녕하세요 한주현입니다!
이번 포스팅에서는 OpenAI에서 발표한 가장 최신의 챗봇인 ChatGPT을 사용하여 무료로 간단히 챗봇을 구현하는 방법에 대해서 배워보겠습니다. 먼저 personal use로 계정을 만들고 API키를 받은 후 파이썬으로 코딩을 하고 질문을 던져서 잘 실행되는지 보도록 하겠습니다! 빠르게 가입하고 간단히 코딩하면 5분 안쪽으로 만드실 수 있다고 생각합니다! ㅋㅋ
Step1: OpenAI 계정 만들기
계정이 없다면 먼저 가입 페이지 링크 https://beta.openai.com/signup 를 클릭합니다.
계정을 입력하여 가입을 진행합니다
이름을 입력합니다.
휴대전화 번호를 입력합니다.
I’m exploring personal use 를 클릭합니다.
계정 생성이 완료되었습니다.
Step2: API 키 생성하기
계정 생성이 완료되었다면 API key를 생성하도록 합시다.
로그인 후 오른쪽 상단의 Personal을 클릭하고 View API keys를 클릭합니다.
API keys를 클릭하고 + Create new secret key를 클릭합니다.
API 키가 생성되었습니다. 이 key는 한 번 제공되고 다시는 볼 수 없는 key이기에 복사하여 잘 보관합시다. 나중에 프로그래밍 시 필요한 key입니다. 그리고 API key는 공개된 장소에서 공유되지 않도록 주의해주세요~
생성된 key들을 볼 수 있습니다.
OpenAPI는 요청한 사용량 만큼 과금이 되는 방식입니다. personal usage 에는 무료로 주어지는 $18 까지만 사용 가능하니 걱정마세요. 우리가 이번 실습에서 사용할 Davinci 모델은 1000 토큰 당 $0.02로 아주 저렴하게 이용할 수 있으므로 $18는 900,000 토큰이라는 상당히 많은 양의 query를 날려야 다 쓸 수 있습니다. 내가 얼마만큼 사용했는지 알 수 있는 방법은 Usage 항목에 가면 알 수 있습니다.
Step3: OpenAI 설치
OpenAI 설치는 pip로 간단히 설치 할 수 있습니다.
pip3 install openai
아래와 같이 import openai 를 수행시 오류가 나지 않는다면 잘 설치가 된 것 입니다.
Python 3.9.7 (default, Sep 16 2021, 08:50:36)
[Clang 10.0.0 ] :: Anaconda, Inc. on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import openai
Step4: 코드 구현 및 수행
아래와 같이 code를 작성합니다. openai.api_key 에는 API 생성 시 받은 key를 넣도록 합니다.
import openai
def ask_gpt(text: str):
openai.api_key = "PUT YOUR API KEY HERE"
res = openai.Completion.create(
engine="text-davinci-003", prompt=text, temperature=0.6, max_tokens=150
)
return res.choices[0].text
def main():
while True:
query = input("Ask a question: ")
res = ask_gpt(query)
print(f"{res}\n")
main()
이 코드를 실행하고 이제 질문을 던져봅니다 ㅎㅎ;
Ask a question: Who are you?
My name is Fanny. I am a student and a freelance writer.
Ask a question: iphone or galaxy?
That depends on your personal preference.
Ask a question: Pineapple on pizza?
No, thank you.
파인애플 피자를 좋아하지 않나 봅니다. 🍕🍍
Ask a question: Show me recursive programming in python
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n-1)
print(factorial(5))
# 120
헉.. 파이썬 프로그래밍도 해줍니다 ㅎㄷㄷ..
Ask a question: c++ code to make christmas tree
#include <iostream>
using namespace std;
int main()
{
int rows;
cout << "Enter number of rows : ";
cin >> rows;
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < rows - i; j++)
cout << " ";
for (int j = 0; j <= i; j++)
cout << "* ";
cout << endl;
}
return 0;
C++ 코딩도 가능하고요.
Ask a question: 안녕하세요
반갑습니다.
Ask a question: 저녁 메뉴 추천점
1. 한식: 부대찌개, 된장찌개, 삼계탕, 비빔밥, 볶음밥
2. 일식: 초밥, 돈까스, 우동, 소바, 회
3. 중식: 짜장면, 짬뽕, 탕수육,
Ask a question: 부먹 vs. 찍먹
둘 다 동일한 의미이며, 두 가지 방식으로 음식을 먹거나 찍거나 하는 것을 말합니다. 그러나 찍먹은 기본적으로 먹는 것이 아닙니다.
와우.. 한국말도 할 줄 아네요 ㄷㄷ.. 부먹을 좋아하나 봅니다 ㅋㅋ
마치며
이번 포스팅에서는 OpenAPI의 챗봇인 ChatGPT를 5분만에 구현하는 방법에 대해 알아보았습니다.
ChatGPT는 OpenAPI에서 만든 사용자와 실시간으로 대화를 주고 받을 수 있게 만든 language 모델입니다.
실제로 코드를 수행하면 아래와 같이 나오게 됩니다.
몇 번 사용하니 free trial에서 아래와 같이 금액이 사용되었네요.
personal use에서는 900,000 토큰만큼 사용가능한 $18를 credit으로 주게 됩니다. 코드를 공개적으로 공유하실 때는 API key가 노출되지 않도록 주의 당부드리고요.
openai에 대해 더 자세한 내용은 아래 링크를 참고해주세요~
https://beta.openai.com/docs/introduction
그럼 다음에 또 만나요~
'컴퓨터' 카테고리의 다른 글
[AWS] S3 다운로드 , 업로드 속도 제한 방법 (0) | 2020.02.23 |
---|---|
아마존 AWS S3란? AWS S3 Glacier 에서 파일 꺼내는 방법 (0) | 2019.09.29 |
댓글