레플리
글 수 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
RNN과 Torch로 발라드곡 작사하기 깊은바다 2018-03-23 538
아카라이브 AI 언어모델 로컬 채널 file 깊은바다 2023-05-23 529
딥러닝을 이용한 자연어 처리 깊은바다 2018-08-01 523
RAG 아키텍처를 위한 임베딩 모델의 선택에 대해 깊은바다 2023-09-14 519
딥러닝 학습으로 배우는 대화 인공지능 - 구글 듀플렉스 깊은바다 2018-05-09 515
꼼꼼하고 이해하기 쉬운 ELECTRA 논문 리뷰 깊은바다 2020-05-15 512
검색기반 거대모델인 딥마인드의 RETRO 깊은바다 2021-12-20 511
ChatGPT는 새로운 검색엔진이 될까 file 깊은바다 2022-12-06 507
ChatGPT의 오픈소스 버전 - ColossalChat file 깊은바다 2023-03-30 502
카카오의 딥러닝 기반 형태소 분석기 깊은바다 2018-11-30 497
썰로 푸는 NLP 깊은바다 2018-10-11 494
텐서플로에서 사전 훈련된 임베딩을 사용하는 예제 깊은바다 2019-02-02 480
주석을 프로그램으로 변환하는 GPT 모델 깊은바다 2020-06-21 480
GPT-2를 사용한 텍스트 압축 기법 file 깊은바다 2021-02-19 473
아마존, End-to-End 딥러닝 기술을 고객서비스에 챗봇에 적용 깊은바다 2020-03-17 472