# 로빙 의도 파악 개선 플랜

**날짜**: 2025-10-17
**현재**: 정규식 패턴 매칭만 사용

---

## 현재 문제

### 처리 불가 사례
| 질문 | 현재 처리 | 문제 |
|------|----------|------|
| "오늘 몇일이야?" | UNKNOWN | 시간 질문 패턴 없음 |
| "리버스마운틴 유사 기업 가치평가해줘" | UNKNOWN | 복잡한 멀티스텝 질문 |
| "아까 말한 그 기업 투자 단계는?" | UNKNOWN | 맥락 참조 불가 |

**결론**: 단순 명령만 처리 가능, 복합 질문 처리 불가

---

## 개선 방향 (3단계 구조)

**구현 완료**: `troubleshooting/251126_happybell80_rb8001_의도_3단계_아키텍처_도입_및_배포.md`

**완료일**: 2025-11-26  
**커밋**: `a4738b9` (rb8001)

### 완료 사항
- ✅ 3단계 스키마 정의: `intent/schemas.py` (IntentCategory, IntentGoal, ActionPlan, SkillSequence)
- ✅ IntentAnalyzer 구현: LLM 기반 제로샷 의도 분석
- ✅ ActionPlanner 구현: IntentGoal → ActionPlan 변환
- ✅ SkillSelector 구현: ActionPlan → SkillSequence 변환
- ✅ DecisionEngine 통합: `_build_intent_pipeline()` 메서드 추가, execution_plan에 intent_pipeline 메타데이터 포함
- ✅ TDD 테스트: `tests/test_intent_3step_architecture.py` 통과

```
1. 의도 파악 → 추상적 목표 (일정 관리, 정보 검색 등)
2. 행동 계획 → 구체적 행동 (등록, 조회, 삭제 등)
3. 스킬 선택 → 적절한 도구 (calendar_skill 등)
```

---

## 하이브리드 시스템

**초기 테스트 결과 (2026-01-03)**: `troubleshooting/260103_하이브리드_의도_분류_성능_비교_테스트.md`
- FastPath: 49.6% (72ms)
- 제로샷 임베딩: 23.4% (80ms) - 개선 필요
- 병행 비교: 49.6% (154ms) - 의미 없음

**Multi-centroid 적용 완료 (2026-01-03)**: `troubleshooting/260103_하이브리드_의도_분류_성능_비교_테스트.md`
- **커밋**: `247496a` (rb8001)
- FastPath: 72.3% (64ms) - +22.7%p
- 제로샷 임베딩: 70.2% (82ms) - +46.8%p ✅
- 병행 비교: 70.9% (148ms) - +21.3%p

### 개선된 구조
```
사용자 메시지
  ↓
1단계: 정규식 FastPath (명확한 패턴)
  ↓ 실패 또는 확신도 < 0.9
2단계: Multi-centroid 임베딩 (Top-3 후보 생성)
  ↓ 확신도 < 0.7
3단계: Few-shot LLM 분류 (Top-3 후보 + 예시)
```

### 완료 작업

**1. Multi-centroid 방식 도입** ✅
- 파일: `scripts/seed_multi_centroid_prototypes.py` 생성
- 각 intent별 3개 K-means centroid 생성 (123개 샘플 사용)
- intent_prototypes 테이블 version=3으로 저장
- `intent_store.py`: `load_multi_prototypes_db()` 추가
- `semantic_classifier.py`: multi-centroid 최대 유사도 계산 적용

**2. Intent Prototypes DB 초기화** ✅
- 768d Ko-SRoBERTa 기준으로 재임베딩 완료
- intent_prototypes 테이블 version=3으로 저장
- dimension mismatch 해결 (768d 일관성 유지)

**3. Few-shot LLM 프롬프트 개선** 🔄 진행 중
- 파일: `app/services/llm/intent_parser.py`
- Top-3 후보를 활용한 Few-shot 예시 추가 필요
- Gemini 프롬프트 설계 원칙(`313_Gemini_프롬프트_설계_원칙.md`) 적용 필요

**4. 성능 목표**
- FastPath: 72.3% 정확도 (64ms) ✅
- Multi-centroid embedding: 70.2% 정확도 (82ms) - 75%+ 목표 미달, 개선 필요
- Few-shot LLM: 미구현 - 75%+ 달성을 위해 필요

---

## 참고

- `troubleshooting/251126_happybell80_rb8001_의도_3단계_아키텍처_도입_및_배포.md`
- `troubleshooting/251126_intent_3step_db_bayesian_integration.md`
- `311_FastAPI_구조_원칙.md`
