어디살지 POC chat-v2 — 9축 종합 평가 결과

N=100 매물 · 22지역 · Gemini Embedding 3072d + Cohere Rerank-4-Pro + Groq gpt-oss-120b · 2026-05-19 · benchmark-logs/llm-judge-20260519-142412.json
TL;DR — POC 본체 성능 우수, 단발 chat 만 약점
4.46/5
LLM Judge 평균 (65 시나리오)
22.3/25
5축 합산 (메일 r19 = 22.2)
92.2%
우수(≥4) 59/64
100%
복잡 멀티턴 retrieval
100%
임베딩 Hit@10 / MRR
97.5%
의도 추출 precision
87.5%
매물 조회 (SearchService 직접)
33%
단발 chat tool routing

1. 9축 평가 매트릭스

측정결과합격비고
매물 등록 N=100 시드 (22지역 균등) + Gemini 3072d 임베딩 PG 100건 · Qdrant 100 points 대전 24건 추가 (둔산·도룡·가정·봉명·갈마·은행)
임베딩 (Gemini Emb 2, 3072d) Hit@10 · MRR@10 · top1 100% / 100% / 100% ceiling 도달, 더 까다로운 셋 필요
리랭커 (Cohere Rerank-4-Pro) dense vs full 비교 dense 이미 100% → 변별 불가 hard-negative 셋(동의어·중복 지역) 합성 필요
의도 추출 (extract_filters) 5축 균등 30 시나리오 slot precision 39/40 = 97.5% 5축 평균 98% — intent/life_stage/lifestyle/occupation 100%, priority 90%
매물 조회 (SearchService 직접) 명시 검색 8건, results > 0 7/8 = 87.5% #64 보 300/월 25 시드 범위 밖 — 정상
복잡 멀티턴 (5턴) tool routing + final retrieval routing 12/12, retrieval 3/3 페르소나 → 지역 → 조건 → 회상 → 검색 모두 통과
회상 (get_thread_history) "아까 뭐라 했지" 류 발화 3/3 정확 호출 이전 turn user 발화 응답에 포함
메모리 누적 (session.filters) T1-T4 누적 후 T5 search 3/3 (T5 results 3-5건) handle_turn 의 update_filters 정상 누적
문구 (🥬 emoji + 자연체) 15 응답 측정 🥬 100% · 자연체 ~83% 측정 정규식 보완 후 자연체 우수
단발 멀티턴 (3턴 시뮬) 5 시나리오 최종 retrieval 3/5 = 60% T3 단순 트리거("보여줘")가 단독 search 호출 못함
단발 chat (1턴) 명시 검색 발화 12건 tool 33% / recall 25% POC 의도(멀티턴 우선)에 부합 — 평가 방식 한계
LLM Judge full 65 시나리오 × 5 축 (R/H/N/C/E) 4.46/5 (22.3/25) 메일 r19 4.44 → +0.02 상승

2. LLM Judge 카테고리별 결과

카테고리평균구간
우선순위4.60
직업·근무4.60
인생 단계4.52
특수 진입4.50
라이프스타일4.49
사회관계4.48
신체·건강4.33
의도 명확도3.93

가장 약한 영역은 "의도 명확도" — vague 발화("처음인데 뭐부터 봐야 해?")에서 LLM 이 명확화 질문 대신 generic 답변 가능성.

3. 적용된 개선 (반복 사이클)

변경이유효과
임베딩 어댑터 429 retry+backoff (5s/15s/45s) Gemini Vertex quota 한도 시 한 번에 fail 시드 100건 무중단 완료
synthetic_listings 에 대전 6개 동 + 가격 base 추가 시나리오 둔산동·도룡동 매물 시드 0건 → mismatch 대전 24/100 = 24% 균등 분포
POC_AGENT_LISTING_MIN_SCORE=0.0 (docker-compose env) RRF score (~0.016) 가 기본 임계 0.05 미달 → 모두 잘림 tool wrapper 결과 통과
search_listings tool description 강화 — "보여줘/매물/추천" 명시 시 무조건 호출 LLM 이 명시 검색 발화도 [E] 명확화로 분류 tool routing 부분 개선 (25% → 33%)
SYSTEM_PROMPT [A] 룰 — 검색 동사·지역명 키워드 명시 tool description 만으론 부족 복잡 멀티턴 100% 통과

4. 잔여 개선 후보 (Follow-up)

우선항목예상 효과
P1 의도 명확도 카테고리 응답 강화 (vague → 부드러운 명확화 질문) LLM Judge 의도 명확도 3.93 → 4.3+
P1 리랭커 hard-negative 셋 합성 (동의어·중복 지역) + dense vs rerank 비교 리랭커 변별력 측정 (현 ceiling 100%)
P2 LLM 모델 비교 (Groq gpt-oss-120b vs Claude Haiku 4.5 vs Gemini 3 Pro) 한국어 routing 정확도 ↑ (단발 25% → 70%+ 기대)
P2 신체·건강 카테고리 페르소나 룰 보강 (계단·소음·알러지·임신) 4.33 → 4.5+
P3 시나리오 holdout 5건 분리 (train 60 / test 5) 및 LLM Judge 재실행으로 일반화 검증 overfitting 방지

5. 인프라 / 환경 스냅샷

구성요소
POC API (FastAPI)http://localhost:30811
PostgreSQL30432 · poc_chat (PG 100 매물)
Redis30379 (session / 임베딩 캐시)
Qdrant30333 (poc_listings_gemini_3072 · 100 points)
임베딩OpenRouter Gemini Embedding 2 (3072d, 429 retry)
리랭커OpenRouter Cohere Rerank-4-Pro (32K context)
LLMGroq gpt-oss-120b (temperature 0.1)
Frontend/chat-v2 페이지 (VITE_POC_API_URL=http://localhost:30811)
Infisical 동기화local·alpha·beta 모두 71 키 일치

6. 관련 리포트 (이전 배포)