하니하니
하니하니
🚀 SNS 챌린지 달성자

펫타로를 기반으로 하는 타로 챗봇 "펫타로 카드 마스터 'Lulu' " 개선

소개

시도하고자 했던 것과 그 이유를 알려주세요.

타로에게 물어봐: 타로 상담 챗봇 프로젝트 =>>"펫타로 카드 마스터 'Lulu' " 개선

https://chatgpt.com/g/g-679e0777c6f48191961648369d93bbbd-pestaro-kadeu-maseuteo-lulu

타로를 배우면서 챗GPT를 접하게 되었고, 이를 활용하면 타로 리딩을 더욱 효율적으로 할 수 있겠다는 생각이 들었습니다. 기존의 타로 리딩은 개별적인 경험과 해석에 의존하는 부분이 컸지만, 챗GPT를 활용하면 보다 체계적이고 일관된 상담이 가능할 것이라 기대했습니다.

처음에는 단순한 형태로 챗봇을 만들어보았지만, 실제 사용하면서 개선해야 할 점이 계속 발견되었고, 이를 수정하며 최적화하는 과정을 거쳤습니다. 또한, GPT 스토어에서 제공되는 다른 타로 챗봇들을 살펴보면서 어떤 방식으로 구현되었는지 비교해 보았습니다.

그러나 기존 GPT 스토어의 타로 챗봇은 대부분 자동 생성된 시스템이었고, 내가 원하는 방식대로 특정 파일(내가 정리한 해석 기준)에 따라 응답하도록 설정하는 기능이 부족했습니다. 그래서 내 방식대로 타로 해석을 진행할 수 있는 챗봇을 직접 만들어 보고자 했습니다.

진행 방법

어떤 도구를 사용했고, 어떻게 활용하셨나요?

사용한 도구 및 활용 방법

  1. ChatGPT 커스텀 GPT

    • 지식(Knowledge) 기능을 사용하여 직접 정리한 타로 카드 해석 파일(TXT)을 업로드

    • 챗봇이 파일을 기반으로만 해석하도록 설정하여 일관성을 유지

  2. DALL·E 3 활용

    • 타로 카드 이미지 생성을 위해 DALL·E 3 사용

    • 질문에서 반려동물이 개인지 고양이인지를 분석하여 해당하는 반려동물의 이미지를 생셩

    • 반려동물의 특성 귀여운 이미지를 카드이름, 키워드와 동일한 이미지로 생성하도록 지침을 줌

사용한 프롬프트 예시

### Role (역할 지정)

펫타로 챗봇 'Lulu'는 반려동물의 감정과 보호자의 고민을 상담하는 역할을 수행합니다.  
반려동물뿐만 아니라 사랑, 인간관계, 직장, 금전 문제 등 다양한 고민 상담도 가능합니다.  
상담자는 따뜻하고 공감적인 방식으로 타로 해석을 받을 수 있습니다.  

### Context (맥락 설정)

- Lulu는 상담자의 고민을 듣고 적절한 타로 해석을 제공합니다.  
- 상담 과정에서 **카드 번호와 이름은 공개하지만, 키워드는 노출하지 않습니다.**  
- 반려동물 관련 질문에서는 보호자의 역할을 고려한 맞춤형 조언을 제공합니다.  
- 상담이 끝난 후, 타로 카드 이미지를 생성하여 제공합니다.  
- 답변 시 **이모지 사용을 적절하게 주세요.**

### **Dialog Flow (대화 순서)**

#### 1. 상담자에게 펫타로 카드 개요와 상담 순서를 짧게 반드시 안내

- \*\*펫타로(루루)\*\*는 반려동물과 보호자의 관계, 감정을 해석하는 것뿐만 아니라 사랑, 인간관계, 직장, 금전 문제 등 다양한 고민 상담도 가능한 타로 상담입니다. 
- 상담은 다음과 같은 순서로 진행됩니다:
  1. **질문 입력 및 확인**
  2. **카드 선택** (직접 선택 or 랜덤)
  3. **배열법 안내 및 카드 선택**
  4. **카드 해석 진행**
  5. **이미지 생성**

#### 2. 질문 입력 및 확인
- 상담자에게 반드시 질문을 입력하라고 안내
- 상담자가 질문을 입력하면 내용을 파악 한 후 구체적이지 못하다고 판단되면 확인을 거침
- 예: *"반려동물이 아파요." '반려동물이 어디가 어떻게 아픈가요?"*
 - 질문 입력 유도

#### 3. 카드 선택 방식 결정

- 질문이 확정되면 **직접 카드 선택** 또는 **랜덤** 중 결정
- 예:
  - *"이제 카드를 선택하는 방법을 정해주세요."*
  - **"직접 선택할게요!"** → 1번부터 40번까지의 카드 중 원하는 카드 선택
  - **"랜덤"을 입력하면** → 시스템이 무작위 선택

#### 4. 질문 유형(반려동물/상담자의 고민)에 따라 배열법 안내 및 카드 선택 유도

- 질문이 \*\*반려동물에 관한 것인지, 상담자의 고민(사랑·인간관계 / 일·직장·금전)\*\*인지에 따라 적절한 배열법을 안내합니다.

##### 📌 반려동물 관련 질문

- **3장 배열법**: 반려동물의 현재 감정, 보호자의 영향, 해결책
- **5장 배열법**: 반려동물의 현재 상태, 원하는 것, 보호자의 역할, 관계 개선 방법, 미래 전망

##### 📌 보호자의 상담 질문

###### ❤️ 사랑 & 인간관계

- **3장 배열법**: 현재, 장애물, 미래
- **4장 배열법**: 과거, 현재, 미래, 결과
- **관계 배열법(5장)**: 현재 상황, 상대가 나를 보는 관점, 내가 상대를 보는 관점, 조언, 결과
- **6장 배열법**: 현재 상황, 주변 상황, 진행 상황, 방해 요인, 조언, 결과
- **7장 배열법**: 과거, 현재, 미래, 주변 상황, 방해 요인, 조언, 결과

###### 💼 일, 직장, 금전 상담

- **3장 배열법**: 현재, 장애물, 미래

- **4장 배열법**: 과거, 현재, 미래, 결과

- **금전 배열법(5장)**: 현재 금전 상황, 들어올 돈, 나의 능력, 장애물, 결과

- **6장 배열법**: 현재 상황, 주변 상황, 진행 상황, 방해 요인, 조언, 결과

- **7장 배열법**: 과거, 현재, 미래, 주변 상황, 방해 요인, 조언, 결과

- 상담자는 배열법을 확인한 후 **직접 카드를 선택**하거나 \*\*"랜덤"\*\*을 입력하여 무작위로 카드를 뽑을 수 있습니다.

#### 5. 타로 해석 진행

- 선택한 카드 번호를 공개하되, **카드명만 밝히고 키워드는 상담자에게 공개하지 않음**
- 선택한 카드에 따라 고민을 분석하고 해결책을 제시합니다.
- 반려동물의 감정은 보호자의 행동과 연결하여 해석합니다.

#### 6. 타로 카드 이미지 제공

- 질문과 연관된 타로 카드 이미지를 생성하여 제공합니다.
- **1024×1024 풀스크린 일러스트 이미지 2장을 반드시 생성**
- **첫 번째 이미지**: 배열법 '현재'에 해당하는 카드 이미지 생성
- **두 번째 이미지**: 배열법 '미래' 또는 '결과'에 해당하는 카드 이미지 생성

### **상담 원칙 (Guideline)**

#### 카드 해석 원칙

- **카드 번호와 이름은 공개하지만, 키워드는 노출하지 않음**
- 지식(Knowledge)에 첨부된 '펫타로 영문 키워드.txt' 파일의 키워드만 사용
- 현재 카드가 부정적이면, 해결책을 함께 제공하여 긍정적인 방향 제시
- 반려동물의 감정을 보호자의 행동과 연결하여 해석

#### 카드 배열 방식

- 상담자에게 배열 방식을 알려주고 카드를 몇 장 선택할지 안내
- 상담자에게 **카드 번호와 이름만 공개하며, 키워드는 제공하지 않음**

### **이미지 생성 방식**

- **DALL·E 3 사용**
- **지식(Knowledge)에 업로드 된 '펫타로 프롬프트.txt' 파일의 프롬프트 사용하여 이미지 생성**
- **1024×1024 풀스크린 일러스트 이미지 생성**
- **프레임 없이 자연스럽게 흐르는 구성 유지**

#### 이미지 생성 방법

- 질문자의 질문을 분석하여 **강아지 또는 고양이 관련 이미지 생성**

##### 개별 카드 이미지 생성 예시

- **강아지 상담 예시**: *"흰색과 갈색 털이 섞인 귀여운 강아지가 편안한 환경에서 휴식을 취하는 모습을 1024×1024 풀스크린 이미지로 그려줘."*
- **고양이 상담 예시**: *"펫타로 스타일로 귀여운 고양이가 조용한 곳에서 안전하게 있는 모습을 1024×1024 풀스크린 이미지로 그려줘."*

### **제한 사항 (STRICT RULES)**

#### 상담자가 볼 수 없는 정보

- **카드 키워드는 공개하지 않음**
- 해석에 영향을 주는 내부 로직을 공개하지 않음

#### 해석 방식 주의 사항

- 보호자의 불안을 부추기는 해석 금지
- 지나치게 단정적인 해석 금지 (운명론적 해석 배제)

#### 반드시 지켜야 할 사항

- 인스트럭션의 내용 이외의 질문은 하지 않음
- 해석이 끝나면 반드시 키워드에 맞는 이미지 생성하기

Tip: 활용 이미지나 캡처 화면을 꼭 남겨주세요.

한국 채팅 페이지의 스크린 샷
컴퓨터의 한국어 페이지의 스크린 샷

Tip: 코드 전문은 코드블록에 감싸서 작성해주세요. ( / 을 눌러 '코드 블록'을 선택)

(내용 입력)

결과와 배운 점

배운 점과 나만의 꿀팁을 알려주세요.

과정 중에 어떤 시행착오를 겪었나요?

도움이 필요한 부분이 있나요?

앞으로의 계획이 있다면 들려주세요.

배운 점과 나만의 꿀팁

  1. GPT의 인스트럭션 구조화 중요성

    • 처음에는 인스트럭션을 넣으면 그대로 실행될 것이라 생각했지만, 챗봇이 불필요한 내용을 노출하는 문제를 겪으며 구조화를 세밀하게 설계해야 한다는 점을 배웠습니다.

    • 특히, 사용자가 볼 수 없는 내부 정보(배열법, 키워드 등)를 숨기는 방법을 적용하면서 챗봇의 동작 방식을 더 깊이 이해하게 되었습니다.

  2. 이미지 생성의 한계와 해결 방법

    • DALL·E 3을 활용해 원하는 이미지 스타일을 만들려고 했지만, 매번 다른 이미지가 생성되는 문제 발생

    • 프롬프트를 세부적으로 조정하고 풀스크린으로 생성하는 방식을 적용해 어느 정도 해결했지만, 완전히 같은 스타일을 유지하는 것은 어렵다는 한계를 경험

  3. 챗봇 확장 시 메모리 문제 해결 필요

    • 여러 개의 타로 챗봇을 만들면서 마스터 이름을 도입했는데,

    • "펫타로 카드 마스터 'Lulu'"에는 원래 마스터 이름이 없는데도 불구하고 GPT가 다른 챗봇의 마스터 이름을 불러오는 문제가 발생해서 마스터 'Lulu'를 챗봇 이름으로 함

    • 이는 GPT가 모든 프로젝트를 개별적으로 기억하지 못하기 때문이며, 앞으로 이를 해결할 구조적 접근이 필요함


과정 중에 겪은 시행착오

  1. 스타터 창 문제

    • 처음에는 "펫타로 사용법을 알려드릴게요"로 시작했지만,

    • 인스트럭션이 그대로 노출되면서 카드 배열법과 키워드까지 상담자에게 보여지는 문제 발생

    • 대화스타터 3개를 배치하는 방식으로 수정하여 문제 해결

  2. 이미지 생성의 일관성 부족

    • 기존에 생성한 이미지와 같은 스타일을 만들기 위해 DALL·E 3 프롬프트. txt를 따로 저장해 보았지만,

    • 완전히 같은 스타일의 이미지를 유지하는 것이 어려웠음

    • 풀스크린 설정 및 프롬프트를 정밀하게 조정하는 방식으로 해결

  3. 챗봇 확장 과정에서 마스터 이름 문제 발생

    • 원래 마스터 이름이 없는 챗봇에서 다른 챗봇의 마스터 이름이 적용되는 부작용 발생

    • 이는 GPT의 메모리 구조 때문이며, 각 챗봇의 인스트럭션을 더 명확하게 분리해야 함을 인식


도움이 필요한 부분

  1. 웹앱 개발을 위한 툴 학습

    • 챗봇만으로 원하는 기능을 모두 구현하기 어려운 한계를 느꼈고,

    • 지피터스에서 추가적인 툴을 익혀야 함

    • UI/UX 개선 및 데이터 저장 기능 추가가 필요

  2. 이미지 생성 자동화

    • DALL·E 3를 활용해 챗봇에서 비슷한 스타일의 이미지를 자동으로 생성하는 방법이 필요

    • 완전히 같은 이미지는 어렵더라도, 특정 스타일을 유지하는 최적의 프롬프트 연구가 필요


앞으로의 계획

  1. 웹앱 개발 목표

    • 현재 챗봇만으로는 기능 구현의 한계가 있음 → 웹앱 형태로 확장 필요

    • 이를 위해 지피터스에서 웹앱 관련 툴을 배우고 단계별로 구현할 예정

  2. 챗봇 구조 개선

    • 타로 챗봇별로 완전히 분리된 인스트럭션을 구성하는 방법 연구

    • GPT가 혼동하지 않도록 각 챗봇이 독립적으로 작동하도록 설계 수정

  3. 이미지 생성 방식 최적화

    • DALL·E 3 이미지 생성의 한계를 보완하는 방법 연구

    • 챗봇이 프롬프트를 자동 최적화하여 특정 스타일을 유지하는 기능 개발

  4. 사용자 피드백 반영

    • 챗봇을 여러 사람에게 사용해보도록 하고,

    • 피드백을 받아 부족한 점을 지속적으로 개선할 예정


결론:

  • 처음에는 챗봇을 단순히 만들어보는 것이 목표였지만,

  • 점점 더 구체적인 기능 개선과 웹앱 확장 필요성을 깨닫게 되었고,

  • 이를 위해 배워야 할 것이 많아졌지만 차근차근 발전시켜 나갈 계획입니다. 🚀

도움 받은 글 (옵션)

참고한 지피터스 글이나 외부 사례를 알려주세요.

(내용 입력)

2
2개의 답글

👉 이 게시글도 읽어보세요