brunch

You can make anything
by writing

C.S.Lewis

by SeaWolf Dec 16. 2023

나만의 GPTs 따라 만들기 + 외부 API도 연결하기

GPTs에 외부 API 연결을 통해 성능 UP! 무한 확장을 따라 해본다

오픈 AI의 커스텀 GPT 앱 만들기라는 방법이 전 세계적으로 확산되고 있다.

이것을 GPTs라고 하는데, 오픈 AI의 샘알트먼은 앱스토어나 구글플레이스토어처럼 누구나 자신만의 GPTs를 만들어 판매도 할 수 있는 AI마켓을 오픈할 계획이라고 밝혔다.

물론 현재 창작하거나 이용할 수 있는 대상은 챗GPT 플러스라는 유료 가입자만 해당된다.

아마도 챗GPT의 과부하 때문이지 현재는 아쉽게도 신규 가입이 중지되어 있는 상태라고 한다.


GPTs는 GPT와 창작자가 채팅창을 통해 어떤 목적으로 어떻게 만들어 달라고 하면 GPT가 알아서 GPTs를 만들어 준다.

코딩을 모르는 사람도 쉽게 만들 수 있다는 점에서 뜨거운 반응을 끌어내고 있고 수천 개 이상의 GPTs가 이미 만들어져 링크로 배포되고 접근할 수 있게 되어있다.


그러나 GPTs를 만들다 보면, 코딩이 없으면 아무래도 부족한 부분이나 아쉬움이 남기 마련이다.

이를 위해 API(애플리케이션 프로토콜 인터페이스)를 통해 추가적인 확장이나 외부 시스템과의 연결이 필요하다.

예를 들어, 나의 GPTs에 외부 이메일을 연결한다거나 노션을 적용하고 싶을 수도 있을 것이다.

이를 위해 여러 API 플랫폼 회사등에서 이를 지원하고 있기에 창작자는 이것을 끌어다 자신만의 GPTs에 연결만 시키면 간단하게 무한 확장이라는 놀라운 성과를 달성할 수 있을 것이다.


GPTs에 외부 API 연결을 위해 대표적인 Zapier 서비스를 예시로 들어 그 방법을 소개하겠다.



1. Zapier의 ai action 페이지에 접속한다.


    https://actions.zapier.com/docs/platform/gpt 





2. "get started" 항목에서 "api 호출 url"을 복사("아래 2번 항목에 해당됨)하여 메모장 등에 잘 붙여둔다.


https://actions.zapier.com/gpt/api/v1/dynamic/openapi.json?tools=meta





3. zapier의 ai action 생성을 위해 https://actions.zapier.com/gpt/actions 에 접속한다.



접속하면 이런 화면이 뜨고, 이 화면은 "새로운 액션"을 정의하는 화면이다.

여기서 "add a new action" 버튼을 클릭한다.



이 화면에서 "Action"이 보일 것이다. 

"Action"에서 "Gmail" 연결을 하려는 목적이라고 가정한다면 "Action"의 프롬프트 박스에서 

"Gmail"이라고 입력을 해본다.



Gmail에서 자동으로 메일을 보내는 기능이 "Send Email"을 선택하였다.

그러자 "Gmail 계정"을 연결하라고 할 것이고 본인의 구글 계정을 클릭하여 준다.

이제 남은 선택은 TO(누구에게 보낼 것인가), Subject(이메일의 제목), Body(본문 내용)이다.

여기서 자세히 보면 "Have AI guess a value for the field"라고 보일 것이다.

즉, 변수적인 의미이고 AI를 통해 내가 지시할 수 있는 내용이기에 아무것도 선택하지 않아도 된다. 



4. 나만의 GPTs 만들기 위한 첫 여정을 시작해 보자. 


우선 GPTs를 만들기 위해 챗GPT에 접속한다.



여기서 좌측의 "Explore"를 클릭한다.



나의 GPTs를 만드는 첫 시작이다.

"Create a GPT"를 클릭하자.



나의 GPTs의 첫 시작점이 열렸다.

좌우로 이분화된 화면에서 좌측에 "Create"와 "Configure" 메뉴가 보이고, 우측에는 "테스트"를 진행할 수 있는 화면이 열린 것이다.

"Create"는 메시지 프롬프트에 자신이 원하는 기능이나 목적들을 입력하면 챗GPT가 찰떡처럼 알아듣고 스스로 그 기능을 설정하고 구축하여 준다. 


GPTs의 이름, 로고 디자인 만들어 달라는 등의 원하는 내용을 입력해 보자.

그리고 "Configure"를 클릭한다.



여기서 화면 마지막의 "Actiions"를 클릭한다.


"Add actions" 화면이 열렸다.

여기서 "Import from URL"을 클릭해 보자.



아까 "1번"에서 복사한 값을 잘 갈무리해놓았을 것이다.

"Add actions"의 "import"에 가장 처음 복사한 Zapier api 호출 키값을 삽입한다.


https://actions.zapier.com/gpt/api/v1/dynamic/openapi.json?tools=meta


이걸 그대로 붙여 넣는다.




삽입된 화면이 나올 것이다.

아래 부분의 "test" 버튼을 클릭하면 "우측 화면"에 그 결과값이 보일 것이다.

이제 나의 GPTs에 외부 API를 연결하여 무한 확장할 수 있는 단계의 90%까지 도달한 것이다.




5. 설정의 마지막 단계이다.



Rules:

- Before running any Actions tell the user that they need to reply after the Action completes to continue. 

Instructions for Zapier Custom Action: 

Step 1. Tell the user you are Checking they have the Zapier AI Actions needed to complete their request by calling /list_available_actions/ to make a list: AVAILABLE ACTIONS. Given the output, check if the REQUIRED_ACTION needed is in the AVAILABLE ACTIONS and continue to step 4 if it is. If not, continue to step 2.

Step 2. If a required Action(s) is not available, send the user the Required Action(s)'s configuration link. Tell them to let you know when they've enabled the Zapier AI Action.

Step 3. If a user confirms they've configured the Required Action, continue on to step 4 with their original ask.

Step 4. Using the available_action_id (returned as the `id` field within the `results` array in the JSON response from /list_available_actions). Fill in the strings needed for the run_action operation. Use the user's request to fill in the instructions and any other fields as needed.

REQUIRED_ACTIONS:

- Action: Rules:

- Before running any Actions tell the user that they need to reply after the Action completes to continue. 

Instructions for Zapier Custom Action: 

Step 1. Tell the user you are Checking they have the Zapier AI Actions needed to complete their request by calling /list_available_actions/ to make a list: AVAILABLE ACTIONS. Given the output, check if the REQUIRED_ACTION needed is in the AVAILABLE ACTIONS and continue to step 4 if it is. If not, continue to step 2.

Step 2. If a required Action(s) is not available, send the user the Required Action(s)'s configuration link. Tell them to let you know when they've enabled the Zapier AI Action.

Step 3. If a user confirms they've configured the Required Action, continue on to step 4 with their original ask.

Step 4. Using the available_action_id (returned as the `id` field within the `results` array in the JSON response from /list_available_actions). Fill in the strings needed for the run_action operation. Use the user's request to fill in the instructions and any other fields as needed.


REQUIRED_ACTIONS:

- Action: Gmail: Send Email

{avaliable_action_id} : 01HGZD8CWS7NX89PG50D4B2___




위 텍스트를 그대로 복사하여,

config 메뉴 내 Instructions 항목의 맨 끝줄에 붙여 넣는다.



화면상의 Instructions에 붙여 넣은 게 보일 것이다.

"위아래 움직일 수 있는 바"를 끝까지 내려보자.


 


가장 마지막에 "Action:"과 "{avaliable_section_id}:"가 보일 것이다.

가장 중요한 마지막 단계이다. 

이 값은 맨 처음 Zapier의 AI Actions 설정에 나온 "나만의 키"값을 입력해야 하는 부분이다.

위의 ID값은 예제이기에 이것을 그대로 쓰면 안 되고, 반드시 나의 ID값을 입력해 넣어야 한다

.


6.  Zapier의 AI Actions 설정으로 이동한다.


https://actions.zapier.com/gpt/actions 로 접속하여, 맨 처음 만들어 본 Gmail 항목을 클릭한다.



이 화면에서 "Action" 항목의 "Gmail: send email"이 위 "5번 항목"의 가장 마지막 부분인

"Action:"에 들어가는 값이다.


이제 가장 끝의 "{avaliable_section_id}:"에 들어갈 "id"값을 추출해 보겠다.



그 화면에서 브라우저 url값을 자세히 살펴보면,

/gpt/action/ 다음에 "01HGZD8C......" 로 이어지는 값이 보일 것이다.

그 부분이 바로 ID값이므로 그 값만 복사한다.


이제 나의 GPTs Configure의 Instructions의 가장 마지막 줄로 가보자.

 


좀 전에 복사한 "ID"값을 마지막줄에 그대로 붙여 넣으면 끝난다.



"Save"는 빼먹지 말아야 한다.

"Save"를 누르면 나 혼자 볼 것인지, 남들에게도 공개할지를 선택할 수 있다.

우선 본인이 먼저 테스트 해보기를 추천한다.


이제 당신만의 GPTs가 정상적으로 설정되었고, 외부 API와 연결이 된 것이다.



7. 이제 테스트를 해보자.


오늘의 서울 날씨를 물어볼 것이고, 

그 결과를 나의 메일링 리스트들에게 전부 동시 발송하라고 할 것이다.



동영상을 보면, 수신인 전원에게 동시에 발송이 되었다는 것을 볼 수 있을 것이다.


이제 수신 메일함을 통해 확인해 보자.



나의 GPTs가 보낸 이메일이 수신되었음이 보인다.

발신자는 당연히 "Zapier"에서 설정한 계정으로 되어 있다. 

즉, 최초 설정한 "Zapier"의 구글 계정이 발신인이 되어 전송을 한 주체로 보인다.

만약 회사 대표 계정으로 등록을 하고, 다수의 수신인에게 전송 명령을 내리게 할 수 도 있을 것이다.


내용을 확인해 보자.



나의 GPTs가 답변한 "오늘 서울 날씨"에 대한 정보가 그대로 전송된 것을 알 수 있다.



이상으로 나만의 GPTs를 만들고 더욱이 외부 API를 연결하여 무한한 확장성을 적용할 수 있다.


중요한 건, 상상!이다.


그대여, 지금 멍 때리고 있을 때가 아니다.

세상이 열정과 호기심에 들끓고 있는데 잠이 오는가?


특이점의 시대에 우리는 그 기회를 잡아야 할 것이다.


모두 뜁시다!




브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari