SW 배움터/앱인벤터2

앱인벤터2 고급 강좌 7 : OpenAI GPT를 이용한 챗봇 만들기

kusson 2023. 7. 17. 21:30
반응형
728x170

 OpenAI에서 ChatGPT를 발표한지 8개월여가 지났는데 그동안 ChatGPT를 이용한 수많은 앱과 프로그램들이 나왔다. 이제 앱인벤터2에서도 ChatGPT와 비슷한 앱을 만들 수 있게 되었는데 이번 시간에는 OpenAI GPT를 이용한 챗봇 만들기를 해 보겠다. 앱인벤터2로  AI 챗봇을 만들기 위해서는 사전작업이 몇가지 필요하다. 먼저 OpenAI의 API Key를 받아 두어야 하는 것과 앱인벤터2에서 사용하는 OpenAI 확장 프로그램을 다운받아 두어야 한다는 것이다. 

 

 

 

 먼저 OpenAI의 API Key를 다운받는 방법을 알아보자. https://platform.openai.com/account/api-keys에 접속해서 회원가입과 몇가지 요구하는 절차를 밟는다. 그리고 아래 그림과 같이 보이는 페이지에서 우상단의 Personal -> View APIkeys' 를 누른다.

 

 

 가운데 View화면에서 '+Create new secret key'를 클릭한다. 여기서 생성된 API Key를 한글이나 메모장에 잘 보관한다. 생성된 API Key는 일회성이며 다시 이 사이트에서 그 키를 다운 받을 수 없다. 또한 기본적으로 한달 18$의 크레딧이 제공되는데 한번 이 API Key를 생성할 때마다 0.8$씩 차감되며 한달이후에는 자동적으로 모두 소멸된다. 그 이후에는 요금을 납부해야 하므로 신중하게 생각하고 사용하기 바란다.

 

 

 

다음은 앱인벤터2에서 사용되는 OpenAI 확장 프로그램을 다운받는 방법을 알아보자. https://community.appinventor.mit.edu/t/f-os-artificial-intelligence-and-openai/74469 에 들어가서 이 사이트의 스크롤을 내려 중간페이지쯤에 있는  'com.gordonlu.openai.aix(134.1 KB)'파일을 다운 받아서 잘 보관해 둔다.

 

 

 

 

 다음은 이 OpenAI GPT를 이용한 챗봇 만들기 앱의 디자이너 에디터 화면이다. 컴포넌트를 잘 보고 레이블 2개, 수평배치 레이아웃 1개, 그 안에 텍스트 박스와 버튼을 하나 배치한다. 그리고 팔레트패널에서 가장 하단의 '확장기능->확장기능 추가하기'를 클릭해서 위에서 다운받아둔 확장프로그램을 import한다.

 

 

 

 파일선택 버튼을 눌러 파일을 저장해둔 폴더로 가서 파일을 선택한다. 'Import' 버튼을 클릭해 컴퓨터에서 해당 파일을 불러온다.

 

 

팔레트 패널에 'OpenAI' 확장 프로그램이 추가되었으면 그 파일을 마우스로 드래그 해서 뷰어 화면 가운데에 해당 파일을 투척한다. 'OpenAI' 확장 프로그램은 보이지 않는 컴포넌트라서 하단에 파일이 추가된 것이 보인다.

 

 

 

 이제 블록 에디터로 가서 '언제 버튼 전송. 클릭했을때' 이벤트 블록안에 'OpenAI' 블록의 '호출 OpenAI1.Chat'블록을 삽입하고 나머지 블록들을 추가한다.

 

 

 

OpenAI에서 응답을 받기 위해 '언제 OpenAI1.RespondedToChat' 이벤트 블록안에 레이블 제목 텍스트와 레이블 대화내용 텍스트 블록을 삽입하고 나머지 텍스트 블록들을 끼워 넣는다. 에러가 발생했을 때를 대비해서 '언제 OpenAI1.Error' 블록도 준비해 둔다.

 

 

 

아래 그림이 실제 위의 프로그램을 빌드해서 필자의 스마트폰으로 실행해 본 앱의 초기화면이다. '대화 내용을 입력하세요.'란 입력창에 OpenAI 챗봇에게 질문하고 싶은 내용을 입력하고 '전송' 버튼을 클릭한다.

 

"안녕. 너는 누구야?"라고 질문했더니 OpenAI Gpt-3기반으로 작동하는 인공지능 비서라고 답변한다.

 

 

 

 

지금 장마로 인해 비피해가 심각한데 이 장마비가 언제까지 내릴건지 질문해 봤다. 그랬더니 이 질문에 대해서는 계속 대기하란 메시지만 보내고 답변을 하지 못했다. 아마 비가 언제 그칠것인지는 기상청의 서버를 참조하거나 엄청난 계산을 해야 하는 문제라서 그런지 답변을 주지 못했다. 그래서 "비 피해를 줄이는 방법은 뭐야?"라고 질문을 바꿔봤다. 그랬더니 비 피해를 줄이는 방법에 대해서는 6가지 해법에 대해 길게 답변을 주었다.

 

 

 

 

앱인벤터는 어떤 프로그램인지 질문을 해봤더니 앱인벤터가 어떤 프로그램인지에 대해서도 정확하게 답변을 해 주었다. 

 

 이렇게 앱인벤터2로도 아주 훌륭한 챗봇을 만들어 볼 수 있었다. 이 챗봇 프로그램을 사용해서 질문을 주고 받는 게임을 한다면 아마 1~2시간 정도는 아무 생각없이 그냥 보낼 수 있지 않을 까라고 생각해 본다. 다음 시간에는 이 AI 프로그램을 좀 더 업그레이드 시켜서 그림을 생성하는 프로그램을 제작해 보겠다. 

 

*위 내용은 '앱인벤터 한권으로 끝내기 3_4절 OpenAI GPT  챗봇 앱'란 책을 참고로 작성된 포스팅입니다. 더 자세한 내용을 알고 싶은 분은 'GPT 언어 모델을 활용한 챗봇 만들기 : 앱인벤터 한권으로 끝내기'란 책을 구입해서 공부해 보시기 바랍니다.

반응형
그리드형