레플리
글 수 283

ChatGPT 플러그인 구현 방법 - manifest와 OpenAPI Spec

조회 수 649 추천 수 0 2023.03.28 19:05:52


지난 번에는 ChatGPT plugins을 어떻게 사용하는지 설명을 드렸습니다. 먼저 각 서비스 회사들이 자신의 플러그인을 구현하고 스토어에 등록을 합니다. 사용자가 원하는 플러그인을 설치하면 ChatGPT와 해당 플러그인이 연동됩니다. 그리고 대화를 통해 플러그인 서버와 정보를 주고받을 수 있습니다.

 

http://aidev.co.kr/chatbotdeeplearning/12520

 

 

 

보통 카카오i 오픈빌더나 Dialogflow 등의 챗봇 빌더는 스킬이라는 형식으로 외부 서비스와 연동이 됩니다. 이때 Restful API로 정보를 요청하고 그 결과를 받아 챗봇의 대답으로 사용합니다.

 

예를 들어, 카카오톡 챗봇에서 날씨를 물어보면 날씨 API 서버에 현재 날씨를 요청합니다. 날씨 정보를 다시 보내주면 이를 사용해서 '오늘 기온은 10도입니다'처럼 대답을 합니다. 이때 API 형식은 json과 같은 구조를 미리 사전에 정의해 둡니다. API 개발자는 이 형식에 맞게 API을 요청하거나 처리하면 됩니다. 대략 다음과 같은 json 구조입니다.

 

{ "bot": { "id": "<봇 id>", "name": "<봇 이름>" }, "intent": { "id": "<블록 id>", "name": "지식+", ... }

 

 

 

ChatGPT 역시 플러그인 서버와 통신을 하려면 이와 같은 규약이 필요합니다. 플러그인을 만들기 위해서는 manifest와 OpenAPI Spec 2가지만 작성하면 됩니다.

 

manifest는 플러그인의 전체 정보를 담고 있습니다. 플러그인 이름, 설명, 인증방법, OpenAPI Spec 파일 URL 등이 있습니다. 여기서 설명을 자세히 써야 ChatGPT가 어떤 동작을 하는 플러그인인지 이해할 수 있습니다. 만약 TODO 기능이라면 이렇게 작성합니다. 'Plugin for managing a TODO list. You can add, remove and view your TODOs.'

 

K-002.png

 

K-003.png

 

 

 

가장 핵심은 OpenAPI Spec입니다. ChatGPT가 이 명세를 보고 Restful API에 쓰기 위한 json 형식으로 변환합니다. 예를 들어, '저녁에 친구와 약속있다고 TODO에 추가해줘'라고 하면, ChatGPT가 자동으로 이를 json 데이터로 바꿔줍니다. 이때 ChatGPT는 어떤 json 형식으로 작성해야 하는지 정확하게 알지 못합니다. 그래서 OpenAPI Spec에서 각 항목과 설명을 자세하게 기입해줘야 합니다. 물론 말로만 풀어쓰면 ChatGPT가 알아서 이해하고 json 데이터로 변환해주기 때문에 상당히 편리하게 구현할 수 있습니다.

 

K-001.png

 

 

 

챗봇빌더는 개체명인식을 사용해서 개체를 추출하고 이를 json에 채워넣습니다. 만약 '난 짜짱면 말고 짬뽕 시킬래'라고 했다면 어떻게 할까요. 우리가 원하는 것은 '짬뽕'을 주문하는 것입니다. 하지만 대부분의 챗봇빌더들은 '짜장면'과 '짬뽕' 2개의 개체를 동시에 json으로 변환합니다. 문장의 뜻을 정확하게 이해하지 못하기 때문입니다.

 

ChatGPT는 이런 면에서 매우 탁월합니다. 복잡하게 명령을 내려도 그 의미를 이해하고 API에 사용할 json을 정확하게 생성할 수 있습니다. 그래서 기존의 챗봇이나 개인비서보다 훨씬 유연하고 범용적으로 스킬을 구현할 수 있습니다. 아마 조만간 이렇게 주문하는게 곧 가능해질 거라고 봅니다.

 

(쿠팡 ChatGPT 플러그인 설치)

나 : 쿠팡에서 노트북 좀 검색해줘. 삼성거 중에서 가성비 좋은 걸로.

AI : 이 모델이 가장 가성비가 좋습니다.

나 : 음.. 더 싼거는 없어?

AI : 삼성 노트북 중 가장 싼 모델은 이것입니다.

나 : 메모리가 좀 부족하네. 두배로 추가해줘.

AI : 노트북 메모리를 두배로 추가했습니다. 가격은 얼마입니다.

나 : 지금 바로 주문해줘

AI : 노트북을 주문 완료했습니다.

나 : 언제 도착해?

AI : 로켓배송으로 내일 새벽 6시에 도착 예정입니다.

 

 

 

https://platform.openai.com/docs/plugins/examples

 

List of Articles
제목 글쓴이 날짜 조회 수sort
네이버의 초거대모델인 HyperCLOVA 논문 file 깊은바다 2021-09-13 556
2018 Amazon Prize에서 우승한 Gunrock 소셜봇 file 깊은바다 2018-12-26 557
인플루언서의 목소리 클론과 GPT-4로 만든 아바타 서비스 - Caryn.ai 깊은바다 2023-05-11 559
딥러닝을 이용한 자연어처리 깊은바다 2018-05-17 560
죽은 약혼자를 챗봇으로 살려낸 남자 - Project December 깊은바다 2021-07-27 561
일상대화 딥러닝 모델들을 쉽게 실행할 수 있는 Openchat 깊은바다 2021-06-01 569
인공지능과 함께 글쓰기! 창의 AI x Bookathon 대회 - GPT2 깊은바다 2019-11-30 581
이성에게 말을 거는 작업멘트를 GPT-3로 생성 file 깊은바다 2021-03-24 587
구글의 딥러닝 대화 모델 - LaMDA 깊은바다 2021-06-13 587
문장 입력 이진분류 모델 레시피 - 영화평점 학습 [3] 깊은바다 2018-04-04 613
페르소나를 가진 대화 학습 - Personalizing Dialogue Agents file 깊은바다 2018-09-19 618
GPT2를 테스트해볼 수 있는 사이트 - Talk to Transformer file 깊은바다 2020-06-05 619
책 한권을 입력으로 받는 구글의 딥러닝 모델 - Reformer 깊은바다 2020-01-17 622
GPT-4에 CoT 프롬프를 적용하여 2023 수능 국어 1등급 달성 file 깊은바다 2023-08-08 623
대화 인공지능 대회 - ConvAI file 깊은바다 2019-03-25 630