# 🕵️‍♂️ AI Phase 3 Technical Deep Dive: Proprietary Wisdom (Internal RAG)

이 문서는 인슈위키 AI Phase 3에서 구현된 **'위키 내부 전용 지식 RAG'**의 기술적 세부 사항과 알고리즘을 기록합니다.

---

## 🏗️ 1. 데이터 파이프라인 (Indexing Pipeline)

### 🧱 문서 분할 (Chunking)
- **전략**: 문단(`\n\n`) 기반 분할.
- **최소 글자수**: 20자 미만의 짧은 문단은 노이즈로 간주하여 제외.
- **트리거**: `DocumentClient.tsx`에서 문서 저장 성공 시 비동기적으로 `/api/ai/index-wiki` 호출.

### 🔢 임베딩 생성 (Embedding)
- **Model**: Gemini `text-embedding-004`.
- **Dimension**: 768 dimensions.
- **Storage**: Firestore 하위 컬렉션 `documents/{docId}/embeddings`에 조각 내용과 벡터 값을 함께 저장.

---

## 🔍 2. 시맨틱 검색 엔진 (Search Engine)

### 📐 유사도 계산 (Similarity Calculation)
- **알고리즘**: Cosine Similarity.
- **임계치(Threshold)**: 0.6 이상인 조각들만 유효한 정보로 간주.
- **정렬**: 유사도 점수 기준 내림차순 상위 5개 추출.

### 🧠 RAG 합성 로직 (Synthesis)
- **Context Injection**: 검색된 상위 조각들을 "[출처: 문서제목] 본문..." 형식으로 결합하여 프롬프트의 지식으로 제공.
- **Zero-External Policy**: 프롬프트 지시사항을 통해 위키 외부 지식(할루시네이션) 사용을 엄격히 통제.
- **모델**: Gemini 1.5 Pro (복잡한 보험 맥락 이해에 최적화).

---

## 🎨 3. UI/UX 통합

### 🔎 AI IntelliSearch (SearchModal)
- **탭 시스템**: 일반 키워드 검색과 AI 지능형 검색을 스위칭할 수 있는 듀얼 모드 UI.
- **모드 설명 가이드**: 각 검색 모드 하단에 "의미 기반 합성" vs "키워드 매칭"에 대한 설명을 명시하여 사용자 혼선을 방지했습니다.
- **API Key Onboarding**: API 키가 등록되지 않은 유저에게 시각적인 카드와 함께 3단계 설정 가이드를 제공합니다.
- **상태 처리**: 분석 중 애니메이션(Pulse) 및 단계별 로딩 메시지 제공.
- **출처 연결**: 답변 하단에 근거 문서들을 칩(Chip) 형태로 리스팅하여 원문 대조 가능.

---

## 🧪 4. 성능 및 제한 사항

- **성능**: 현재 MVP 단계에서는 `collectionGroup`을 통해 전체 임베딩을 전수 조사함. 문서 수가 수만 개 이상으로 늘어날 경우 전용 Vector Index(Firebase Vector Search 등) 도입 필요.
- **비용**: BYOK 원칙에 따라 사용자의 Gemini API 할당량을 사용하므로 서버 비용 0원 유지.

---

> [!NOTE]
> Phase 3의 핵심은 **"지식의 순수성"**입니다. 우리는 외부의 방대한 노이즈보다 우리 팀이 직접 쓴 '한 줄의 위키'를 더 가치 있게 다루도록 설계했습니다.
