어디살지 AI 비서 — 작업 리포트

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).

1. 완료한 작업

1-1. 인프라 · 환경 (머지됨)

1-2. 이슈② 거래유형 필터 (검색 5곳)

파일변경
enums.pyTRANSACTION_TYPES=(monthly,jeonse,sale)
schemas.pyhard.transaction_types + required + _replace 번복신호
prompts.py거래유형 추출 + 번복 지시
qdrant_adapter.pytransaction_type MatchAny 필터
redis_adapter.py거래유형 replace + _replace 키 처리

메커니즘: 전세(rent=0)가 rent_max를 항상 통과하던 버그 차단. 실데이터 전세 1,043건(23.4%) 오염 방지.

1-3. 멀티턴 번복 (반복개선 R1~R5)

1-4. 이슈④ citation (R6) · ① 대화소실 (R7)

1-5. 테스트 (대폭 추가)

영역방법론 / 케이스
거래유형contract · metamorphic · combinatorial · 통합 E2E
citation변종 · 멱등성 · property fuzzing · 스트리밍
페르소나대전+서울 13 (카이스트·공무원·신혼·강남·대학생 등)
멀티턴 번복거래유형·지역·타입·가격·방개수·복합
대화복원 / 동네카드 매퍼5 / 9

백엔드 236 passed, 프론트 통과. 반복개선 5라운드로 217→236 수렴.

2. 향후 할 작업

③ 재정의 — 매물 검색 결과 개수 (동네 카드 아님)

② 검증 보강

인프라 / 배포

3. 우선순위 (WSJF)

  1. PR 머지 — ①②④ 검증 완료, 가장 빠른 가치
  2. ③ 매물 검색 결과 개수 — 테스터 핵심 불만 (score/top_k 조정)
  3. _replace · A봇 실 LLM 검증 — 정확도 보강
  4. backfill 키 복구 후 로컬 실데이터 검증