Skip to main content
Summary

긴 문서는 구조가 먼저입니다

책 한 권이나 수백 개의 노트를 RAG에 넣을 때 가장 흔한 실수는 모든 문서를 같은 크기로 잘라 벡터 DB에 넣는 것입니다. 이렇게 하면 검색은 되지만, 답변이 원문 안에서 어디에 있는지 알기 어렵습니다. 앞뒤 맥락도 쉽게 끊깁니다.

긴 문서는 단순한 문자열이 아닙니다. 제목, 챕터, 섹션, 문단, 예제, 표, 요약이 서로 연결된 구조입니다. RAG 품질을 높이려면 문서를 잘게 나누기 전에 이 구조를 먼저 보존해야 합니다.

긴 책과 노트 기반 RAG

책 한 권을 지식베이스로 만드는 절차

책 기반 RAG는 보통 다음 순서로 만듭니다.

  1. 원문을 수집합니다.

  2. 제목, 챕터, 섹션, 소제목을 정리합니다.

  3. 문단, 예제, 목록, 요약 단위로 나눕니다.

  4. 각 조각에 위치 정보를 붙입니다.

  5. 챕터 요약과 섹션 요약을 만듭니다.

  6. 원문 조각과 요약 조각을 각각 임베딩합니다.

  7. 검색 결과를 답변에 넣고 출처를 표시합니다.

여기서 중요한 것은 단순히 "나누기"가 아니라 "다시 찾을 수 있게 나누기"입니다. 예를 들어 어떤 문단을 검색했을 때 그 문단이 어느 책의 어떤 챕터, 어떤 섹션, 어떤 문단에 있는지 알 수 있어야 합니다. 그래야 답변에 정확한 출처를 붙이고, 사용자가 원문으로 돌아갈 수 있습니다.

챕터와 섹션을 메타데이터로 보존하기

긴 문서의 각 청크에는 내용뿐 아니라 위치 정보가 함께 저장되어야 합니다. 예를 들면 다음과 같은 메타데이터가 필요합니다.

  • book_title: 책 제목

  • chapter_title: 챕터 제목

  • section_title: 섹션 제목

  • chunk_type: 본문, 예제, 요약, 목록 등

  • chapter_index: 챕터 순서

  • section_index: 섹션 순서

  • paragraph_index: 문단 순서

  • source_id: 원문으로 이동하기 위한 ID

  • user_id 또는 permission: 접근 권한

이 정보가 있으면 검색 결과를 단순히 "비슷한 문장"으로 보여주는 데서 끝나지 않습니다. "이 답변은 『처음 만나는 RAG와 AI 지식베이스』의 '검색 품질 높이기' 섹션을 참고했습니다"처럼 위치가 분명한 답변을 만들 수 있습니다.

요약 인덱스와 원문 인덱스를 함께 쓰기

긴 책에서는 질문이 넓을 때와 좁을 때가 다릅니다. "이 책에서 RAG 평가를 어떻게 설명해?"라는 질문에는 전체적인 개요가 필요합니다. 반대로 "검색 실패 로그는 어떻게 분석해?"라는 질문에는 구체적인 문단이 필요합니다.

이를 위해 요약 인덱스와 원문 인덱스를 나누어 설계할 수 있습니다. 요약 인덱스에는 챕터 요약, 섹션 요약, 노트 요약을 저장합니다. 원문 인덱스에는 실제 문단과 예제를 저장합니다.

검색은 먼저 요약 인덱스에서 관련 챕터나 섹션을 찾고, 그다음 해당 범위 안에서 원문 청크를 다시 찾는 방식으로 진행합니다. 요약은 길 찾기 지도이고, 원문은 답변의 근거입니다. 답변을 만들 때는 요약만 믿기보다 원문 청크를 함께 넣는 것이 안전합니다.

계층형 검색 전략

계층형 검색은 상위 구조를 먼저 찾고, 그 아래에서 세부 내용을 찾는 방식입니다. 책에서는 "책 → 챕터 → 섹션 → 문단" 순서가 되고, 노트 묶음에서는 "워크스페이스 → 주제 → 노트 → 문단" 순서가 됩니다.

예를 들어 사용자가 "RAG에서 출처를 어떻게 보여줘야 해?"라고 묻는다면, 시스템은 먼저 출처, 인용, 신뢰성에 관한 챕터나 섹션을 찾습니다. 그다음 그 범위 안에서 출처 표시 방법, 잘못된 출처를 막는 법, UI 설계에 관한 문단을 다시 검색합니다.

이 방식은 검색 범위를 줄여 줍니다. 전체 문서에서 무작정 비슷한 문장을 찾는 것보다, 관련 있는 구역을 먼저 좁히고 그 안에서 근거를 찾는 편이 더 안정적입니다.

Tilnote 같은 지식 플랫폼에 적용하기

Tilnote 같은 지식 플랫폼에서는 책, 노트, 블로그 글이 함께 존재합니다. 이때 RAG는 단순 Q&A를 넘어 세 가지 기능으로 확장될 수 있습니다.

첫째, 책 기반 Q&A입니다. 사용자가 책 내용에 대해 질문하면 관련 챕터와 문단을 찾아 출처와 함께 답합니다. 둘째, 관련 노트 추천입니다. 현재 읽는 문단과 의미가 가까운 개인 노트나 공개 글을 추천할 수 있습니다. 셋째, 이어 읽기 추천입니다. 사용자가 어떤 개념을 읽었다면 그다음에 읽기 좋은 섹션, 예제, 보충 노트를 제안합니다.

이를 위해서는 벡터 유사도뿐 아니라 메타데이터도 함께 봐야 합니다. 같은 주제라도 권한이 없는 문서는 제외해야 하고, 같은 책 안에서는 이전 섹션과 다음 섹션의 순서도 고려해야 합니다.

긴 책과 노트 기반 RAG의 핵심은 더 많이 넣는 것이 아닙니다. 원래 문서의 구조를 잃지 않고, 넓게 찾은 뒤 좁게 확인하며, 답변에서 다시 원문으로 돌아갈 수 있게 만드는 것입니다. 이것이 긴 지식을 AI가 다룰 수 있는 지식베이스로 바꾸는 기본 설계입니다.

책 목록

처음 만나는 RAG와 AI 지식베이스: 내 문서와 노트를 이해하는 AI 만들기

전체 목차 보기

이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.

틸노트는 사용자가 AI를 활용해 노트를 쉽게 작성하거나 편집할 수 있는 서비스입니다.

AI 스퀘어 단톡방에 함께해요

AI 활용과 틸노트 사용 팁을 나누는 오픈채팅방입니다. 입장 비밀번호는 tilnote입니다.

참여하기