docs: router 리팩터링 관련 문서 추가
This commit is contained in:
parent
b94e60d87b
commit
08c02ec1bf
75
journey/plans/251223_짧은_후속_질문_LLM_우선_해결_계획.md
Normal file
75
journey/plans/251223_짧은_후속_질문_LLM_우선_해결_계획.md
Normal file
@ -0,0 +1,75 @@
|
||||
# 짧은 후속 질문 LLM 우선 해결 계획
|
||||
|
||||
**작성일**: 2025-12-23
|
||||
**목표**: 실패하는 질문 18개를 LLM 우선 접근 원칙으로 해결
|
||||
**원칙**: `311_FastAPI_구조_원칙.md` 섹션 13 참고
|
||||
**테스트 결과**: `rb8001/tests/test_failed_questions_results.md`
|
||||
|
||||
---
|
||||
|
||||
## 문제
|
||||
|
||||
**실패한 질문 18개** (총 23개 중 78%):
|
||||
- 짧은 후속: "어디서?", "언제?", "누구랑?", "뭐야?"
|
||||
- 맥락 의존: "그거 어떻게 됐어?", "결과는?", "그럼 어떻게 할까?"
|
||||
- 모호한: "어떻게 생각해?", "괜찮아?"
|
||||
- 부정/거부: "안 해도 돼", "취소해줘", "보내지 마"
|
||||
- 비교/선택: "어느 게 나아?", "A와 B 중에 뭐가 좋아?"
|
||||
- 시간 모호: "언제 했어?"
|
||||
- 상태 확인: "지금 뭐 하고 있어?", "작업 끝났어?"
|
||||
- 정보 요청: "너는 뭘 할 수 있어?"
|
||||
|
||||
**현재 문제**: CONTEXT_FOLLOWUP Intent 구현되어 있으나 패턴 매칭 미작동, 규칙 기반 접근으로 정확도 저하
|
||||
|
||||
---
|
||||
|
||||
## 아키텍처
|
||||
|
||||
### 워크플로우
|
||||
```
|
||||
사용자 질문
|
||||
↓
|
||||
FastPath (명확한 케이스만) → 성공 시 즉시 처리
|
||||
↓ 실패
|
||||
짧은 질문 감지 (len <= 10 또는 확신도 < 0.7)
|
||||
↓
|
||||
LLM 질문 확장 (맥락 포함)
|
||||
↓
|
||||
LLM 의도 분류 (맥락 포함)
|
||||
↓
|
||||
LangGraph 워크플로우 (엔티티 추출 → 스킬 선택)
|
||||
↓
|
||||
스킬 실행
|
||||
```
|
||||
|
||||
### 필요 작업
|
||||
1. ✅ LLM 질문 확장 기능 추가 (완료)
|
||||
2. ✅ LLM 의도 분류 맥락 포함 강화 (완료)
|
||||
3. ✅ LangGraph 기반 워크플로우 구현 (완료, 기본 활성화)
|
||||
4. ✅ 세션 맥락 LLM 전달 (완료)
|
||||
|
||||
---
|
||||
|
||||
## 구현 단계
|
||||
|
||||
| Phase | 작업 | 상태 |
|
||||
|-------|------|------|
|
||||
| 1 | LLM 질문 확장 구현 | ✅ 완료 → `troubleshooting/251223_짧은_후속_질문_LLM_Phase1234_구현.md` |
|
||||
| 2 | LLM 의도 분류 강화 | ✅ 완료 → `troubleshooting/251223_짧은_후속_질문_LLM_Phase1234_구현.md` |
|
||||
| 3 | LangGraph 워크플로우 | ✅ 완료 → `troubleshooting/251223_짧은_후속_질문_LLM_Phase1234_구현.md` |
|
||||
| 4 | 세션 맥락 통합 | ✅ 완료 → `troubleshooting/251223_짧은_후속_질문_LLM_Phase1234_구현.md` |
|
||||
|
||||
---
|
||||
|
||||
## 목표
|
||||
|
||||
- 실패한 질문 18개 → 3개 이하 (78% → 13%)
|
||||
- 짧은 후속 질문 정확도: 30% → 90% 이상
|
||||
- 맥락 의존 질문 정확도: 30% → 85% 이상
|
||||
|
||||
---
|
||||
|
||||
## 참고
|
||||
|
||||
- `311_FastAPI_구조_원칙.md` (섹션 13: LLM 우선 접근 원칙)
|
||||
- `context_followup_question_solutions.md` (연구 문서)
|
||||
@ -0,0 +1,33 @@
|
||||
# router._call_internal_llm 서비스 계층 이동
|
||||
|
||||
**날짜**: 2025-12-23
|
||||
**작성자**: happybell80
|
||||
**관련 파일**: `app/router/router.py:321`, `app/services/llm/internal_llm_service.py`
|
||||
|
||||
---
|
||||
|
||||
## 문제 상황
|
||||
|
||||
- `router.py`에 `_call_internal_llm` 메서드가 비즈니스 로직 포함
|
||||
- 계층 분리 원칙 위반: router는 HTTP 처리만, 비즈니스 로직은 services에
|
||||
|
||||
## 해결 방안
|
||||
|
||||
- `app/services/llm/internal_llm_service.py` 생성
|
||||
- `call_internal_llm` 함수로 이동 (감정 분석, 윤리 확인, 이모지 제거 포함)
|
||||
- 호출부 수정: `message_service.py:500,616`, `main.py:121,536,583`, `llm_endpoint.py:35,73,104`, `dm_skill.py:337`
|
||||
- `router.py:321-442`에서 `_call_internal_llm` 제거
|
||||
|
||||
## 구현 완료
|
||||
|
||||
- 서비스 생성 완료
|
||||
- 모든 호출부 수정 완료
|
||||
- router에서 제거 완료
|
||||
- 테스트 통과 확인
|
||||
|
||||
## 교훈
|
||||
|
||||
- 계층 분리 원칙 준수: router는 라우팅만, 비즈니스 로직은 services로
|
||||
- TDD 접근: 테스트 작성 → 구현 → 리팩토링 순서로 진행
|
||||
- 문서 작성 원칙 준수: 파일명:줄번호로 위치 명시, 핵심만 간결하게
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user