diff --git a/book/300_architecture/311_FastAPI_구조_원칙.md b/book/300_architecture/311_FastAPI_구조_원칙.md index 1b2425d..e3bdcad 100644 --- a/book/300_architecture/311_FastAPI_구조_원칙.md +++ b/book/300_architecture/311_FastAPI_구조_원칙.md @@ -228,29 +228,28 @@ utils ## 13. LLM 우선 접근 원칙 -**핵심 원칙**: 애매한 경우에는 하드코딩된 규칙(heuristic) 대신 LLM을 적극 활용 +**핵심 원칙**: LLM을 기본으로 사용하고, 하드코딩된 규칙(heuristic)은 최소화 -### LLM 우선 적용 대상 -1. **의도 분류가 애매한 경우** (확신도 < 0.7) - - 규칙 기반 패턴 매칭 실패 시 LLM으로 재분류 +### LLM 기본 사용 +1. **의도 분류**: LLM이 기본, 규칙은 FastPath 최적화용으로만 사용 - 짧은 질문("어디서?", "결과는?")은 LLM이 맥락을 해석하여 확장 -2. **맥락 의존 질문** ("그거 어떻게 됐어?", "취소해줘") - - LLM이 직전 대화 맥락을 참고하여 선행사 해석 및 질문 확장 -3. **모호한 표현 처리** ("어떻게 생각해?", "괜찮아?") - - LLM이 컨텍스트를 이해하여 적절한 응답 생성 -4. **엔티티 추출 및 해석** - - 규칙 기반 추출 실패 시 LLM으로 재시도 + - 맥락 의존 질문("그거 어떻게 됐어?", "취소해줘")은 LLM이 선행사 해석 +2. **엔티티 추출 및 해석**: LLM이 기본, 규칙은 보조 - 대명사, 지시어 해소는 LLM 활용 + - 명확한 패턴(날짜, 시간 등)만 규칙으로 빠르게 처리 +3. **모호한 표현 처리**: LLM이 컨텍스트를 이해하여 적절한 응답 생성 +4. **복잡한 워크플로우**: LangGraph로 LLM 기반 다단계 처리 -### 규칙 기반은 보조적으로만 사용 -- **명확한 케이스**: 인사("안녕"), 명령어("/news") 등 패턴이 명확한 경우만 규칙 사용 -- **성능 최적화**: FastPath로 명확한 케이스를 빠르게 처리, 애매한 경우만 LLM 호출 -- **비용 최적화**: 확신도 높은 케이스는 규칙으로 처리, 애매한 경우만 LLM 사용 +### 규칙 기반은 성능 최적화용으로만 제한 +- **FastPath 최적화**: 인사("안녕"), 명령어("/news") 등 매우 명확한 패턴만 규칙 사용 +- **성능/비용 최적화**: 확신도 매우 높은 케이스(> 0.95)만 규칙으로 빠르게 처리 +- **규칙 추가 금지**: 새로운 패턴마다 규칙 추가하지 말고 LLM 활용 ### 금지 사항 -- ❌ 애매한 케이스를 규칙/패턴 매칭으로 강제 처리 -- ❌ LLM 호출을 피하기 위해 복잡한 규칙 체인 구축 -- ❌ 새로운 패턴마다 규칙 추가하는 방식 (유지보수 부담 증가) +- ❌ LLM 호출을 피하기 위해 규칙/패턴 매칭으로 처리 +- ❌ 복잡한 규칙 체인 구축 (LLM이 더 정확하고 유지보수 용이) +- ❌ 새로운 패턴마다 규칙 추가하는 방식 (LLM이 자동으로 처리) +- ❌ "규칙으로 처리 가능하면 규칙 사용" 사고방식 (LLM 우선 사고) ### 장점 - **유연성**: 새로운 패턴에 대한 규칙 추가 없이 LLM이 자연스럽게 처리