말씀선집 GraphRAG 연구/DB 구축 방향 문서 원본 보기
←
말씀선집 GraphRAG 연구/DB 구축 방향
둘러보기로 이동
검색으로 이동
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
= DB 구축 방향 = 이 문서는 [[말씀선집 GraphRAG 연구]]를 실제 검색 시스템으로 구현하기 위한 1차 데이터베이스 설계 방향과 파이프라인 구조를 정리한다. == 목적 == 목표는 말씀선집 전체를 권, 페이지, 제목, 본문 단위로 검색하고, 주제, 인물, 개념 관계를 그래프로 연결하여 질문에 대해 근거 페이지와 함께 답하게 만드는 연구용 GraphRAG 기반 말씀 검색 시스템을 세우는 것이다. == 현재 자료 확인 == * NAS 경로: <code>~/ffwpcb/말씀선집</code> * 실제 마운트 경로: <code>/run/user/1000/gvfs/smb-share:server=172.30.1.1,share=ffwpcb,user=ffwpcbai/말씀선집</code> * PDF 수: 615권 * 전체 페이지: 약 207,548쪽 * 전체 용량: 약 765MB * 샘플 확인: <code>001권.pdf</code>, <code>615권.pdf</code> * 텍스트 추출: <code>pdftotext</code>로 본문 추출 가능 * OCR 판단: 1차 단계에서는 OCR 불필요 * 로컬 디스크 여유: 약 52GB == 기본 저장 원칙 == 원본 PDF는 NAS에 그대로 둔다. 로컬에는 원본을 복사하지 않고 다음 산출물만 저장한다. * 파일 목록과 해시값 * 페이지별 추출 텍스트 * 문단 및 청크 데이터 * 임베딩 벡터 * 키워드 검색 색인 * 지식그래프 노드와 관계 * 처리 로그와 실패 목록 이 방식은 NAS 원본 보존, 로컬 저장공간 절약, 재처리 가능성 확보에 유리하다. == 1차 DB 구성안 == === PostgreSQL + pgvector === 1차 연구용 중심 DB로 사용한다. 주요 역할: * 문서 메타데이터 관리 * 권, 페이지, 청크 저장 * 임베딩 벡터 저장 * 질의 결과의 출처 추적 * 처리 상태 관리 핵심 테이블 후보: * <code>source_files</code>: PDF 파일 경로, 권수, 파일명, 크기, 해시값 * <code>volumes</code>: 권 단위 메타데이터 * <code>pages</code>: 권, 페이지 번호, 추출 텍스트 * <code>sections</code>: 제목, 소제목, 설교 단위 구간 * <code>chunks</code>: 검색용 본문 청크 * <code>chunk_embeddings</code>: 청크별 임베딩 벡터 * <code>ingest_runs</code>: 처리 실행 기록 * <code>ingest_errors</code>: 추출 실패와 재처리 대상 === Neo4j === GraphRAG 고도화 단계에서 추가한다. 주요 역할: * 인물, 개념, 사건, 장소, 시대, 주제군을 노드로 저장 * 말씀 본문과 핵심 개념의 관계를 연결 * 개념 흐름, 시대별 변화, 주제별 관계망 검색 지원 노드 후보: * <code>Volume</code> * <code>Page</code> * <code>Chunk</code> * <code>SermonTitle</code> * <code>Person</code> * <code>Place</code> * <code>Concept</code> * <code>DoctrineTerm</code> * <code>Event</code> * <code>Era</code> * <code>Topic</code> 관계 후보: * <code>CONTAINS</code> * <code>NEXT</code> * <code>MENTIONS</code> * <code>EXPLAINS</code> * <code>CONTRASTS_WITH</code> * <code>RELATED_TO</code> * <code>BELONGS_TO_TOPIC</code> * <code>EVIDENCE_OF</code> === OpenSearch + nori analyzer === 한국어 전문검색 고도화 단계에서 검토한다. 정확한 용어 검색이 중요한 이유: * 참부모 * 복귀섭리 * 천지인부모 * 원구피스컵 * 탕감 * 재림 이런 용어는 의미 검색보다 키워드 검색이 더 정확한 경우가 많다. 따라서 벡터 검색만으로 가지 않고 키워드 검색과 결합한다. == 권장 구축 순서 == 처음부터 615권 전체를 넣지 않는다. 먼저 앞, 중간, 뒤 표본으로 파이프라인 품질을 확인한다. === 1단계: 샘플 인벤토리 === * 대상: <code>001권.pdf</code>, <code>615권.pdf</code>, 중간 권수 1-3개 * 파일 경로, 권수, 페이지 수, 파일 크기, 해시값 저장 * 실패 파일과 중복 파일 확인 === 2단계: 페이지별 텍스트 추출 === * <code>pdftotext</code> 기반 추출 * 페이지 단위로 텍스트 저장 * 추출 공백, 깨진 문자, 쪽머리와 쪽번호 패턴 확인 === 3단계: 구조화 === * 권 번호 * PDF 페이지 번호 * 본문 내 인쇄 페이지 번호 * 설교 제목 * 소제목 * 문단 출처 인용을 위해 권과 페이지가 반드시 보존되어야 한다. === 4단계: 청크 분할 === 권장 기본값: * 청크 크기: 한국어 기준 800-1,200자 * 겹침: 100-200자 * 제목과 페이지 메타데이터를 청크마다 포함 설교 문맥을 보존하기 위해 단순 글자 수 절단보다 문단 기준 분할을 우선한다. === 5단계: 임베딩 생성 === 선택지: * 빠른 연구용: OpenAI 계열 임베딩 API * 비용 절감과 로컬화: 한국어 성능이 괜찮은 로컬 임베딩 모델 1차는 샘플 권수만 임베딩하여 검색 품질을 비교한다. === 6단계: GraphRAG 추출 === LLM을 사용해 청크에서 다음 항목을 추출한다. * 인물 * 장소 * 핵심 개념 * 섭리 용어 * 사건 * 시대 * 주제 * 개념 간 관계 추출 결과는 바로 확정하지 않고 검수 가능한 후보 그래프로 저장한다. === 7단계: 질의응답 테스트 === 테스트 질의 유형: * 키워드형: 특정 용어가 나오는 권과 페이지 찾기 * 의미형: 유사한 뜻의 말씀 찾기 * 관계형: A 개념과 B 개념의 연결 설명 * 시대별 변화형: 특정 주제가 권수 흐름에 따라 어떻게 변하는지 확인 * 목회 활용형: 설교 준비를 위한 근거 말씀 찾기 == 파이프라인 스크립트 구조안 == 향후 실제 구현 시 다음 구조를 기준으로 둔다. <pre> words-graphrag/ README.md docker-compose.yml .env.example config/ sources.yml chunking.yml graph_schema.yml scripts/ 01_inventory.py 02_extract_pages.py 03_normalize_text.py 04_chunk_pages.py 05_embed_chunks.py 06_extract_graph.py 07_load_neo4j.py 08_query_smoke_test.py sql/ 001_init.sql 002_pgvector.sql 003_indexes.sql data/ extracted/ logs/ samples/ notebooks/ retrieval_quality_check.ipynb </pre> == 1차 판단 == 현재 자료는 PDF 텍스트 추출이 가능하고 전체 용량도 크지 않다. 따라서 첫 단계는 OCR이나 대형 인프라가 아니라, 정확한 출처 보존과 샘플 파이프라인 검증이어야 한다. 가장 현실적인 첫 목표는 다음과 같다. # <code>001권</code>, <code>615권</code>, 중간 권수 1-3개를 대상으로 페이지별 추출을 완료한다. # PostgreSQL에 파일, 페이지, 청크 메타데이터를 저장한다. # pgvector 또는 별도 벡터 저장소에 샘플 임베딩을 넣는다. # 질문에 대해 “몇 권 몇 쪽” 근거를 돌려주는 RAG를 먼저 만든다. # 그 다음 Neo4j에 인물, 개념, 주제 관계를 붙인다. == 관련 문서 == * 상위 문서: [[말씀선집 GraphRAG 연구]] * 로컬 문서: <code>/home/ruyjin/.openclaw/workspace/project_docs/말씀선집그래프RAG/DB_SETUP_PLAN.md</code> [[분류:말씀선집 GraphRAG 연구]] [[분류:GraphRAG]] [[분류:DB설계]] [[분류:연구기획]]
말씀선집 GraphRAG 연구/DB 구축 방향
문서로 돌아갑니다.
둘러보기 메뉴
개인 도구
로그인
이름공간
문서
토론
한국어
보기
읽기
원본 보기
역사 보기
더 보기
검색
둘러보기
대문
최근 바뀜
임의 문서로
미디어위키 도움말
특수 문서 목록
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보