CallZip · 상담 지원 AI 시스템
RAG 답변 생성 백엔드
문의 유형 분류와 근거 검색을 거쳐 상담사가 검토할 답변 초안을 만드는 백엔드를 구현했습니다.
- FastAPI
- PostgreSQL
- pgvector
- bge-m3
- Qwen3
핵심 기여
- FastAPI·PostgreSQL(pgvector)·vLLM 기반 분류·검색·답변 API 설계·구현
- 근거 부족 시 안내형 답변·안전 중단 분기 설계
- procrastinate 작업 큐와 Alembic 마이그레이션으로 비동기 처리·스키마 관리
원칙: 근거가 없으면 답을 만들지 않는다
상담 답변이 틀리면 고객에게 바로 잘못된 안내가 나갑니다. 그래서 답변 초안은 검색된 근거 안에서만 만들고, 근거가 약하면 안내형 답변으로 바꾸거나 아예 멈춘 뒤 상담사에게 넘기도록 설계했습니다.
다이어그램을 불러오는 중...
지식 관리
- 정책 문서와 FAQ를 청크 규칙에 맞춰 잘라 PostgreSQL(pgvector)에 적재했습니다.
- 정책마다 게시·승인 상태와 유효 기간을 두고, 승인 전 정책은 운영 답변에 쓰이지 않게 검색 단계에서 걸렀습니다.
- 고객용·직원용 권한과 문의 유형을 검색 조건에 넣고, 권한이 섞이지 않는지를 종단 시험으로 고정했습니다.
백엔드 구조
- FastAPI로 분류·검색·답변 API를 만들고, LLM은 vLLM으로 띄운 Qwen3를 불렀습니다.
- 전사·적재 같은 오래 걸리는 일은 procrastinate 작업 큐로 넘겨, API는 바로 응답하고 워커가 뒤에서 처리하게 했습니다.
- 스키마는 Alembic 마이그레이션으로 관리해 개발·서비스 DB를 같은 판으로 맞췄습니다.
- 정상 질의와 무관한 질의의 점수 분포를 실측해 “근거 없음” 기준값을 다시 정했고, 모델을 바꿀 때마다 같은 평가셋으로 기준값을 재조정했습니다.