<aside> 🎴 이 실습은 코드를 직접 작성하지 않습니다. AI에게 무엇을 만들지 설명하면, AI가 코드를 짜줍니다. 여러분은 개념을 이해하고, AI에게 정확히 요청하고, 결과를 비교하는 것이 목표입니다.

</aside>

🗺️ 전체 실습 흐름

<aside> 🗺️ 5단계에 걸쳐 타로 해석 AI 앱을 점점 발전시킵니다. 매 단계마다 Claude에게 요청 → 앱 실행 → 이전 결과와 비교하는 사이클을 반복합니다.

</aside>

Step 1  🔵  Zero-shot    →  카드 이름만 줘서 해석 요청 (베이스라인)
Step 2  🟡  RAG Basic    →  카드 의미 DB를 검색해서 LLM에 전달
Step 3  🟢  RAG + CoT    →  역할 부여 + 단계별 추론 + 형식 지정
Step 4  🟣  Few-shot     →  예시를 보여주며 스타일 제어
Step 5  🏆  4가지 비교   →  한 화면에서 모든 결과 동시 비교

🛠️ 시작 전 준비

  1. 안티그래비티(Antigravity) 환경을 열고 tarot 폴더를 확인하세요.
  2. 터미널에서 아래 명령어로 필요한 패키지를 설치하세요.
pip install gradio sentence-transformers faiss-cpu huggingface_hub pillow -q
  1. HuggingFace 토큰을 준비하세요. (없으면 huggingface.co/settings/tokens 에서 발급)

<aside> ✅ 준비 완료 확인: ✅ tarot/data/tarot_cards.json 파일이 있나요? ✅ tarot/data/iimg/ 폴더에 카드 이미지가 있나요? ✅ HuggingFace 토큰이 있나요? (hf_로 시작)

</aside>


🔵 Step 1 — Zero-shot: 가장 기본적인 AI 앱 만들기

📖 이게 뭔가요?

LLM(언어 모델)에게 타로 카드 이름만 알려주고 해석을 부탁합니다.

마치 처음 만난 점술사에게 '이 카드 3장이 나왔는데 해석해줘' 라고 말하는 것과 같습니다.

LLM이 이미 타로 카드를 알고 있다면 잘 답하겠지만, 상세한 의미는 모를 수도 있습니다.

<aside> 🔵 Zero-shot = 예시나 추가 정보 없이, 지시만으로 AI를 동작시키는 방식 "zero"는 예시가 0개라는 뜻입니다.

→ 이 단계의 결과가 베이스라인입니다. 이후 단계에서 얼마나 좋아지는지 비교하세요.

</aside>

💬 AI에게 이렇게 요청하세요

<aside> 📋 아래 내용을 그대로 복사해서 AI에게 붙여넣으세요.

</aside>

타로 카드 해석 Gradio 앱을 만들어줘.

조건:
- data/tarot_cards.json 에서 카드 데이터를 불러와
- HuggingFace Inference API로 Qwen/Qwen3-8B 모델을 사용해
- 사용자가 고민을 입력하면 카드 3장을 랜덤으로 뽑아 정방향/역방향을 정해
- data/iimg/ 폴더에서 카드 이미지를 불러와서 표시해 (역방향은 180도 회전)
- 프롬프트는 카드 이름과 방향만 LLM에 전달하는 Zero-shot 방식으로 만들어
- Gradio UI는 왼쪽에 고민 입력+토큰 입력, 오른쪽에 카드 이미지 3장+해석 결과
- 파일명은 step1_zero_shot.py 로 저장해줘