From d6428feb4497735e1b959d494e66030d2ea4a677 Mon Sep 17 00:00:00 2001 From: happybell80 Date: Wed, 6 Aug 2025 17:11:26 +0900 Subject: [PATCH] =?UTF-8?q?250806=20=ED=8A=B8=EB=9F=AC=EB=B8=94=EC=8A=88?= =?UTF-8?q?=ED=8C=85=20=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8=20-=20?= =?UTF-8?q?=EC=BA=90=EC=8B=9C=20=EC=A0=9C=EA=B1=B0=20=EB=B0=8F=20=EB=8C=80?= =?UTF-8?q?=ED=99=94=20=EC=97=B0=EC=86=8D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 캐시 시스템 전면 개편 과정 - 대화 연속성 문제 해결 - 교훈 정리 --- ...06_happybell80_동적프롬프트구현.md | 80 +++++++++++++++++++ 1 file changed, 80 insertions(+) diff --git a/troubleshooting/250806_happybell80_동적프롬프트구현.md b/troubleshooting/250806_happybell80_동적프롬프트구현.md index b37096c..ed42a12 100644 --- a/troubleshooting/250806_happybell80_동적프롬프트구현.md +++ b/troubleshooting/250806_happybell80_동적프롬프트구현.md @@ -247,6 +247,86 @@ if data.get('user_name') and data['user_name'] != "null": - Redis → 새 의존성, 복잡도 증가 - ChromaDB identity → 이미 있는 것 활용 +## 오후 5시 10분 + +### 캐시 시스템 전면 개편 + +**문제 발견**: +- 캐시 임계값 0.1~0.3 너무 낮음 (업계 표준 0.8) +- 3회 사용 제한 임의적 (TTL 기반이 표준) +- 템플릿 응답이 Gemini 응답과 충돌 + +**해결 과정**: + +1. **캐시 최적화 (실패)**: + - 임계값 0.8로 상향 + - TTL 5분 기반 전환 + - 결과: 여전히 문제 지속 + +2. **캐시 완전 제거**: + ```python + # config.py + USE_CONVERSATION_CACHE: bool = False # 비활성화 + CACHE_DISTANCE_THRESHOLD: float = 0.95 # 사실상 무효 + CACHE_TTL_SECONDS: int = 10 # 극단축 + ``` + +3. **템플릿 응답 제거**: + - 모든 하드코딩된 응답 삭제 + - 100% Gemini API 사용 + +### 대화 연속성 문제 + +**증상**: +``` +로빙: "세 가지 제안해볼까요?" +사용자: "그래" +로빙: "무엇을 도와드릴까요?" ❌ (문맥 손실) +``` + +**원인**: +- `should_store` 조건이 많은 대화 필터링 +- 로빙 응답이 메모리에 저장 안됨 + +**해결**: +```python +# brain.py - 모든 대화 무조건 저장 +# 사용자 메시지 +await self.memory.store_memory( + content=f"User: {message}", + user_id=user_id, + memory_type="episodic", + metadata={"role": "user"} +) + +# 로빙 응답 (필수) +await self.memory.store_memory( + content=f"Robing: {final_response}", + user_id=user_id, + memory_type="episodic", + metadata={"role": "assistant"} +) +``` + +## 교훈 + +1. **캐시는 만병통치약이 아니다** + - 잘못된 캐시는 오히려 문제 악화 + - 초기에는 캐시 없이 시작 + +2. **대화 연속성 = 모든 발화 저장** + - User만 저장하면 반쪽짜리 + - Assistant 응답도 필수 + +3. **템플릿 vs LLM** + - 혼용하면 일관성 파괴 + - 하나로 통일 필요 + +4. **업계 표준 존중** + - 유사도 임계값: 0.8 + - TTL 기반 만료 + - 사용 횟수보다 시간 기반 + --- 작성자: happybell80 & Claude