레플리
글 수 282

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

조회 수 648 추천 수 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
Gluon으로구현해보는 한영기계번역 모형 깊은바다 2018-04-13 275
ChatGPT 원티드 플러그인 사용 화면 file 깊은바다 2023-04-07 278
사진을 인식할 수 있는 ChatGPT 멀티모달 버전 공개 file 깊은바다 2023-09-26 279
오픈소스 LLM이 ChatGPT를 대체할 수 있을 깊은바다 2023-05-05 294
LLM의 미래는 자율행동과 멀티 에이전트 깊은바다 2023-08-30 300
화면을 보고 스마트폰 앱 사용방법을 배우는 모델 - AppAgent file 깊은바다 2024-01-08 300
Generative AI — 시장 구조, 기회, moat에 대한 몇 가지 생각 깊은바다 2023-06-27 302
Koko 심리상담 서비스에서 GPT-3 대답 추천 기능을 도입 file 깊은바다 2023-01-11 304
네이버 케어콜의 장기기억 기능 - 맞춤 케어를 위한 기억하기 챗봇 file 깊은바다 2023-03-01 307
LLM의 시대에도 자연어처리를 배워야할까 깊은바다 2023-05-29 316
ChatGPT 톺아보기 - 인공지능의 역사부터 신경망, 초거대AI, ChatGPT까지 file 깊은바다 2023-02-01 318
GenAI 컨퍼런스 대담 요약 - 어떻게 AI가 비즈니스를 재편할 것인가 깊은바다 2023-03-08 319
노암 촘스키의 ChatGPT 기고문 깊은바다 2023-03-09 319
GPT-3.5와 하이퍼클로바의 한국어 대결 file 깊은바다 2023-05-12 319
OpenAI, 성능은 높아지고 가격은 싸진 새로운 모델 공개 file 깊은바다 2024-01-26 324