아는봇 — 내 자료로 만드는, 근거 대는 챗봇
파일 하나로 3분 만에 봇을 만들고, 틀리면 그 자리에서 고쳐 기억시킵니다
NaDa· 게스트2026년 8월 29일조회 0
story · how it was built
설명
무엇을 (문제·대상)
사내 규정집, 사업 지침, 매뉴얼처럼 「우리만 아는 자료」로 챗봇을 만들고 싶은 사람이 대상입니다. 범용 챗봇에 자료를 붙이는 방식이 구조적으로 못 하는 것이 여섯 가지 있습니다. URL 하나로 팀에 공유하기, 피드백을 누적해 개선하기, 무엇을 아는지 투명하게 보여 주기, 문서 개정 버전 관리, 감사 추적, 가명화 전처리. 아는봇은 이 여섯 개에 집중합니다.
주요 기능
- 3분 봇 완성 — 위저드 4스텝. 실측으로 19초에 끝났습니다.
- 근거 각주 — 모든 답변에 클릭 가능한 각주가 붙습니다. 근거가 없으면 「자료에 없습니다」라고 답합니다. 지어내지 않습니다.
- 개선 루프 — 답이 틀리면 그 자리에서 고치고, 다음 질문부터 반영됩니다.
- 아는 것 가시화 — 이 봇이 무엇을 아는지 한 화면에서 파악할 수 있습니다.
- 개정 관리·감사 로그·팀 초대 — 문서가 바뀌면 버전으로 남고, 누가 무엇을 했는지 추적됩니다.
- 대용량 업로드 — 원규집 992쪽을 화면에서 그대로 올려 색인합니다. 570초에 완주했고 벡터 누락은 0이었습니다.
어떻게 만들었는가 (과정·도구 활용)
Next.js 16(App Router) · Supabase(Postgres + pgvector + Auth + Storage, RLS) · Vercel 위에 올렸습니다. 생성은 DeepSeek, 임베딩은 Upstage(1024차원), 문서 파싱은 로컬 파서와 Upstage Document Parse·OCR 하이브리드입니다.
답변 경로는 질의 재작성 → 검색 → RRF 결합 → 생성 → 인용 검증 순서의 오케스트레이터로 만들었고 스트리밍합니다. 인용 검증을 마지막에 둔 것이 핵심입니다. 생성된 문장이 실제 근거를 가리키지 않으면 그 문장은 나가지 못합니다.
계획서를 7단계로 쪼개고 각 단계가 그 자체로 배포·검증 가능한 단위가 되게 했습니다. 성공 기준 네 가지를 전부 e2e 로 측정하도록 만들어, 배포본 기준 96건이 통과합니다.
구조·실행 (짧게)
app/(builder) 에 위저드와 워크스페이스 4탭(대화·지식·개선·설정), app/(chat)/[botId] 에 이용자 채팅과 각주 패널, app/api/chat 에 오케스트레이터.
한계·다음
- 구형 .hwp 파싱은 아직 실측 픽스처를 기다리는 중입니다.
- 생성 모델 비용이 사용량에 비례하므로, 팀 단위 사용에는 쿼터 설계가 더 필요합니다.
journey · lessons
과정 · 배운 점
본문 = 무엇·기능·사용법. 여기 = 시간순 여정 + 다음에 남긴 교훈.
여러 작업 레인이 같은 작업 트리를 공유하면 배포가 깨집니다. 다른 레인이 파일을 쓰는 중에 배포를 걸면 반쯤 쓴 파일이 딸려 올라갑니다. 실제로 모듈이 없다는 빌드 오류가 났습니다. 그래서 배포는 내 커밋만 들어 있는 별도 worktree 에서 하도록 절차를 바꿨습니다.
자동 생성되는 미리보기 도메인에는 접근 보호가 걸려 외부에서 열리지 않습니다. 검증은 항상 고정 도메인 기준으로 해야 하고, 로컬에서 됐다는 것은 아무 증거가 아닙니다.
계획을 「배포 가능한 단위」로 쪼개면 중간 상태가 남지 않습니다. 단계마다 실제 URL에서 확인되는 것이 하나씩 늘어납니다.
피드백 원함 · 개선 제안 · 질문 · 스택·도구 조언