답한 근거를 오른쪽에서 그대로 볼 수 있습니다
사내 문서에 물어보세요
규정·매뉴얼·계약서 건을 한 검색창에 물렸습니다. 답만 던지지 않고, 어느 문서 어느 문단에서 가져왔는지 함께 보여 드립니다.
문서를 찾는 중
근거
문서함
| 번호 | 문서 | 종류 | 접근 등급 | 쪽 | 문단 | 마지막 색인 |
|---|---|---|---|---|---|---|
색인 파이프라인
문서를 넣으면 네 단계를 지나 검색할 수 있게 됩니다
01
수집
건
사내 위키·공유 드라이브·메일 첨부에서 끌어옵니다. PDF·한글·워드를 텍스트로 폅니다.
02
분할
문단
03
임베딩
차원 합
문단마다 1024차원 벡터를 만들어 pgvector 에 넣습니다. 바뀐 문단만 다시 만듭니다.
04
색인
HNSW + BM25
벡터 색인과 키워드 색인을 같이 겁니다. 둘 중 하나만으로는 놓치는 질문이 있습니다.
실제 프로젝트에서 가장 많이 만지는 두 값입니다. 다만 이 데모의 문단은 조문 단위로 미리 잘라 두어서, 여기서 바꿔도 다시 잘리지는 않습니다. 어떤 것을 저울질하는지 보여 주려고 남겨 뒀습니다.
검색 설정
바꾸면 평가 점수가 같이 움직입니다
평가 세트
질문과 정답 문단을 사람이 미리 짝지어 둔 표
만들 때 정한 것
화면보다 먼저 정한 것들
권한은 검색 단계에서 겁니다
답을 다 만들어 놓고 "이건 보여 주면 안 되니까 가리자" 는 이미 샌 것입니다. 모델이 그 내용을 읽었고,
요약 한 문장에 숫자가 스며들 수 있습니다. 그래서 WHERE level = ANY($권한) 을
벡터 검색 쿼리 자체에 붙입니다. 볼 수 없는 문단은 후보에도 오르지 않습니다.
왼쪽 아래에서 계정을 바꿔 같은 질문을 다시 해 보세요. 과정 패널의 권한 필터 단계에 몇 개가 빠졌는지 남습니다.
모르면 모른다고 합니다
사내 규정에서는 틀린 답 하나가 맞는 답 열 개보다 비쌉니다. 최소 점수를 넘긴 문단이 없으면 답을 만들지 않고, 어떤 문서가 있으면 답할 수 있는지를 대신 알려 줍니다. 그러면 사람이 그 문서를 찾아가거나 권한을 신청할 수 있습니다.
답변마다 근거를 답니다
각주를 누르면 원문이 열리고 그 문단이 칠해집니다. 앞뒤 문단도 같이 보입니다 — 맥락을 봐야 답이 맞는지 알 수 있기 때문입니다. 출처가 없는 문장은 화면에 내보내지 않습니다.
키워드와 벡터를 같이 씁니다
- 벡터만 쓰면
- "QM-03", "제38조", "MSDS" 같은 정확한 이름을 자주 놓칩니다. 뜻이 비슷한 다른 문서를 물어 옵니다.
- 키워드만 쓰면
- "애 낳고 쉬는 거 얼마나 되나요" 같이 돌려 말한 질문에서 아무것도 못 찾습니다.
- 그래서
- 둘을 섞고, 상위 후보만 재순위 모델로 다시 매깁니다. 비중은 평가 세트를 보며 정합니다.
평가 세트가 먼저입니다
설정을 바꿀 때마다 점수가 어디로 가는지 보이지 않으면, 튜닝은 그냥 취향이 됩니다. 현업이 실제로 물어볼 질문 30~50개와 정답 문단을 먼저 만들고 시작합니다. 답변 문장의 품질이 아니라 검색이 정답 문단을 물어 왔는지부터 봅니다.
일부러 뺀 것
- 대화 기억
- "그럼 그건요?" 같은 이어지는 질문. 질의 재작성이 한 겹 더 필요하고, 틀리면 엉뚱한 문서를 물어 옵니다. 한 번에 한 질문으로 시작합니다.
- 문서 자동 요약
- 규정 문서는 요약하는 순간 예외 조항이 날아갑니다. 원문을 그대로 보여 주는 쪽을 택했습니다.
- 표와 그림 이해
- 표가 많은 문서는 텍스트로 펴는 순간 뜻이 무너집니다. 이런 문서는 검색 대상에서 빼고 링크만 겁니다.
- OCR
- 스캔본은 OCR 결과가 오히려 검색을 망칠 때가 많습니다. 원본 파일을 다시 받는 쪽이 빠릅니다.
이 데모에 없는 것
서버도 모델도 없습니다. 모든 것이 브라우저 안에서 돕니다 — 새로고침하면 처음으로 돌아갑니다. 점수는 미리 넣어 둔 값으로 계산하고, 재순위는 진짜 크로스 인코더 대신 정답 표를 보고 흉내 냅니다. 점수가 설정에 따라 어떻게 움직이는지를 보여 주려는 것입니다. 실제 프로젝트에서는 이 자리에 Claude API, pgvector, 색인 작업 큐가 들어갑니다.