← 전체 프로젝트
01. 한 줄로 보는 CallGuard
CallGuard
120 다산콜센터 통화를 실시간으로 들으며 필요한 문서를 상담원 화면에 띄우고, 개인정보는 화면에 뜨기 전에 가리는 StreamRAG 시스템
- Python 3.13
- FastAPI
- PostgreSQL
- Elasticsearch 9 · nori
- KoE5 임베딩
- Google STT
- WebSocket
- React
- k3s · AWS
↓ 스크롤 또는 ← → 키로 넘기기
02. 설계 원칙 - server와 ai를 따로 배포할 수 있게
두 사람이 server와 ai를 나눠 개발해도 의존이 섞이지 않도록, 허브-스포크 골격과 import-linter 계약 5종을 직접 세웠습니다.
03. 개인정보 실시간 마스킹 - 애매하면 가린다
멈춰 있던 마스킹 모듈을 넘겨받아, 통화 자막이 상담원 화면에 뜨기 전에 주민번호·전화·카드·주소를 가리도록 만들었습니다.


근거: pii_detector.py · 결정 019 — C-5 담당 이관 · 결정 324 — 중간 자막 숫자 가림
04. StreamRAG - 말이 끝난 순간에만 찾는다
통화 중 자막은 20초에 199건씩 들어옵니다. 매번 검색하지 않고, 고객의 말이 확정된 순간에만 문서를 찾아 카드로 띄우는 흐름을 배선했습니다.

05. 검색 구성 - 측정하고 하이브리드를 뺐다
기획서는 BM25 + 벡터 + RRF 하이브리드를 최종형으로 가정했습니다. 같은 골든셋으로 나란히 재 보니 하이브리드가 벡터 단독보다 낮아, 팀은 벡터 검색을 택했습니다.

06. 평가 하네스 - 측정 불가를 숫자로
구현은 끝났는데 하네스는 "측정 불가"만 보고했고, 수치는 터미널에서 사라졌습니다. 하네스를 배선하고 측정값을 DB에 남겨 어떤 수치든 재현할 수 있게 했습니다.
