docs: 열린 RAG 문서 8건 현재 구현 상태 동기화 (260322)

- 리서치 6건 + 1차 계획 + 아이디어: 현재 상태 보정 섹션 통일
- tsvector/하이브리드/AGE 구현 완료 반영, DB 수치 갱신
- 설계 별칭-운영 실체 매핑 명시, Unresolved 보강

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
happybell80 2026-03-22 08:42:55 +09:00
parent 47057380a8
commit 915fed980f
8 changed files with 55 additions and 36 deletions

View File

@ -29,11 +29,16 @@ adopted_by: 260320_다형식문서_RAG_1차_MD_메타_정규화_계획.md, 26032
- PGVector는 의미 검색을 맡고, PostgreSQL 관계 구조는 연결 탐색을 맡는다.
- 이 구조는 지금 로빙의 범위에서 과하지 않고, 나중에 더 크게 키워도 버티는 방향이다.
## 현재 반영 상태 (2026-03-22)
## 현재 상태 보정 (2026-03-22)
- `로빙 적용 1`은 별도 계획에서 이미 구현·검증이 끝났고, 현재 열린 체인은 `1차/2차/3차`와 관련 리서치다.
- `PGVector + JSONB + tsvector + Apache AGE` 방향은 설계가 아니라 현재 운영 코드와 문서가 함께 따라가야 하는 실제 기준이 됐다.
- 따라서 이 아이디어 문서는 신규 구상보다 `왜 이 구조를 유지하는가`를 설명하는 상위 맥락 문서로 읽는 편이 맞다.
- `로빙 적용 1`은 별도 계획에서 이미 구현·검증 완료. 현재 열린 체인은 `1차/2차/3차`와 관련 리서치.
- PGVector + JSONB + tsvector + Apache AGE: 설계가 아니라 운영 실체.
- tsvector + GIN: 구현 완료. 하이브리드 검색 (vector + keyword + graph RRF): 구현 완료.
- Apache AGE: companyx_docs, document_graph 그래프 2개 운용 중.
- 임베딩: Gemini Embedding 2, 768d. team_document: 1,174건 / team_document_chunk: 3,474건.
- MD 파생본: 48,906개 (본문 text_length: 0이 48,744건, 99.7% 미추출). OCR: 미구현.
- 증분 동기화 자동화: 미구현 (수동 스크립트만).
- NAS 원본: /mnt/nas/workspace/6.Company X — 53,249파일.
## 단계 구분

View File

@ -44,12 +44,12 @@ closing_criteria: 원본 스캔부터 파일별 MD 생성과 front matter 최소
- ~~샘플 100~500개 파일에서 MD 생성 성공률을 확인한다.~~ → 48,906개 생성됨
- ~~주요 확장자별로 최소 한 번 이상 MD 생성이 검증된다.~~ → pdf/hwp/xlsx/pptx/docx 확인
- 원본 경로와 MD 경로의 1:1 대응이 보장된다. → 원본 53,336 vs MD 48,906 (차이 4,430건, 원인 미확인)
- 원본 경로와 MD 경로의 1:1 대응이 보장된다. → 원본 53,249 vs MD 48,906 (차이 4,343건, 원인 미확인)
- 본문 텍스트 추출이 완료된다. → **미완료**: 48,906건 중 48,744건이 `text_length: 0` (본문 미추출 99.7%)
## 현재 상태 (260320)
- `6.Company X_md/`에 48,906개 MD 생성 완료 (front matter만, 본문 text_length: 0이 48,744건)
- `6.Company X_md/`에 48,906개 MD 생성 완료 (front matter만, 본문 text_length: 0이 48,744건, 99.7% 미추출)
- 파일명 규칙: `원본파일명_확장자.md` 적용됨
- front matter: title, source_path, md_path, file_type, file_size, modified_at, status, text_length, summary
@ -57,7 +57,9 @@ closing_criteria: 원본 스캔부터 파일별 MD 생성과 front matter 최소
- 이 단계의 핵심 산출물인 `MD 파생본 + front matter 최소 메타`는 이미 만들어졌다.
- 다만 `48,906개 중 48,744건 text_length: 0` 상태라서, 실제 운영 가치는 아직 낮다.
- 원본 53,336건과 MD 48,906건의 차이 4,430건도 남아 있어, `생성 완료`보다 `생성 후 본문 부재와 누락 원인 규명`이 현재의 직접 과제다.
- NAS 원본: /mnt/nas/workspace/6.Company X — 53,249파일. 원본과 MD 48,906건의 차이 4,343건 원인 미확인.
- DB: team_document 1,174건 / team_document_chunk 3,474건 (임베딩: Gemini Embedding 2, 768d).
- `생성 완료`보다 `생성 후 본문 부재와 누락 원인 규명`이 현재의 직접 과제다.
## Unresolved

View File

@ -139,10 +139,12 @@ sync_status: synced
- OCR/요약/그래프 연결이 붙을 때 메타를 확장한다.
- 메타 확장의 기준은 "검색 품질이나 운영 자동화에 실제 도움이 되는가"로 잡는다.
## 8-1. 현재 구현 반영 (2026-03-22)
## 현재 상태 보정 (2026-03-22)
- 실제 MD에는 `title`, `source_path`, `md_path`, `file_type`, `file_size`, `modified_at`, `status`, `text_length`, `summary`가 우선 반영돼 있다.
- 권장 메타 전체와 실제 메타 사이에는 아직 차이가 있으며, 특히 `ocr_status`, `embedding_status`, `sync_status`, `related`는 전면 적용되지 않았다.
- 실제 MD front matter: `title`, `source_path`, `md_path`, `file_type`, `file_size`, `modified_at`, `status`, `text_length`, `summary`.
- DB 운영 테이블: team_document(1,174건) / team_document_chunk(3,474건). 설계 별칭 document_files = team_document, document_chunks = team_document_chunk.
- `ocr_status`, `embedding_status`, `sync_status`, `related`는 MD 전면 적용 안 됨.
- 임베딩: Gemini Embedding 2, 768d.
## Unresolved

View File

@ -87,15 +87,17 @@ research_target: 다형식 원본을 위한 Markdown 중간표현 SSOT 규칙
- 최소 MD에는 "이 파일이 무엇인지"와 "현재 어느 정도까지 해석됐는지"만 적어도 된다.
- 이후 표 추출, OCR, 요약, 태그는 후속 배치로 누적하는 구조가 좋다.
## 9-1. 현재 구현 반영 (2026-03-22)
## 현재 상태 보정 (2026-03-22)
- 최소 MD 생성 자체는 이미 48,906개 규모로 진행됐다.
- 하지만 본문이 비어 있는 MD가 48,744건이라, 이 리서치의 핵심은 `MD를 만들자`보다 `MD를 실제로 읽을 수 있게 채우자`로 옮겨갔다.
- MD 파생본: 48,906개 생성 완료. 본문 text_length: 0이 48,744건(99.7% 미추출).
- NAS 원본: /mnt/nas/workspace/6.Company X — 53,249파일.
- OCR: 미구현. 본문 채움의 핵심 과제가 여전히 열려 있다.
- DB 적재: team_document 1,174건 / team_document_chunk 3,474건 (임베딩: Gemini Embedding 2, 768d).
## Unresolved
- 99.7% 본문 미추출 상태를 어떤 우선순위와 배치로 해소할지 아직 정해지지 않았다.
- 원본 53,336건과 MD 48,906건의 차이를 설명하는 실패/스킵 기준이 문서화되지 않았다.
- 원본 53,249건과 MD 48,906건의 차이를 설명하는 실패/스킵 기준이 문서화되지 않았다.
## 10. 관련 문서

View File

@ -90,18 +90,19 @@ research_target: OCR 전수 대신 선별 적용 기준과 비용-품질 정책
- OCR과 LLM 해석을 한 배치에 섞는 것
- OCR 실패 파일을 즉시 수동 처리 대상으로 돌리는 것
## 10. 관련 문서
## 현재 상태 보정 (2026-03-22)
- [Front Matter 메타데이터 설계 리서치](./260320_FrontMatter_메타데이터_설계_리서치.md)
- [PGVector·JSONB RAG 스키마 설계 리서치](./260320_PGVector_JSONB_RAG_스키마_설계_리서치.md)
- [OCR 모델 벤치마크 리서치](./260320_OCR_모델_벤치마크_리서치.md)
## 10-1. 현재 구현 반영 (2026-03-22)
- OCR 정책은 아직 설계 단계이고, 실제 운영은 `텍스트 추출 + PDF 바이너리 직접 임베딩` 수준이다.
- 따라서 OCR 문서는 독립 과제가 아니라 `본문 미추출 99.7%` 문제와 연결해서 읽어야 한다.
- OCR: 미구현. 정책은 설계 단계, 실제 운영은 텍스트 추출 + PDF 바이너리 직접 임베딩 수준.
- MD 파생본 48,906개 중 본문 text_length: 0이 48,744건(99.7% 미추출) — OCR이 본문 채움의 핵심 수단.
- NAS 원본: /mnt/nas/workspace/6.Company X — 53,249파일.
## Unresolved
- OCR 대상을 고른 뒤 어떤 배치 단위와 실패 재시도로 돌릴지 운영 기준이 없다.
- OCR 보강이 실제 검색 품질을 얼마나 올리는지 측정 지표가 아직 고정되지 않았다.
## 10. 관련 문서
- [Front Matter 메타데이터 설계 리서치](./260320_FrontMatter_메타데이터_설계_리서치.md)
- [PGVector·JSONB RAG 스키마 설계 리서치](./260320_PGVector_JSONB_RAG_스키마_설계_리서치.md)
- [OCR 모델 벤치마크 리서치](./260320_OCR_모델_벤치마크_리서치.md)

View File

@ -130,11 +130,14 @@ create index if not exists idx_document_chunks_embedding_hnsw
- `status``metadata_jsonb` 안의 `sync_status`, `ocr_status`, `embedding_status`를 함께 관리한다.
- soft delete를 우선 사용해 감사 추적과 복구 가능성을 남긴다.
## 9-1. 현재 구현 반영 (2026-03-22)
## 현재 상태 보정 (2026-03-22)
- 운영 실제 테이블은 `document_files`, `document_chunks`가 아니라 `team_document`, `team_document_chunk`다.
- `tsvector + GIN`, `PGVector HNSW`, `JSONB`, `hybrid 검색`은 이미 구현됐다.
- 관계 저장은 권장 `document_relations` 테이블이 아니라 Apache AGE 그래프 쪽으로 이동했다.
- 설계 별칭 → 운영 실체: document_files = team_document, document_chunks = team_document_chunk, document_relations = Apache AGE 그래프.
- team_document: 1,174건 / team_document_chunk: 3,474건.
- tsvector + GIN 인덱스: 구현 완료 (team_document_chunk.tsv, 트리거 자동 생성).
- 하이브리드 검색 (vector + keyword + graph RRF): 구현 완료.
- 임베딩: Gemini Embedding 2, 768d.
- Apache AGE: companyx_docs, document_graph 그래프 2개 운용 중.
## Unresolved

View File

@ -154,11 +154,12 @@ RETURN r.title
- `document_relations` 테이블 대신 AGE 그래프로 관계 관리.
- PGVector(의미검색) + AGE(관계탐색)를 하나의 DB에서 하이브리드 운용.
## 8-1. 현재 구현 반영 (2026-03-22)
## 현재 상태 보정 (2026-03-22)
- Apache AGE는 더 이상 예정이 아니라 운영 중이다.
- 검색 경로에서도 `graph_score`가 합산되고, `companyx_docs`, `document_graph` 그래프가 실제로 존재한다.
- 따라서 이 문서의 남은 역할은 `왜 AGE를 쓰는가`보다 `운영 그래프를 어떤 규칙으로 유지할 것인가`에 가깝다.
- Apache AGE: 운영 중. companyx_docs, document_graph 그래프 2개 운용.
- 하이브리드 검색 (vector + keyword + graph RRF): 구현 완료. graph_score가 검색 경로에 합산됨.
- 설계 별칭 document_relations = 운영 실체 Apache AGE 그래프.
- team_document: 1,174건 / team_document_chunk: 3,474건.
## Unresolved

View File

@ -103,15 +103,18 @@ research_target: 다형식 원본의 자동 수집·정규화 전략 정리
5. 100~500개 파일로 샘플 검증
6. 이후 배치 자동화와 증분 동기화로 확대
## 9-1. 현재 구현 반영 (2026-03-22)
## 현재 상태 보정 (2026-03-22)
- 1~4번은 개념 정리 수준을 넘어서 일부 구현까지 들어갔다.
- 특히 샘플 200개 인덱싱과 하이브리드 검색, AGE 기반 연결은 이미 운영 코드에 반영돼 있다.
- 남은 핵심은 `배치 자동화와 증분 동기화로 확대` 부분이다.
- NAS 원본: /mnt/nas/workspace/6.Company X — 53,249파일. MD 파생본: 48,906개.
- DB: team_document 1,174건 / team_document_chunk 3,474건. 임베딩: Gemini Embedding 2, 768d.
- tsvector + GIN: 구현 완료. 하이브리드 검색 (vector + keyword + graph RRF): 구현 완료.
- Apache AGE: companyx_docs, document_graph 그래프 2개 운용 중.
- 증분 동기화 자동화: 미구현 (수동 스크립트만). OCR: 미구현.
- MD 본문 text_length: 0이 48,744건(99.7% 미추출).
## Unresolved
- 재색인 트리거, 실패 격리/재시도, 원본-MD-DB-그래프 우선순위가 아직 문서 한 곳에 고정되지 않았다.
- 증분 동기화 자동화 정책(트리거·스케줄·실패 재시도)이 문서 한 곳에 고정되지 않았다.
- 2천/5천/1만 건 단계에서 어떤 품질 게이트로 확장 여부를 판단할지 미정이다.
## 10. 관련 문서