어디살지 — 어제·오늘 작업 + 잔여 로드맵
22
main 커밋 (17/5)
7
POC 미커밋 (+91행)
9
평가 Pages 배포
4.46/5
LLM Judge 65 시나리오
1. 도메인별 커밋 (어제·오늘) 22건
📍 둘러보기/지도 (8건)
05-18 18:13
424c00ea fix(feed): /feed 첫 진입 줌을 500m(L6)로 복구 — #885 회귀 수정05-18 16:35
8cbbd045 fix(feed): 지도 강조 폴리곤을 fetch 입력에서 분리해 RATE_LIMIT_EXCEEDED 해소05-18 12:47
11472d5e feat(feed): 지도 마커를 강조 폴리곤 영역으로 한정해 리스트와 일치시킴05-18 12:38
2c306b88 fix(feed): activeFilterChips useMemo 의존성에 admArea 누락 수정05-18 12:34
846d969c feat(feed): 둘러보기 매물 리스트 무한 스크롤 도입05-18 12:16
792acd06 feat(feed): 헤더 지역 라벨을 지도 뷰 하단 지역 브레드크럼 pill로 이전05-18 11:58
1f410980 fix(feed): 백엔드 경계 데이터를 법정동 기준으로 갱신해 폴리곤 클릭 매물 조회 복구05-18 11:37
c928e130 feat(feed): 지도 행정구역 폴리곤을 법정동 기준으로 전환하고 마커·랜딩 정비 (#885)📋 건축물대장 API (3건)
05-19 12:01
f22f8a29 fix(building-registry): getBrHsprcInfo 응답 키 housePc → hsprc (단지 평균 공시가05-19 11:55
5369ecb1 feat(building-registry): Kakao b_code 폴백 + 총괄표제부 머지 + 용도구역 파싱 (#895)05-19 11:05
e5850e6f docs(building-registry): 공공데이터 건축물대장 API 라이브 통합 테스트 + 리포트 (#892)🤖 POC chat-v2 (2건)
05-19 11:22
ea9ca5ee chore(poc-chat-search): OpenRouter 매니지드 전환 후 cleanup — 옛 모델·테스트·폴백 제거 05-18 18:24
6e1661e0 feat(poc-chat-search): OpenRouter 매니지드 임베딩·리랭커 전환 — Gemini Embed 2 + C📝 문서 정리 (2건)
05-19 10:51
42a82e08 chore(docs): 1회성 fix/checklist md + ad-hoc docx 생성 스크립트 정리 (#891)05-19 10:42
f62b5a1e chore(docs): 루트/lagacy 산재 문서 docs/ 정리 + ad-hoc 테스트 파일 삭제 (#890)🔧 기타 (2건)
05-18 17:35
1b0ef1c3 chore: remove .moai/.claude framework, rewrite CLAUDE.md (hexagonal) (05-18 14:14
1686f35b fix: align feed map filters with list🏠 임차인 페이지 (2건)
05-18 10:35
a5148f11 feat(tenant): 라이프스타일 키워드 25개 지원 및 추천기 백엔드 연동 (#883)05-18 10:26
2a9ff239 feat(tenant): 매물 요청 화면을 신규 Figma 디자인으로 전면 재구성 (#882)🎨 Frontend 공통 (1건)
05-18 15:14
7cd4cae9 feat(frontend): add global image fallback🤖 POC chat-v2 (1건)
05-18 12:41
bb3df82e feat(poc): gpt-oss-120b + arctic-embed-l-v2.0-ko + BGE-reranker-v2-m3 👤 중개인 대시보드 (1건)
05-18 12:25
10b44801 feat(agent): PC 대시보드 본문 폭 1320px 통일 및 포인트 충전 결제 버튼 정비⚙️ Backend (1건)
05-18 10:45
16fcdd44 fix(backend): 마이그레이션 테이블명 오타 수정 및 3개 head 수렴 (#884)2. POC chat-v2 미커밋 변경 (7 파일 / +91행) 코드 적용 완료, 커밋 대기
| 파일 | 변경 | 측정 효과 |
|---|---|---|
qdrant_adapter.py (+48행) | area_keywords MatchText filter + address PREFIX text index 멱등 생성 | area@10 11% → 43% (4배) |
openrouter_gemini_adapter.py (+20/-12) | task_type=RETRIEVAL_QUERY/DOCUMENT 옵션 전달 (OpenRouter 가 무시 — provider 직접 호출 시 활성) | 현재 효과 0 (OpenRouter 한계) |
openrouter_cohere_adapter.py (+3행) | rank_fields 시도 후 revert + 한계 주석 (OpenRouter ZodError 400) | — |
docker-compose.yml (+3행) | POC_AGENT_LISTING_MIN_SCORE=0.0 env 추가 | RRF score 임계 잘림 회피 |
agent.py (+8행) | SYSTEM_PROMPT [A] 룰 강화 — "매물 보여줘/추천" 키워드 무조건 search 호출 | tool 호출률 ↑ (멀티턴 100%) |
tools.py (+8행) | search_listings tool description 강화 | — |
synthetic_listings.py (+13행) | 대전 6개 동 + 가격 base 추가 (둔산·갈마·도룡·가정·봉명·은행) | 시드 100건 중 대전 24건 균등 |
3. 어제·오늘 배포된 평가 Pages 9건 / personal Cloudflare
건축물대장 API 라이브 테스트
5종 엔드포인트 totalCount 메일 기준 일치
building-registry-report.pages.dev주소·건축물 증강 전략
B+A 하이브리드 권장 (23/25)
address-augmentation-strategy.pages.dev38 필드 카탈로그
어댑터 7종 × 4 데이터 소스
property-enrichment-fields.pages.dev38 필드 실측 검증
24 채움·14 empty·0 fail
field-validation-live.pages.devBackend 4축 진단
Alembic 7 head·관측성 0·hex 위반 6
backend-audit-4axis.pages.devPOC 검색 2026 설계
lane 분리·헥사고날·점진 검증
poc-search-design-2026.pages.devPOC 9축 평가 종합
LLM Judge 4.46/5
poc-eval-suite-result.pages.devRaw 데이터 분석 (22 케이스)
매물 raw + 케이스별 카드
poc-raw-analysis.pages.dev컴포넌트 29 항목 전수
OpenRouter 한계·최적 stack
poc-component-eval.pages.dev4. 잔여 로드맵 — 시나리오 테스트 + 챗봇 통합 + 인프라
| 우선 | 영역 | 작업 | 예상 효과 |
|---|---|---|---|
| P0 | POC 코드 | 현재 미커밋 7 파일 PR 머지 (area filter + score 임계 + tool desc 강화 등) | 로컬 검증 결과 영구화 |
| P0 | 시드 데이터 | N=100 → 300+ (각 지역×타입 ≥ 3 매물) | area@10 43% → 80%+ (ceiling 해소) |
| P0 | LLM | Groq gpt-oss-120b → Claude Haiku 4.5 또는 Gemini 3 Pro | 단발 tool routing 33% → 80%+ |
| P0 | 임베딩 | OpenRouter Gemini → bge-m3 self-host 또는 Upstage Solar (한국어 부동산 특화) | recall ↑ + task_type 한계 해소 |
| P0 | 리랭커 | OpenRouter Cohere → Cohere 직접 호출 (rank_fields 활성) | 지역·의미 분리 가중 |
| P1 | 시나리오 테스트 | holdout 5건 분리 (train 60 / test 5) — overfitting 방지 | 일반화 검증 |
| P1 | 시나리오 테스트 | 복잡 멀티턴 100건 합성 (페르소나·신체·사회 5축 cross) | LLM Judge 4.46 → 4.6+ |
| P1 | 리랭커 | hard-negative 셋 (동의어·중복 지역) 합성 → dense vs rerank 변별 측정 | 리랭커 효과 정량화 |
| P1 | Qdrant | payload index (deposit/rent/room_count/property_type) 추가 | N 늘면 filter 속도 ↑ |
| P1 | Backend audit | Alembic head 7개 → 단일 merge + CI 가드 | 배포 실패 회복 |
| P1 | 관측성 | Sentry + OTel 도입 (POC + Backend) | 운영 가시성 |
| P2 | 챗봇 통합 | /chat ↔ /chat-v2 alignment (아래 다이어그램 참조) | POC → 운영 채택 |
| P2 | 임베딩 | dim 3072 → 1024 Matryoshka (provider 직접 시) | 비용·메모리 1/3 |
| P2 | Sparse | Qdrant native sparse (BGE-M3) 통합 | BM25 별도 인덱스 제거 |
| P3 | BM25 | k1·b 도메인 튜닝 | marginal |
5. /chat ↔ /chat-v2 통합 방안
현재 상태
┌─────────────────────────────┐ ┌─────────────────────────────┐
│ /chat (운영) │ │ /chat-v2 (PoC 격리) │
│ pages/tenant/Chat.tsx │ │ pages/poc-v2/ChatV2Page │
│ GET /v1/chats/rooms │ │ POST /v2/ai/chat (FastAPI) │
│ 본 백엔드 :10100 │ │ POC FastAPI :30811 │
│ JWT 인증 │ │ HMAC-SHA256 서명 │
│ Postgres ai_real_estate │ │ PostgreSQL poc_chat │
│ Redis 10160 │ │ Redis 30379 │
│ Qdrant 10170 (단지 검색) │ │ Qdrant 30333 (poc 매물) │
└─────────────────────────────┘ └─────────────────────────────┘
통합 방안 (3 옵션)
A. 백엔드에 /v1/ai/chat 라우터 추가 → frontend /chat 그대로, /v2/ai 로직을 본 백엔드로 이식
장점: 운영 표준화 · 인증·DB 일관
단점: POC 격리 깨짐 · 재시드 (Qdrant) 필요
B. chat-v2 결과만 본 백엔드 thread DB 에 mirror (HMAC 검증 후 import)
장점: POC 격리 유지 · 운영 chat 화면도 결과 표시
단점: 두 DB 동기화 비용
C. /chat 페이지에서 POC API 직접 호출 (frontend 만 swap)
장점: 최소 변경 · POC stack 그대로
단점: 본 백엔드 thread 기능 (이력·결제·구독) 활용 못 함
권장: B (mirror) — POC 검증 안정 후 A 로 점진 이식.
6. 다음 1주 sprint (제안)
| Day | 작업 | 결과물 |
|---|---|---|
| D1 | POC 7 파일 PR + main 머지 + 시드 N=300 확장 | area@10 80%+ 측정 |
| D2 | LLM 모델 swap (Claude Haiku 4.5 시도) + tool routing 재측정 | 단발 routing 80%+ |
| D3 | 임베딩 bge-m3 self-host (Docker) 또는 Upstage Solar 매니지드 시도 | 한국어 부동산 임베딩 비교 |
| D4 | Cohere 직접 호출 + rank_fields 활성 + 리랭커 변별력 측정 | hard-negative 셋으로 측정 |
| D5 | 시나리오 holdout 5건 분리 + LLM Judge 재실행 | 일반화 검증 |
| D6 | Backend audit P0: Alembic merge + Sentry/OTel 도입 | 관측성 ↑ |
| D7 | /chat ↔ /chat-v2 통합 옵션 B (mirror) PoC 시작 | 본 백엔드 thread DB 에 PoC 결과 import 흐름 |