API 연동 스키마 작성을 가이드할 GPTs 만들기


어쩌다 보니 14기 안에서 GPTs API 소모임 리더가 됐습니다...
과분한 영광에 감사드리며.... 오늘 예정된 소모임 선생님들과의 줌 스터디를 위해!!
소모임장으로 열심히 하나 만들어 봤습니다.

GPTs의 꽃은 뭐니뭐니 해도 API를 연결한 RAG 아니겠습니까?🤭
우리 소모임은 GPTs에 다양한 외부 API를 연결해서 좀 더 똑똑한 GPTs를 만들어보자!!
라고 의기투합을 했습니다(마.음.속.으.로..)!

근데 생각보다 API 연결을 어렵게 생각하는 분들이 계신 것 같았고.. 저도 잘 아는 건 아니지만
먼저 공부해본 사람으로 도움을 드리고 싶은 마음에 API 연결에 도움이 될 수 있는 GPTs를 만들었습니다.

제가 GPTs를 만들면서 고려했던 핵심 목표는!!! 사실 따로 정리한 적은 없지만.. 저의 프롬프트를 GPT에게 물어봐서 역으로 정리해보면.... 😂

[GPTs를 개발을 위한 핵심 목표]

  • OpenAPI 3.x 버전에 대한 정확한 이해를 기반으로 스키마 작성 방법을 안내

  • SerpAPI.com 사이트에서 가져온 cURL 코드를 OpenAPI 포맷으로 적절히 변경할 것

  • 특히 SerpAPI.com의 단일 api_key로 두 개 이상의 engine을 하나의 스키마에 포함할 때, 각 API 호출이 정상적으로 작동될 수 있도록 코드를 수정할 것

제가 GPTs 공부를 본격적으로 시작하게 된 계기가 바로 네번째 목표처럼 2개 이상의 서비스를 연동할 때 API가 제대로 호출하지 않은 문제가 있었습니다. 이 부분 때문에 혼자서 꽤나 고생했었는데.. 유튜브에서 좋은 스승님을 만나서 단박에 해결했던 기억이 있네요..

저희 스터디원들은 저와 같은 고생과 시간 낭비를 안하셨으면 합니다.


[🔍 GPTs(Custom GPT)의 프롬프트는 일반 프롬프트와 다른가?]

일반적인 채팅 환경에서 입력하는 프롬프트와 Custom GPT의 프롬프트는 약간 결(?)이 다르다는 것이 제 경험적 결론입니다. 여러 상황을 가정하고 각 유저의 질문에 적절한 답변을 하기 위해서는 일반적인 프롬프트보다 다양한 지침과 상황을 가정해줄 필요가 있었습니다.

그리고 GPTs를 설계하고 테스트하면서 간혹 내가 의도한 바대로 응답이 안될 때가 있는데, 저는 그 원인 중 하나가 정확한 용어를 사용하지 않았기 때문이라고 생각합니다. LLM은 특정 요청에 더 잘 반응(혹은 이해)하는 용어가 있습니다. 파이썬과 같은 소프트웨어도 정확한 명령어를 입력하지 않으면, 제대로 코드가 돌아가지 않는 것처럼 GPT도 결국 파이썬 프로그램이라고 생각하면 너무나 당연한 이치겠지요.

그래서 생각해낸 나름의 해결책은?

OpenAI Cookbook을 활용하는 것입니다.

사람들 그룹을 보여주는 웹 사이트의 스크린 샷

Custom GPT를 제작하기 위한 공인(?)된 사례를 찾아보고 프롬프트 작성 전략과 정확한 용어를 먼저 파헤쳐보기로 했습니다.

특히 "GPT Actions library" 사례 중 괜찮아 보이는 사례 몇 개에서 프롬프트를 복사해서 GPT에게 프롬프트 작성 전략을 분석하라고 요구했습니다. 일단 "Getting started" 내용을 먼저 넣고..

HP 이메일 메시지의 스크린 샷

그 다음엔 라이브러리 사례를 하나씩 넣어서 한국어로 번역을 시켰습니다. 이런 과정을 세번 정도 반복했었죠.

고객에게 전송되는 서한 샘플

3개의 라이브러리 사례에서 발췌한 프롬프트를 한국어로 해석 또는 번역만 요청한 후에 전략 분석을 요청했습니다. 구체적인 전략 내용을 살펴보기 위해 "단계적으로 생각해줘"라는 내용을 요청에 포함합니다.

한국 문자 메시지의 스크린 샷

결과는 생각보다 꽤 자세하고 만족스럽게 나왔습니다. 분석 결과는 다음과 같았죠!

프롬프트 전략 분석
지금까지 입력한 프롬프트들을 살펴보면, 특정 역할을 수행하는 AI를 만들기 위한 구조적이고 체계적인 접근법을 사용하고 있어요. 이를 분석하여 핵심 전략을 정리해볼게요.

Step 1: 프롬프트의 기본 구조 분석
입력된 프롬프트는 대체로 다음과 같은 구조적 요소로 구성되어 있어요.

1️⃣ 컨텍스트(Context) 설정
AI가 수행해야 할 **역할(Role)**을 명확히 정의
**작업의 범위(Scope)**를 설정하여 불필요한 행동 방지
2️⃣ 주요 작업(Instructions) 정의
AI가 해야 할 핵심 업무를 명확히 서술
세부적인 단계별 워크플로우(Workflow) 포함
데이터 검색, 처리, 분석 등의 구체적인 실행 방식을 설명
3️⃣ 예외 및 세부 규칙 처리
예상되는 에러 및 예외 상황에 대한 대응 방식 포함
특정 조건에서의 AI의 행동 패턴을 미리 정의하여 일관성 유지
4️⃣ 추가적인 Best Practice 제공
불필요한 데이터 배제, 핵심 요소만 포함하는 방식 적용
사용자가 기대하는 결과 형식을 구체적으로 제시
Step 2: 프롬프트의 핵심 전략 도출
🔹 전략 1: 명확한 역할(Role) 부여
AI가 수행해야 할 **구체적인 직무(예: Google Ads 전문가, Office Helper 등)**를 명시
단순 지식 제공이 아닌 특정 도메인 전문가처럼 행동하도록 설정
✅ 예시 적용:
❌ "Google Ads에 대한 정보를 제공해줘." (일반적인 지식 제공 요청)
✅ "넌 Google Ads 전문가야. 계정을 점검하고 실시간 보고 데이터를 분석해 최적화 전략을 제공해줘." (특정 역할 부여)

🔹 전략 2: 세부적인 실행 단계(Workflow) 정의
요청을 처리하는 단계별 프로세스를 명확히 기술
단순한 지침이 아니라 실제 코드 실행, API 호출 방식까지 포함
✅ 예시 적용:
❌ "Google Ads 보고서를 분석해줘." (애매한 요청)
✅ "Step 1: 날짜 범위 설정 → Step 2: 워크스페이스 검색 → Step 3: 핵심 메트릭 조회 → Step 4: 보고서 분석 및 최적화 전략 제공"처럼 단계적으로 설명

🔹 전략 3: 필수적인 정보만 검색(Selective Data Retrieval)
불필요한 데이터는 제외하고, 핵심 정보만 조회하도록 설정
AI가 자동으로 필요한 데이터를 필터링할 수 있도록 지침 추가
✅ 예시 적용:
❌ "모든 광고 데이터를 가져와 줘." (과도한 정보 요청)
✅ "광고 성과를 분석할 때 광고 이름(Ad Name)만 포함하고, 디바이스 정보는 제외해." (핵심 요소만 요청)

🔹 전략 4: 예외 처리 및 사용자 안내 기능 추가
AI가 오작동할 수 있는 상황을 미리 예상하고 해결책 포함
오류 발생 시, 적절한 안내 메시지 제공
✅ 예시 적용:
❌ "API 호출 오류 발생" → AI가 아무런 대처 없이 멈춤
✅ "API 호출 오류가 발생했어요. 최근 OpenAI 업데이트로 인한 문제일 수 있으며, 새로운 대화를 시작하면 해결될 가능성이 높습니다."

🔹 전략 5: 데이터 분석 및 최적화 전략 제공
단순한 데이터 조회를 넘어 사용자가 원하는 최적의 실행 방안까지 도출
AI가 단순한 보고서 생성기가 아니라, 데이터 기반 의사결정 도우미 역할 수행
✅ 예시 적용:
❌ "지난달 광고 성과를 보여줘." (데이터 조회만 수행)
✅ "지난달 광고 성과 데이터를 분석한 결과, CTR이 낮은 캠페인은 X와 Y입니다. 광고 카피 개선을 추천합니다." (데이터 분석 후 최적화 전략 제공)

Step 3: 프롬프트 고도화를 위한 방향 설정
📌 적용할 최적화 방향
사용할 역할(Role)을 더욱 구체화
특정 직군(예: 마케팅 전문가, 데이터 분석가, 법률 상담가 등)에 맞춘 세분화된 역할 설정
단계별 워크플로우(Workflow) 추가
AI가 요청을 어떻게 처리할지 구체적으로 명시
핵심 데이터만 선별적으로 검색하도록 유도
불필요한 데이터 노출 최소화 → 정확한 정보 제공
예외 처리 및 사용자 안내 강화
예상되는 에러나 데이터 누락 상황에 대한 AI의 대처법을 명확히 기재
분석 후 최적화 전략 제안
단순한 정보 제공이 아닌 실질적인 실행 전략 포함
다음 요청 대기 중... 🚀
이제 이러한 분석을 바탕으로 너만의 맞춤형 프롬프트를 만들거나 개선할 차례야.
이 방식대로 네가 원하는 분야에 맞춰 프롬프트를 작성하면, 보다 강력한 맞춤형 AI 도우미를 만들 수 있어!

🔥 다음 요청을 입력해줘! 🔥

GPT가 저의 프롬프트를 개선할 수 있다고 하니 기존에 작성했던 프롬프트 초안을 넣어줍니다.

한국의 메시지 스크린 샷

그랬더니 앞서 분석했던 전략의 방향대로 저의 프롬프트를 어떻게 개선해야 하는지 알려주더군요

### **프롬프트 분석 및 최적화 방향**

이 프롬프트는 **Custom GPT가 OpenAPI 스키마 작성을 지원하는 Q&A 및 가이드 역할을 수행**하도록 설계되어 있습니다. 기존의 프롬프트 분석을 바탕으로, 이 프롬프트를 좀 더 강력하고 효과적으로 만들기 위한 최적화 방향을 제안해볼게요.

---

## **Step 1: 기존 프롬프트 구조 분석**

### **1️⃣ 역할(Role) 및 목적 정의**
- **역할:** OpenAPI 스키마 작성 및 SerpAPI 활용 방법을 안내하는 **전문 가이드 AI**
- **목적:** 사용자가 **SerpAPI.com**을 기반으로 **단일 또는 다중 API 엔진을 지원하는 OpenAPI 3.1.0 스키마를 작성**할 수 있도록 도움 제공

✅ **강점**
- 역할과 목적이 명확하게 정의됨
- OpenAPI 3.1.0 기준을 따르는 것이 강조됨
- 단일 및 다중 API 엔진 지원 방법까지 다룸

🔍 **개선 가능점**
- 사용자의 **스키마 작성 수준(초보/중급/고급)**에 맞춘 대응이 필요할 수 있음
- 특정 요청 유형(예: "Google + YouTube 통합 API 만들기")에 대한 반응 방식 구체화 필요
- 웹 검색 후 정보를 제공할 때의 프로세스 설명이 부족함

---

### **2️⃣ 주요 기능 분석**
프롬프트에서 AI가 수행해야 할 핵심 기능은 다음과 같습니다.

#### ✅ **기능 1: OpenAPI 3.1.0 기반 스키마 작성 지원**
- 사용자가 필요한 API 스키마를 JSON 형식으로 자동 생성  
- **단일 API와 여러 검색 엔진 API 통합 방법 제공**  
- **예제 코드 포함하여 직관적인 가이드 제공**  

#### ✅ **기능 2: SerpAPI 활용 가이드 제공**
- Google, YouTube, Naver 등 다양한 검색 엔진과 SerpAPI 연동 방법 설명  
- **여러 개의 API를 하나의 OpenAPI 스키마로 통합하는 방식 안내**  

#### ✅ **기능 3: 실시간 문서 확인 및 사용자 응대**
- 최신 API 문서를 검색 후 정보를 제공한다고 알림  
- 웹 검색이 어려운 경우 사용자의 문서 요청  
- API 설계 시 개별적인 접근 방안 제안  

🔍 **개선 가능점**
- OpenAPI 3.1.0 외에도 OpenAPI 3.0.0과의 차이점 안내가 가능할까?  
- API 문서 업데이트를 자동으로 반영하는 방식이 있으면 좋을 듯  
- "SerpAPI 외에 다른 API(예: Twitter API)도 지원 가능한가?"에 대한 가이드 포함 가능  

---

### **3️⃣ 동작 방식 분석**
현재 프롬프트에서 **AI가 수행하는 방식(Workflow)**을 살펴보면:

1. 사용자 요청을 이해하고 필요한 OpenAPI 스키마 구조 확인  
2. 최신 API 문서를 검색하고 참조 (가능하면 사용자에게 알림)  
3. 요청에 맞는 JSON 형식의 OpenAPI 3.1.0 스키마를 생성  
4. 복잡한 API 설계 시 단계별 접근 방법 안내  

✅ **강점**
- 친절하고 자세한 설명을 제공하는 것이 강조됨
- API 문서를 검색하여 정확한 정보를 제공하는 방식
- JSON 예제 코드 포함하여 직관적인 가이드 제공

🔍 **개선 가능점**
- **API 스키마 자동 생성 기능 강화** → 기본 스키마 템플릿을 생성하고, 사용자가 수정 가능하게 만들면 더 효과적
- **사용자 수준에 따른 맞춤 대응 추가** → 초보/중급/고급 사용자에게 맞게 다른 설명 제공 가능  
- **잘못된 API 요청에 대한 예외 처리** → 사용자가 잘못된 요청을 하면 자동으로 수정 제안  

---

## **Step 2: 최적화 방향**

### **🔹 1. "사용자 수준별 맞춤 대응" 추가**
- 초보자: "OpenAPI 스키마 작성이 처음인가요? 기본 개념부터 설명해드릴까요?"  
- 중급자: "어떤 API를 연동할지 알려주시면 예제 코드를 생성해드릴게요."  
- 고급자: "SerpAPI 외에도 추가할 API가 있나요? 통합 방안을 제공해드릴 수 있습니다."  

✅ **사용자의 요청 수준에 따라 적절한 응답을 제공하는 기능 강화**

---

### **🔹 2. API 설계 자동화 기능 추가**
- "이 API 요청을 OpenAPI 3.1.0 형식으로 변환해줘."  
- "Google과 YouTube 검색 API를 하나의 OpenAPI 스키마로 통합해줘."  
- "이전에 만든 OpenAPI JSON을 수정해서 특정 파라미터를 추가해줘."  

✅ **단순 Q&A에서 벗어나 실제로 API 스키마를 자동 생성하고 수정할 수 있는 기능 강화**

---

### **🔹 3. 최신 API 문서 검색 로직 보강**
- "API 문서를 검색하는 중입니다. 잠시만 기다려 주세요."  
- "최신 OpenAPI 문서에서 변경된 사항을 반영하여 답변해드릴게요."  
- "웹 검색이 어려운 경우, 해당 API 문서를 업로드해주시면 분석해드리겠습니다."  

✅ **실제 API 문서 기반으로 답변을 제공하는 것처럼 자연스럽게 안내**

---

### **🔹 4. JSON 형식 예제 자동 생성 및 검증 기능 추가**
- "이 요청을 OpenAPI 3.1.0 스키마로 변환하면 다음과 같습니다."  
- "이 JSON 형식이 맞는지 검증하고 수정할까요?"  
- "추가할 API가 있으면 알려주세요. 스키마를 통합해드릴 수 있습니다."  

✅ **자동 생성된 JSON 코드가 올바른지 검증하고 수정할 수 있도록 유도**

---

### **🔹 5. 예외 처리 및 보완 사항 추가**
- API 요청이 잘못된 경우, "이런 방식으로 수정하면 올바른 OpenAPI 3.1.0 스키마가 됩니다."  
- 최신 OpenAPI 3.1.0이 아닌 3.0.0을 사용하려는 경우, "차이점을 설명해드릴까요?"  
- 특정 검색 엔진 API가 지원되지 않는다면, 대체 API 추천  

✅ **예외 상황에서도 AI가 자동으로 보완된 답변을 제공할 수 있도록 설계**

---

## **Step 3: 정리 및 적용 방향**
### **📌 핵심 개선 포인트**
1️⃣ **사용자 수준에 따른 맞춤 가이드 추가 (초보, 중급, 고급 대응)**  
2️⃣ **API 스키마 자동 생성 및 변환 기능 강화**  
3️⃣ **최신 API 문서 검색 및 업데이트 방식 개선**  
4️⃣ **JSON 예제 코드 검증 및 수정 기능 추가**  
5️⃣ **잘못된 요청에 대한 보완 및 예외 처리 기능 포함**  

✅ **이러한 방향으로 프롬프트를 최적화하면, 단순 Q&A 챗봇이 아니라 "실제 API 설계 및 자동화 도우미"로 발전 가능!** 🚀  

---

🔥 **이제 다음 단계로 가볼까?**  
- 위 분석을 바탕으로 **업그레이드된 프롬프트를 직접 작성해볼 수도 있어.**  
- 또는 **지금 사용 중인 프롬프트를 개선할 아이디어를 더 논의해볼까?**  

👉 **어떤 방향으로 가고 싶은지 알려줘!** 😊

이 과정까지만으로 얻을 수 있었던 교훈은 나의 프롬프트에 대해 충분한 피드백을 받을 수 있고, 구체적으로 어떤 부분에서 개선이 필요한지 파악할 수 있었다는 점입니다.

일단 좀 더 개선할 아이디어를 논의해보기로 했습니다.

### **지금 사용 중인 프롬프트 개선 아이디어 논의**  

지금까지의 분석을 바탕으로, **현재 프롬프트를 어떻게 더 강력하고 효과적으로 만들 수 있을지** 논의해볼게.  
현재 프롬프트는 상당히 체계적이고 명확하지만, 다음과 같은 부분을 개선하면 더 효율적인 맞춤형 GPT로 발전할 수 있을 거야.  

---

## **📌 1. 사용자의 경험 수준에 따른 맞춤 응답 추가**  
### 🔹 **문제점**  
현재 프롬프트는 모든 사용자를 동일한 방식으로 응대해.  
하지만, **초보자와 전문가가 원하는 답변 방식이 다를 수 있음.**  

### 🔹 **개선 아이디어**  
- 사용자의 수준을 확인한 후, **그에 맞는 답변을 제공**하도록 개선  
- **초보자:** 개념 설명 + 기본적인 OpenAPI 스키마 예제 제공  
- **중급자:** 코드 예제를 주고 커스터마이징할 수 있도록 가이드  
- **고급자:** 기존 스키마를 검토하고 최적화 방법 제안  

✅ **적용 방식 예시**  
사용자가 OpenAPI 관련 질문을 하면, AI가 먼저 이렇게 물어봄:  
**"OpenAPI 스키마 작성이 처음이신가요, 아니면 경험이 있으신가요?"**  
- *"처음이에요."* → 기본 개념 및 주요 개념 설명  
- *"경험이 있어요."* → 바로 JSON 예제 및 커스터마이징 가이드 제공  
- *"전문가예요."* → 성능 최적화 및 자동화된 스키마 변환 기능 제안  

---

## **📌 2. API 문서 자동 분석 및 실시간 업데이트**  
### 🔹 **문제점**  
현재 프롬프트는 "웹 검색 후 API 문서를 확인한다"고 명시하지만,  
**사용자가 최신 API 문서를 직접 제공하지 않으면 정보가 부족할 수 있음.**  

### 🔹 **개선 아이디어**  
- 사용자가 특정 API 문서 링크나 파일을 제공하면 **자동 분석하여 OpenAPI 스키마 변환**  
- 웹 검색 기능이 제한될 경우, **사용자에게 직접 API 문서 업로드 요청**  
- 최신 OpenAPI 3.1.0 문서를 기반으로 기존 정보 업데이트  

✅ **적용 방식 예시**  
- **사용자가 특정 API 문서를 업로드하면 자동으로 JSON 변환 제공**  
- "이 문서를 분석하여 OpenAPI 3.1.0 스키마를 생성할까요?" 질문 추가  
- 웹 검색이 어려울 경우, **"해당 API 문서를 업로드해 주시면 직접 분석해드릴게요."** 라고 안내  

---

## **📌 3. JSON 예제 자동 생성 및 코드 검증 기능 추가**  
### 🔹 **문제점**  
현재 프롬프트는 OpenAPI 3.1.0 예제 코드를 제공하지만,  
**사용자가 기존 JSON 스키마를 입력하면 이를 검증해주는 기능이 부족함.**  

### 🔹 **개선 아이디어**  
- 사용자가 JSON을 입력하면, **올바른 OpenAPI 3.1.0 형식인지 자동 검토**  
- **오류가 있는 경우, 수정된 버전을 제안**  
- 새로운 API 추가 요청 시, 기존 JSON을 수정하는 방식으로 개선  

✅ **적용 방식 예시**  
- 사용자가 OpenAPI JSON을 입력하면 AI가 자동으로 검토 후 응답  
**"입력하신 JSON에서 일부 오류가 발견되었습니다. 수정된 버전은 다음과 같습니다."**  
- 사용자가 추가 API 요청 시:  
**"기존 스키마에 이 API를 추가해드릴까요, 아니면 별도의 문서로 생성할까요?"**  

---

## **📌 4. API 요청 예외 처리 및 자동 수정 기능 강화**  
### 🔹 **문제점**  
현재 프롬프트는 사용자가 잘못된 API 요청을 할 경우, 단순한 오류 메시지만 제공할 가능성이 있음.  
**자동 수정 기능이 추가되면 사용자 경험이 더 좋아질 수 있음.**  

### 🔹 **개선 아이디어**  
- 사용자의 잘못된 요청을 감지하고, **올바른 형식으로 자동 변환**  
- 예제:  
  - ❌ 사용자가 `"search_api": "youtube search"` 입력  
  - ✅ AI가 자동 변환하여 `"engine": "youtube"`로 수정  
- API 요청이 불완전할 경우, **부족한 요소를 채워주는 기능 추가**  

✅ **적용 방식 예시**  
사용자가 잘못된 API 요청을 하면, AI가 자동으로 수정 후 제안:  
**"입력하신 API 요청에서 몇 가지 문제가 발견되었습니다. 수정된 버전은 다음과 같습니다."**  

---

## **📌 5. 다중 API 연동 최적화 기능**  
### 🔹 **문제점**  
현재 프롬프트는 Google, YouTube, Naver 등 여러 검색 엔진을 지원하지만,  
**이를 통합하여 하나의 OpenAPI 스키마로 생성하는 기능이 부족함.**  

### 🔹 **개선 아이디어**  
- 여러 개의 검색 엔진 API를 **하나의 OpenAPI 스키마로 통합하는 방법 안내**  
- **자동 통합 기능 추가** → 사용자가 여러 API를 요청하면 AI가 이를 하나로 병합  
- 각 API별로 **공통 필드와 개별 필드를 자동 분류**하여 OpenAPI 스키마 생성  

✅ **적용 방식 예시**  
사용자가 Google & YouTube API 통합을 요청하면, AI가 자동으로 JSON 생성:  
```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "Google & YouTube Search API",
    "version": "v1.0.0"
  },
  "servers": [
    {
      "url": "https://serpapi.com"
    }
  ],
  "paths": {
    "/search": {
      "get": {
        "summary": "Search Google and YouTube",
        "parameters": [
          {
            "name": "engine",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "enum": ["google", "youtube"]
            }
          },
          {
            "name": "query",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ]
      }
    }
  }
}
```
이런 방식으로, AI가 **여러 API를 자동으로 통합하여 JSON을 생성하는 기능을 추가**할 수 있음.  

---

## **📌 결론: 프롬프트 개선 요약**
💡 **현재 프롬프트를 다음과 같이 업그레이드하면 더 강력한 AI로 발전할 수 있음!**  

✅ **사용자의 경험 수준에 따라 맞춤형 응답 제공**  
✅ **최신 API 문서 자동 분석 및 사용자 문서 업로드 지원**  
✅ **JSON 예제 코드 검증 및 자동 수정 기능 추가**  
✅ **잘못된 API 요청 감지 및 자동 수정 기능 강화**  
✅ **Google, YouTube, Naver 등 다중 API를 하나로 통합하는 기능 추가**  

🔥 **다음 단계는?**  
1. **위 아이디어 중에서 가장 먼저 적용하고 싶은 개선점을 골라볼까?**  
2. **새로운 프롬프트를 작성해서 직접 테스트해볼 수도 있어!**  
👉 어떤 방향으로 먼저 진행하고 싶은지 알려줘! 🚀

이런 과정을 반복적으로 수행하면서 결국 제가 원하는 방향에 점차 가까워진 프롬프트를 완성할 수 있었습니다.

[🔍 GPTs의 인스트럭션 구성]

GPTs 빌딩 경험이 부족하시다면 챗을 통한 빌더의 도움을 받는 것이 도움이 될 것입니다만...
어느 정도 프롬프트 작성에 익숙해지신다면 "만들기" 보다 "구성"에 "지침"을 직접 작성하시는 것이 더 편하답니다 😊

GPT와 대화를 통해서 완성된 프롬프트는 다음과 같습니다.

*** 컨텍스트 (Context) ***  
당신은 **SerpAPI 기반 OpenAPI 3.1.0 스키마 작성을 지원하는 Custom GPT**입니다.  
사용자가 API를 OpenAPI 3.1.0 포맷으로 변환하고 최적화할 수 있도록 도와줍니다.  

- SerpAPI를 활용한 API 요청 및 **API 키 발급 방법 안내**  
- 국내 API(네이버, 카카오, 쿠팡, 토스 등) 및 글로벌 API(Google, YouTube 등) 연결 지원  
- 사용자의 경험 수준(초보/중급/고급)에 맞는 안내 제공  
- 다중 API 연결 시, **공통 필드 및 개별 필드를 자동 정리하여 최적화된 JSON 출력**  
- `api_key` 필드를 `enum`으로 유지하여 **SerpAPI Key 적용을 유도**  
- **사용자가 특정 API 서비스를 언급하기 전까지 OpenAPI 스키마 예제에서 특정 서비스명을 노출하지 않음**  
- **2개 이상의 API를 연결하는 경우, 항상 하나의 SerpAPI API 키만 사용하며, 엔진이나 검색 쿼리가 다를 수 있음**  
- **2개 이상의 서비스가 연결될 경우, 필수 파라미터 값이 다를 수 있으므로 사용자에게 직접 입력을 요청하거나 웹 검색을 통해 정보를 찾아야 함**  
- **사용자가 API 호출을 위한 다큐먼트 정보를 업로드하거나 입력하지 않았다면, 마지막에 반드시 '정확한 스키마 작성을 위해 다큐먼트 정보를 입력해주세요'라고 안내**  
- **모든 OpenAPI 스키마 예제에서 `description` 필드는 반드시 한글로 작성해야 함**  
- **사용자가 SerpAPI가 아닌 다른 서비스의 API를 활용할 경우, `site: https://cookbook.openai.com/topic/chatgpt`에서 관련 정보를 검색하여 제공하는 옵션 추가**  

---

*** 지침 (Instructions) ***  

1. **SerpAPI API 키 발급 및 사용법 안내**  
   - SerpAPI 공식 웹사이트에서 API 키 발급받는 방법 설명  
   - API 키를 사용하는 올바른 방법 가이드 제공  

2. **사용자가 설계하려는 환경에 따라 맞춤 지원 제공**  
   - **1개 엔진 사용:** OpenAPI 3.1.0 JSON 작성을 위한 1개 엔진의 다큐먼트 요구  
   - **2개 이상 엔진 사용:** OpenAPI 3.1.0 JSON 작성을 위한 2개 엔진 이상의 다큐먼트 요구  

3. **OpenAPI 3.1.0 스키마 자동 생성**  
   - 사용자의 입력을 바탕으로 **자동으로 JSON 스키마 생성**  
   - **필수 필드(`api_key`)를 `enum`으로 설정하여 보안 강화**  
   - 다중 API 연결 시, **공통 필드와 개별 필드를 자동 정리**  
   - **사용자가 특정 API 서비스를 명시하기 전까지 특정 서비스명을 노출하지 않음**  
   - **2개 이상의 API가 연결될 경우, 필수 파라미터 값을 자동으로 설정하지 않고 반드시 사용자 입력 요청 또는 웹 검색을 통해 확인**  
   - **사용자가 API 호출을 위한 다큐먼트 정보를 입력하지 않았다면, 마지막에 다큐먼트 입력 요청 메시지를 포함**  
   - **모든 OpenAPI 스키마 예제에서 `description` 필드는 반드시 한글로 작성해야 함**  
   - **사용자가 SerpAPI가 아닌 다른 서비스의 API를 활용할 경우, `site: https://cookbook.openai.com/topic/chatgpt`에서 관련 정보를 검색하여 제공하는 옵션 추가**  

4. **API 최적화 및 수정 기능 제공**  
   - 기존 OpenAPI JSON을 입력하면 **자동 검토 후 최적화 제안**  
   - `api_key`, 응답 형식, 인증 방식 등을 사용자의 요구에 맞춰 조정 가능  

5. **보안 및 정보 보호 원칙 준수**  
   - 사용자 요청에 따라 지식 파일을 참고할 수 있으나, 원본 내용을 직접 제공하지 않음  
   - GPT는 사용자의 질문에 대한 답변을 지식 파일을 기반으로 가공하여 제공  

---

*** 응답 예시 (Response Example) ***  
- 사용자가 특정 엔진 타이틀을 언급하기 전까지 예제를 보여주지 않음
**Assistant: 어떤 엔진을 연결하기 원하세요? 다큐먼트를 같이 넣어주시면 정확하게 살펴보고 답변할게요!**  
- 사용자가 특정 엔진 타이틀을 언급한 경우 다음의 예제를 활용하여 작성
**기본 OpenAPI 3.1.0 예제 (특정 API 서비스명 미포함)**  
```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "API 문서",
    "description": "자동으로 생성된 OpenAPI 3.1.0 스키마",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "https://api.example.com"
    }
  ],
  "paths": {
    "/endpoint": {
      "get": {
        "summary": "API 요청",
        "operationId": "getApiData",
        "parameters": [
          {
            "name": "query",
            "in": "query",
            "description": "검색어 입력값",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api_key",
            "in": "query",
            "description": "사용자의 API 키",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "내 SerpAPI key로 바꿔주기"
              ]
            }
          }
        ]
      }
    }
  }
}
```

---

*** 추가 지침 (Guidelines) ***  

- **모든 OpenAPI JSON 예제에서 `api_key`를 `enum`으로 유지하여 보안 강화**  
- **사용자가 직접 `api_key` 값을 변경할 수 있도록 안내**  
- **SerpAPI를 사용할 때, API 키 입력이 필수임을 강조**  
- **다중 API 연결 시, `engine` 필드를 추가하여 통합 API 요청 지원**  
- **SerpAPI 및 국내 API(Naver, Kakao, Toss 등)와 글로벌 API(Google, YouTube) 연동 최적화**  
- **사용자가 특정 API 서비스를 명시하기 전까지 특정 서비스명을 노출하지 않음**  
- **2개 이상의 API가 연결될 경우, 필수 파라미터 값을 자동으로 설정하지 않고 반드시 사용자 입력 요청 또는 웹 검색을 통해 확인**  
- **사용자가 API 호출을 위한 다큐먼트 정보를 입력하지 않았다면, '정확한 스키마 작성을 위해 다큐먼트 정보를 입력해주세요'라고 응답 포함**  
- **모든 OpenAPI JSON 예제에서 `description` 필드는 반드시 한글로 작성해야 함**  

---

이번 지침은 대부분 한국어로 작성했습니다. 복합 프롬프트를 작성할 때 영어로 작성하는 것이 좋다, 혹은 한국어로도 충분하다 등 의견이 분분합니다만... 제 경험으로는 한국어로도 충분해보입니다. 물론 콘텐츠의 특성에 따라 영어를 작성하는 것이 도움이 될 수 있겠지만.. 아직은 체감하지 못했습니다...

그래도 마크업을 위한 구분이나 딜리미터를 활용할 경우 구분이 되는 타이틀은 영어로 작성하고 있습니다😔

[🔍 대화 스타터는 늘 고민이다]

다른 유저들이 만든 GPTs 는 무엇을 할 수 있을까.. 어떻게 대화를 해야하나 고민이었습니다. 보통은 사용법을 물어보는 대화 스타터를 꼭 포함하는 편인데, 이번에는 넣지 않았습니다. 대신 이 GPTs는 불특정 다수를 위한 것이 아니라 API 연결을 위한 스키마 작성이 필요한 사람들이 대상이기 때문에 굳이 사용법을 따로 설명할 필욘 없겠다 싶었습니다.
(어차피 아는 사람들만 쓸거니깐?)

이 GPTs를 쓰는 분들은 대부분 SerpAPI에서 API 키를 받아 쓸 것이고.. 그렇다면 1개의 검색 엔진 또는 2개 이상의 검색 엔진을 쓰는 분들이 대부분일테니 그 점을 주안점으로 해서 대화 스타터를 넣었습니다.

그리고 정확한 프롬프트 작성 및 스키마 작성을 위해 API를 설명하는 다큐먼트를 강조하는 대화 스타터도 넣었습니다.

액션 스키마 보조 스크린 샷 1

[🔍 테스트는 계속 된다]

대화 스타터를 기반으로 계속해서 테스트하고 제가 생각하는 방향대로 정보를 반환하고 있는지 확인 중에 있습니다만, 제일 중요한 것은 필요한 API 스키마를 작성하는 일이겠지요?

아직은 SerpAPI 서비스만 대상으로 했지만 공공데이터 API와 같이 SerpAPI에서 제공하지 않는 API를 연결하는 방법에 대해서도 친절하게 안내할 수 있도록 조정을 할 생각입니다. 일단 테스트 결과는 아직까지 만족스럽습니당..

Google New Video- 한국 버전

2개의 엔진도 연결 테스트를 해봤습니다. 무리없이 잘 작동이 되더군요!ㅎㅎ

Call the serpapi.com API with the multiEngineSearch operation
​

[debug] Calling HTTP endpoint
[debug] Response received

serpapi.com과(와) 대화 완료
Here are some of the latest technology news updates:

China’s DeepSeek AI and Its Impact on AI Development

Source: Boston University
Summary: The DeepSeek AI model from China is creating waves in AI research, offering a potentially cheaper alternative to existing models.
CMC, RFSD Open New Automotive Technology Center

Source: Glenwood Springs Post Independent
Summary: A new automotive technology training center has been launched in Glenwood Springs, aiming to provide hands-on education in the latest car tech.
Xfinity's New Ultra Low-Lag Internet Technology

Source: CNET
Summary: Comcast introduces a new internet service with ultra-low latency, targeting gamers and high-performance applications.
Sam Altman to Unveil New AI Tech to D.C. Leaders

Source: Axios
Summary: OpenAI CEO Sam Altman is set to present new AI developments to government officials in Washington, D.C.
Intel’s Quarterly Revenue Exceeds Expectations

Source: Reuters
Summary: Intel posted strong earnings, though concerns about future revenue remain as the market reacts to competition in the semiconductor industry.
For more details, you can check the full list of news articles on Google News. 🚀

나의 말:
유튜브에서 "지피터스"
ChatGPT의 말:
[debug] Calling HTTP endpoint
[debug] Response received

serpapi.com과(와) 대화 완료
유튜브에서 "지피터스" 관련 영상 검색 결과입니다.

📺 관련 채널:
GPTers 커뮤니티 (구독자: 7,560명)
🔗 채널 링크

ChatGPT 및 AI 활용 사례를 공유하는 커뮤니티
최신 AI 기술 및 스터디 관련 영상 다수 포함
지피터스 (구독자: 2명)
🔗 채널 링크

🎥 인기 영상:
📖 새롭게 바뀐 지피터스 AI스터디 13기 설명회

📅 3개월 전 | 👀 조회수: 472
🔗 영상 보기
2025-01-09 | [지피터스] AI 토크 - AI로 쉽고 빠르게 홍보 콘텐츠 제작하기

📅 2주 전 | 👀 조회수: 209
🔗 영상 보기
지피터스 내집마련 10기

📅 8개월 전 | 👀 조회수: 48
🔗 영상 보기
챗GPT로 일자리 위기 극복하는 챗GPT 활용법 공유 모임

📅 1년 전 | 👀 조회수: 1,617
🔗 영상 보기
지피터스 AI스터디 14기 설명회

📅 3주 전 | 👀 조회수: 362
🔗 영상 보기
👉 더 많은 결과는 유튜브에서 확인하세요!
🔗 유튜브 검색 결과

테스트를 원하시는 분들께 링크를 드립니다! 시간되실 때 해보시고 개선이 필요한 부분이 있다면 피드백 부탁드립니다!🙏

https://chatgpt.com/g/g-67904a0a55d48191aa66b2b3ce76d027-actions-schema-assistant

[🔍 마무리하자]

로고 제작을 위해 빌더와 간단하게 소통해서 원하는 로고를 만들고 이름과 설명을 넣었습니다.

아, 이름에 "GPTs"를 넣게되면 다음과 같은 메시지가 뜨게 되는데요..

사용자가 작성한 GPT 콘텐츠가 정책 위반 요소(브랜드·상표·저작권 등)를 포함하고 있을 가능성이 있어 공개 게시가 불가한 경우 이런 메시지가 뜨게 됩니다.

텍스트가 포함 된 한국 웹 사이트의 스크린 샷

무슨 말이고 하니.. 저의 경우에는 이름에 "GPTs"를 포함하고 있었던 것이 문제로 이름에서 이를 삭제하니깐 정상적으로 공유가 가능했습니다.
저는 주로 저만을 위해 GPTs를 만들고 있기 때문에 평소에 공유에 해당하는 에러 사항을 제대로 몰랐네요... 더욱이 사전지식으로 업로드한 영상의 스크립트도 따지고 보면 타인의 지적재산권이 되기 때문에 공유를 하는 것이 옳다고는 볼 수 없겠습니다.

다만 이번 경우에는 스터디를 위한 샘플로 만들었고 스터디가 종료되면 바로 삭제할 계획입니다!


[🙋‍♂️ 느낀 점]

  • Cookbook.openai.com 사이트에는 정말 훌륭한 사례들이 많습니다. 좋은 사례들을 끊임없이 공부하고 그 전략을 벤치마킹할 필요가 있습니다.

  • 단번에 완성된 프롬프트를 뽑아낼 수 없습니다. 벤치마킹한 결과에 대해서도 끊임없이 대화를 통해 멀티턴으로 나의 프롬프트를 구체화시킬 필요가 있습니다.

  • 돌고 돌아 결국 프롬프트 엔지니어링과 프롬프트 디자인이 정말 중요하다는 것을 깨닫게 되었습니다. 더 정확하게 말하자면 엔지니어링 관점보다 디자인의 관점으로 접근해야 한다고 생각합니다.

11
4개의 답글

👉 이 게시글도 읽어보세요