From 460cff486123ceb9b0e6b7c80e1c447df9c24b4d Mon Sep 17 00:00:00 2001 From: Claude-51124 Date: Tue, 23 Dec 2025 18:29:24 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20LLM=20=EC=9A=B0=EC=84=A0=20=EC=A0=91?= =?UTF-8?q?=EA=B7=BC=20=EC=9B=90=EC=B9=99=20=EC=88=98=EC=A0=95=20-=20LLM?= =?UTF-8?q?=EC=9D=84=20=EA=B8=B0=EB=B3=B8=EC=9C=BC=EB=A1=9C=20=EC=82=AC?= =?UTF-8?q?=EC=9A=A9,=20=EA=B7=9C=EC=B9=99=EC=9D=80=20=EC=B5=9C=EC=86=8C?= =?UTF-8?q?=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../311_FastAPI_구조_원칙.md | 33 +++++++++---------- 1 file changed, 16 insertions(+), 17 deletions(-) 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이 자연스럽게 처리