docs: update rb8001 web search intent troubleshooting

This commit is contained in:
Claude-51124 2025-11-18 23:24:00 +09:00
parent 1b4adb73fc
commit 9a00e6f3bc

View File

@ -39,21 +39,13 @@
## 구현 완료 (2025-11-18)
### Chain-of-Thought (CoT) 적용 완료
- `rb8001/app/core/config.py:38`: `INTENT_USE_COT` 환경변수 추가 (기본값: false)
- `rb8001/app/llm/intent_parser.py:24-117`: CoT 프롬프트 및 조건부 활성화 로직 구현
- CoT 활성화 시: 단계별 추론 프롬프트 (1단계: 키워드 추출 → 2단계: 의도 후보 검토 → 3단계: 최종 결정)
- CoT 비활성화 시: 기존 간단 프롬프트 유지
- 추론 과정 로깅: `logger.debug()`로 추론 단계 기록
- 추론 과정 메타데이터: `_reasoning_steps` 필드로 응답에 포함 (선택적)
- `rb8001/tests/test_intent_parser_cot.py`: CoT 적용 테스트 작성 (TDD)
- 커밋: `256ffeb` (2025-11-18)
- 배포: Gitea Actions 자동 배포 완료, rb8001 컨테이너 정상 동작 확인
### 활성화 방법
- 환경변수 설정: `.env` 파일에 `INTENT_USE_COT=true` 추가
- 기본값: `false` (CoT 비활성화, 기존 동작 유지)
- 활성화 시: 복잡하거나 불완전한 질문의 의도 분류 정확도 개선 기대
### 1차 개선: Clarify 응답 및 대명사 해소 보완
- `rb8001/app/router/message_router.py:25-114`: `_resolve_search_query()`에서 기업 후보 스캔 시 숫자/날짜 전용 토큰(예: `11월`, `10시`, `2025`)을 엔티티 후보에서 제외하도록 필터 추가, 날짜·시간 표현이 "기업명"으로 잘못 인식되는 문제 완화.
- `rb8001/app/router/router.py:180-205`: Clarify 응답 여부(`is_clarify_response`) 계산 시 세션의 직전 intent(`session.intent`)를 함께 보관하여, 후속 발화 처리에 활용.
- `rb8001/app/router/router.py:247-283`:
- Clarify 응답이면서 직전 세션 intent가 `web_search`이고, DecisionEngine이 현재 발화를 `UNKNOWN`으로 분류한 경우, intent를 `WEB_SEARCH`로 보정하고 웹 검색용 스킬 시퀀스를 재구성하도록 수정.
- 이를 통해 `"어떤 회사를 말씀하시나요?"`에 대한 답변으로 `aidol_company`처럼 단일 엔티티만 입력된 경우에도, 일반 LLM 대화가 아니라 웹 검색 플로우로 다시 연결되도록 보장.
- `rb8001/app/router/router.py:286-323`: Clarify 응답인 경우 원본 메시지(`message`)를 엔티티로 사용하여 `검색어`/`엔티티` 슬롯을 채우는 기존 로직과 결합해, "원래 질문 + 새 엔티티" 조합 검색이 안정적으로 동작하도록 정렬.
## 교훈
@ -68,4 +60,3 @@
### 원칙
- `DOCS/book/300_architecture/database/tables.md:162-170`에 정의된 동적 의도 레지스트리 설계 원칙(제로샷 의도 분류, DB 기반 업데이트, 재시작 없는 반영)을 실제 rb8001 의도 엔진 운영에도 일관되게 적용해야 함.
- 트래픽에서 관찰된 실제 사용자 발화는 DecisionEngine 정규식 패턴뿐 아니라 SemanticIntentClassifier 프로토타입과 임계값 설계에까지 반영하여, UNKNOWN을 줄이고 웹 검색/업무 스킬로 자연스럽게 이어지는 경로를 유지해야 함.