완료된 파일만 RAG 검색 근거로 공개하기
파일 업로드와 검색 가능은 같은 상태가 아닙니다. 파싱·임베딩·저장이 끝나고 processed = TRUE가 된 검색 사본만 사용자 답변의 근거가 될 수 있습니다.
완료된 파일만 RAG 검색 근거로 공개하기
파일 업로드와 검색 가능은 같은 상태가 아닙니다. 파싱·임베딩·저장이 끝나고 processed = TRUE가 된 검색 사본만 사용자 답변의 근거가 될 수 있습니다.
조회 경계
vector similarity와 trigram 검색 모두 파일 테이블의 완료 조건을 join 안에서 확인해야 합니다. 최신판을 고르는 쿼리도 준비 중인 이전/새 버전을 섞지 않아야 합니다. HIRA ebook·QA pair처럼 nullable vector file을 조인하는 테이블에는 실제 OR 경로를 돕는 partial index를 따로 둡니다.
... JOIN vector_files f ON f.id = e.vector_file_id
WHERE f.store_id = $1
AND f.processed = TRUE;
운영과 UX
처리 중 파일은 “검색되지 않음”이 아니라 현재 상태와 재처리 가능성을 Admin에서 보여 줍니다. 실패 파일을 빈 검색 결과로 숨기면 운영자는 누락을 발견할 수 없습니다. 원본 문서·owner scope·embedding model·dimension도 함께 기록해 재임베딩과 reconciliation을 가능하게 합니다.
완료 파일 조건은 정확성뿐 아니라 성능 경계입니다. partial index는 처리 완료 행만 읽는 대표 경로를 작게 만들지만, staging에서 EXPLAIN (ANALYZE, BUFFERS)로 확인한 뒤 운영에 반영합니다.
관련 강좌: AI Provider와 RAG 경계
이 글에서 만나는 용어
data 카테고리의 다른 글
카테고리 전체 보기 →관련 글
RAG 와 검색 — 청킹·임베딩·재정렬·하이브리드
RAG (Retrieval-Augmented Generation) 는 LLM 의 한정된 학습 시점·메모리 한계를 외부 지식으로 보완하려는 방식입니다. 검색·생성을 분리하면 모델을 다시 학습시키지 않고도 새로운 자료를 다룰 수 있습니다.
pgvector 와 RAG
대규모 언어 모델 응답을 외부 지식과 결합하려는 흐름이 RAG (Retrieval-Augmented Generation) 라는 이름으로 자리 잡았습니다. 그 안에서 벡터 유사도 검색이 핵심 부품이고, PostgreSQL 의 pgvector extension 이 가장 가까운 자리에 있습니다.
Google NotebookLM — 자료 기반 Gemini 노트북 (RAG 형 도구)
NotebookLM 은 Google 의 자료 우선 (source-grounded) AI 노트북. 사용자가 업로드한 PDF·구글 문서·웹사이트·YouTube·오디오에서만 답변을 합성하므로 hallucination 이 일반 챗봇보다 적음. 04-gemini-api 가 raw API, 08-google-ai-studio 가…