# ADR-260225-B: 질의 유형 분류기(Query Router) 추가 — Option F 확장

**날짜**: 2026-02-25  
**상태**: ✅ 확정 (Accepted)  
**결정권자**: 종혁님 (Product Owner)  
**관련 ADR**: `260225-rag-architecture-option-f.md`

---

## 배경 및 문제 제기

Option F 설계의 현행 Long-Context 파이프라인은 "사용자가 회사/상품을 먼저 특정한다"는 전제에 기반합니다.  
그러나 실제 설계사 업무에서는 다음과 같은 **횡단(Cross-Document) 질의**가 더 빈번합니다:

> "암 진단비 가장 넓게 보장하는 회사 찾아줘"  
> "뇌혈관 보장 범위 1위 상품은?"

이 케이스를 현행 설계가 커버하지 못한다는 점이 확인되었습니다.

---

## 기각된 대안: Vector RAG 전면 교체

Vector RAG로 전면 전환 시, **보험료 테이블 정확도 문제가 재발**합니다.  
보험료 표의 1원 단위 수치는 청킹(Chunking) 과정에서 파괴되며, 이는 세션 4~6에서 이미 검증·기각된 결론입니다.

---

## 결정: 질의 유형 분류기(Router) 레이어 추가

Option F를 교체하는 것이 아니라, **앞단에 분류기를 추가**하여 파이프라인을 확장합니다.

```
설계사 질문 입력
       ↓
  [질의 유형 분류기 - Gemini Flash 경량 분류]
       │
       ├── 유형 A: 특정 회사/상품 가격 질의
       │         → 구조화 Firestore 쿼리 (insurance_tables)
       │         예: "A사 B상품 40세 남성 암 진단비 보험료?"
       │
       ├── 유형 B: 전체 문서 횡단 비교 질의
       │         → Vector RAG (전체 문서 청크 검색)
       │         예: "뇌혈관 보장 가장 넓은 회사 찾아줘"
       │
       └── 유형 C: 특정 PDF 심층 분석 질의
                 → Long-Context (해당 PDF 1개 집중 조회)
                 예: "삼성생명 이 특약 면책기간 정확히 어떻게 돼?"
```

---

## 각 파이프라인 역할 분담

| 질의 유형 | 파이프라인 | 핵심 근거 |
|---|---|---|
| 특정 가격/수치 | Firestore NoSQL (테이블 DB) | 1원 단위 정확도 필수 |
| 전체 횡단 비교 | Vector RAG | 수천 문서 동시 검색 |
| 특정 조항 심층 분석 | Long-Context (현행 Option F) | 전체 문맥 파악 필요 |

---

## 구현 시점

- Vector RAG 파이프라인은 신규 구현 필요 (현행 Option F에 없는 레이어)
- 질의 유형 분류기는 Gemini Flash로 경량 구현 가능 (프롬프트 분류)
- **Spec 문서는 다음 세션에서 종혁님이 제공 예정**

---

## 참고

- 관련 회의록: `docs/meetings/260225-00.41-notebooklm-drive-integration-agent-meeting.md`
- 마스터 블루프린트: `docs/tasks/task00048-master-blueprint.md`
