레플리
글 수 283

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 조회 수
오픈소스 LLM이 ChatGPT를 대체할 수 있을 깊은바다 2023-05-05 295
AutoGPT 사용기 - 다른 에이전트 생성 능력 file 깊은바다 2023-04-23 330
생성 에이전트를 ChatGPT 프롬프트만으로 구현 file 깊은바다 2023-04-20 264
GPT가 스스로 계획을 세워서 실행한다면 - AutoGPT와 LangChain file 깊은바다 2023-04-18 1444
ChatGPT 플러그인으로 만든 TODO 예제 file 깊은바다 2023-04-18 198
한국어 초거대AI가 필요한 이유 - 토크나이저와 한국어 콘텐츠 깊은바다 2023-04-17 269
심즈와 비슷한 가상세계를 ChatGPT로 구현 - 생성 에이전트(Generative Agents) file 깊은바다 2023-04-14 1672
ChatGPT 플러그인 전략 및 생태계 변화 전망 file 깊은바다 2023-04-09 1824
ChatGPT 원티드 플러그인 사용 화면 file 깊은바다 2023-04-07 278
GPT-3, InstructGPT, GPT-3.5, ChatGPT의 차이점 깊은바다 2023-04-05 1368
ChatGPT의 오픈소스 버전 - ColossalChat file 깊은바다 2023-03-30 502
ChatGPT 플러그인 구현 방법 - manifest와 OpenAPI Spec file 깊은바다 2023-03-28 648
ChatGPT를 앱스토어 같은 플랫폼으로 확장 - ChatGPT 플러그인 file 깊은바다 2023-03-24 354
딥마인드의 데미스 하사비스, AGI는 신중한 접근 필요 깊은바다 2023-03-22 147
GPT-4 수능 국어영역에서 3등급(상위 17%) 달성 깊은바다 2023-03-21 332