ai-real-estate-service · worktree fix/chat-v2-transaction-type-filter · 테스터 4개 이슈 대응
0. 테스터 4개 이슈 최종 상태
이슈
상태
핵심
② 월세 요청에 전세 섞임
완료
거래유형 필터 + 멀티턴 번복 + 페르소나·통합 검증
④ citation raw 노출
완료
bracket-less 패턴 + 스트리밍 hold-back
① 대화 소실
완료
lifestyle 마운트 자동복원
③ "동네 매물 1개 느낌"
재정의됨
동네 카드 아님 — 매물 검색 결과 개수 문제 (아래 정정)
⚠️ 중요 정정 — ③의 진짜 원인
초기 분석에서 "동네 카드에 매물 0개"라 판단했으나 코드 재추적 결과 오해였음. 테스터가 본 "지족동 보증금8000/월세40", "봉명동 전세2억" 카드는 매물 카드(PropertyCarousel)다 — formatPropertyPrice의 정확한 출력 포맷. 동네 카드(NeighborhoodCardGrid)는 데이터 0이라 애초에 렌더 안 됨(return null).
"매물 찾아줘 → search_listings → 매물 카드" 구조는 정상 동작 (tools.py:238 → assistant_adapter.py:350 → PropertyCarousel)
테스터가 본 2개 카드 = 서로 다른 동(지족동·봉명동)의 개별 매물 2건이 동을 1개씩 대표한 것
진짜 원인: search_listings가 score ≥ 0.05 필터(tools.py:257) + [:5] 상한 후 2건만 반환 → 매물 카드 2장
→ 동네 카드 신설은 불필요. 해결은 매물 검색 결과 개수/동네 다양성(score 완화 / top_k / 그룹핑 — 제품 의도 확인 필요)
1. 완료한 작업
1-1. 인프라 · 환경 (머지됨)
모델 통일: 두 챗봇 모두 OpenAI gpt-5.4-mini 확인. settings 폴백 gpt-5.4→gpt-5.4-mini 정합 → PR #1128 main 머지 완료
로컬 .env: 운영 앱변수 65개 적용(ENVIRONMENT만 development), .env.backup 백업
임베딩 분석: alpha qdrant 13,797 포인트(transaction_type 색인됨) vs 로컬 0 → 운영 재임베딩 불필요, 로컬 backfill 필요