From 13d3a0b42ebc4456c1aa06c444576bceac98efaf Mon Sep 17 00:00:00 2001 From: happybell80 Date: Fri, 20 Mar 2026 13:00:00 +0900 Subject: [PATCH] docs: add multimodal rag idea and phased plans --- ...식화_RAG_파이프라인_아이디어.md | 66 +++++++++++++++++++ ...서_RAG_1차_MD_메타_정규화_계획.md | 52 +++++++++++++++ ..._RAG_2차_PGVector_JSONB_적재_계획.md | 45 +++++++++++++ ..._3차_OCR_관계확장_동기화_계획.md | 44 +++++++++++++ ...빙_다형식문서_RAG_적용1_계획.md | 53 +++++++++++++++ 5 files changed, 260 insertions(+) create mode 100644 journey/ideas/260320_다형식문서_자동지식화_RAG_파이프라인_아이디어.md create mode 100644 journey/plans/260320_다형식문서_RAG_1차_MD_메타_정규화_계획.md create mode 100644 journey/plans/260320_다형식문서_RAG_2차_PGVector_JSONB_적재_계획.md create mode 100644 journey/plans/260320_다형식문서_RAG_3차_OCR_관계확장_동기화_계획.md create mode 100644 journey/plans/260320_로빙_다형식문서_RAG_적용1_계획.md diff --git a/journey/ideas/260320_다형식문서_자동지식화_RAG_파이프라인_아이디어.md b/journey/ideas/260320_다형식문서_자동지식화_RAG_파이프라인_아이디어.md new file mode 100644 index 0000000..694c685 --- /dev/null +++ b/journey/ideas/260320_다형식문서_자동지식화_RAG_파이프라인_아이디어.md @@ -0,0 +1,66 @@ +tags: [robeing, idea, rag, multimodal, markdown, pgvector, postgres] + +# 260320 다형식문서 자동지식화 RAG 파이프라인 아이디어 + +## 목적 + +- 로빙이 회사의 대량 파일 자산을 읽고, 정리하고, 검색하고, 답변 근거로 사용할 수 있는 자동 지식화 파이프라인의 큰 그림을 고정한다. +- 대상은 PDF, HWP, DOCX, XLSX, PPTX, JPG, PNG, 동영상 등 다형식 파일 전체다. +- 이 아이디어 문서는 세부 기술 결정을 모두 확정하는 문서가 아니라, `왜 이 흐름으로 가는가`를 한 장으로 묶는 용도다. + +## 핵심 아이디어 + +- 원본 파일은 그대로 둔다. +- 각 원본 파일마다 대응하는 Markdown 파생본을 만든다. +- Markdown에는 front matter와 기본 설명, 요약, 처리 상태를 붙인다. +- PostgreSQL에서 JSONB, PGVector, 관계 테이블을 함께 써서 `메타 + 벡터 + 연결성`을 한 곳에서 관리한다. +- 파일이 생성·수정·삭제되면 같은 흐름으로 다시 정리한다. + +## 왜 이 구조가 맞는가 + +- 원본 파일 형식이 너무 다양해서, 로빙이 매번 원본 포맷에 직접 의존하면 운영이 무너진다. +- Markdown은 사람과 LLM이 동시에 읽기 쉬운 공통 중간표현이다. +- front matter와 JSONB 메타는 검색, 필터링, OCR 선별, 동기화 판단에 모두 재사용된다. +- PGVector는 의미 검색을 맡고, PostgreSQL 관계 구조는 연결 탐색을 맡는다. +- 이 구조는 지금 로빙의 범위에서 과하지 않고, 나중에 더 크게 키워도 버티는 방향이다. + +## 단계 구분 + +### 1차 + +- 원본 스캔 +- 파일별 MD 생성 +- front matter 최소 메타 생성 +- 요약/설명 기본값 생성 + +### 2차 + +- PostgreSQL 적재 +- JSONB 메타 관리 +- 청크 분리 +- PGVector 임베딩/검색 붙이기 + +### 3차 + +- OCR 선별 적용 +- 문서 관계 확장 +- 동기화 자동화 +- 품질 측정 및 재처리 정책화 + +### 로빙 적용 1 + +- 로빙 질의 경로에 이 저장 계층을 실제 연결한다. +- 질문이 들어왔을 때 메타 필터 + 벡터 검색 + 관계 확장을 거쳐 근거 문서를 회수하는 최소 폐회로를 만든다. + +## 이번 아이디어의 기준 문서 + +- [RAG 리서치 인덱스](../research/rag/README.md) +- [다형식 문서 RAG 자동수집·정규화 전략 리서치](../research/rag/260320_다형식문서_RAG_자동수집_정규화_전략_리서치.md) +- [PGVector·JSONB RAG 스키마 설계 리서치](../research/rag/260320_PGVector_JSONB_RAG_스키마_설계_리서치.md) + +## 다음 단계 + +- [260320 다형식문서 RAG 1차 MD·메타 정규화 계획](../plans/260320_다형식문서_RAG_1차_MD_메타_정규화_계획.md) +- [260320 다형식문서 RAG 2차 PGVector·JSONB 적재 계획](../plans/260320_다형식문서_RAG_2차_PGVector_JSONB_적재_계획.md) +- [260320 다형식문서 RAG 3차 OCR·관계확장·동기화 계획](../plans/260320_다형식문서_RAG_3차_OCR_관계확장_동기화_계획.md) +- [260320 로빙 다형식문서 RAG 적용 1차 계획](../plans/260320_로빙_다형식문서_RAG_적용1_계획.md) diff --git a/journey/plans/260320_다형식문서_RAG_1차_MD_메타_정규화_계획.md b/journey/plans/260320_다형식문서_RAG_1차_MD_메타_정규화_계획.md new file mode 100644 index 0000000..78610cf --- /dev/null +++ b/journey/plans/260320_다형식문서_RAG_1차_MD_메타_정규화_계획.md @@ -0,0 +1,52 @@ +# 260320 다형식문서 RAG 1차 MD·메타 정규화 계획 + +## 목적 + +- 대량 원본 파일을 로빙이 읽을 수 있는 최소 공통 포맷으로 정규화한다. +- 1차 범위는 `원본 스캔 -> 파일별 MD 생성 -> front matter 최소 메타 생성`까지다. +- OCR, 임베딩, 그래프 확장은 이번 단계의 완료 조건이 아니다. + +## 참조 문서 + +- [다형식문서 자동지식화 RAG 파이프라인 아이디어](../ideas/260320_다형식문서_자동지식화_RAG_파이프라인_아이디어.md) +- [다형식 문서 RAG 자동수집·정규화 전략 리서치](../research/rag/260320_다형식문서_RAG_자동수집_정규화_전략_리서치.md) +- [Markdown 중간표현 SSOT 설계 리서치](../research/rag/260320_MD_중간표현_SSOT_설계_리서치.md) +- [Front Matter 메타데이터 설계 리서치](../research/rag/260320_FrontMatter_메타데이터_설계_리서치.md) + +## 범위 + +- 파일 타입 식별 +- 원본 상대 경로 유지 +- 파일 1개당 MD 1개 생성 +- 최소 front matter 생성 +- 기본 설명/요약 placeholder 생성 + +## 최소 front matter + +- `title` +- `source_path` +- `md_path` +- `file_type` +- `modified_at` +- `status` +- `text_length` +- `summary` + +## 산출물 + +- 원본 구조를 반영한 MD 파생본 디렉터리 +- 최소 front matter가 붙은 MD 파일 +- 처리 실패/스킵 목록 + +## 완료 조건 + +- 샘플 100~500개 파일에서 MD 생성 성공률을 확인한다. +- 주요 확장자별로 최소 한 번 이상 MD 생성이 검증된다. +- 원본 경로와 MD 경로의 1:1 대응이 보장된다. + +## 보류 + +- OCR +- 임베딩 +- LLM 기반 상세 요약 +- 관계형/그래프 적재 diff --git a/journey/plans/260320_다형식문서_RAG_2차_PGVector_JSONB_적재_계획.md b/journey/plans/260320_다형식문서_RAG_2차_PGVector_JSONB_적재_계획.md new file mode 100644 index 0000000..e473286 --- /dev/null +++ b/journey/plans/260320_다형식문서_RAG_2차_PGVector_JSONB_적재_계획.md @@ -0,0 +1,45 @@ +# 260320 다형식문서 RAG 2차 PGVector·JSONB 적재 계획 + +## 목적 + +- 1차에서 생성한 MD와 메타를 PostgreSQL 중심 저장 구조로 적재한다. +- 2차 범위는 `document_files`, `document_chunks` 중심으로 문서와 청크를 저장하고, PGVector 검색을 붙이는 것이다. + +## 참조 문서 + +- [PGVector·JSONB RAG 스키마 설계 리서치](../research/rag/260320_PGVector_JSONB_RAG_스키마_설계_리서치.md) +- [Front Matter 메타데이터 설계 리서치](../research/rag/260320_FrontMatter_메타데이터_설계_리서치.md) + +## 범위 + +- MD 파생본 읽기 +- front matter -> JSONB 적재 +- 본문 청크 분리 +- 청크별 임베딩 생성 +- PGVector 인덱스 구성 +- 키워드 검색용 TSVECTOR 구성 + +## 핵심 결정 + +- 문서 테이블과 청크 테이블은 분리한다. +- front matter는 JSONB로 적재한다. +- 의미 검색과 키워드 검색을 모두 지원한다. +- 아직 관계형 연결은 최소로 둔다. + +## 산출물 + +- PostgreSQL 스키마 +- 적재 배치 스크립트 +- 샘플 질의 결과 + +## 완료 조건 + +- 샘플 문서셋에서 메타 필터 + 벡터 검색이 동작한다. +- source_path 기준 중복 적재 방지가 된다. +- 재적재 시 변경 문서만 갱신할 수 있다. + +## 보류 + +- OCR 보강 +- 관계 그래프 확장 +- 로빙 런타임 직접 연결 diff --git a/journey/plans/260320_다형식문서_RAG_3차_OCR_관계확장_동기화_계획.md b/journey/plans/260320_다형식문서_RAG_3차_OCR_관계확장_동기화_계획.md new file mode 100644 index 0000000..465df37 --- /dev/null +++ b/journey/plans/260320_다형식문서_RAG_3차_OCR_관계확장_동기화_계획.md @@ -0,0 +1,44 @@ +# 260320 다형식문서 RAG 3차 OCR·관계확장·동기화 계획 + +## 목적 + +- 2차 저장 구조 위에 OCR 선별 적용, 문서 관계 확장, 생성·수정·삭제 동기화까지 붙인다. +- 이 단계부터 대량 운영에 필요한 자동화와 품질 개선 루프를 만든다. + +## 참조 문서 + +- [OCR 선별 적용 정책 리서치](../research/rag/260320_OCR_선별적용_정책_리서치.md) +- [PostgreSQL 그래프확장 설계 리서치](../research/rag/260320_PostgreSQL_그래프확장_설계_리서치.md) + +## 범위 + +- OCR 후보 선별 +- OCR 결과를 기존 MD와 DB에 누적 +- `document_relations` 생성 +- 파일 변경 감지 및 재처리 +- soft delete 반영 + +## 관계 생성 우선순위 + +1. front matter `related` +2. 같은 폴더/프로젝트 +3. 공통 태그/키워드 +4. 벡터 유사도 기반 보조 연결 + +## 동기화 원칙 + +- 새 파일: MD 생성 + DB insert +- 수정 파일: hash 비교 후 재생성/재임베딩 +- 삭제 파일: `deleted` 상태 반영 + +## 산출물 + +- OCR 배치 정책 +- 관계 생성 규칙 +- 증분 동기화 배치 또는 감시 구조 + +## 완료 조건 + +- OCR이 필요한 파일만 선별 처리된다. +- 삭제된 파일이 DB와 MD 상태에 반영된다. +- 관련 문서 연결 탐색이 가능하다. diff --git a/journey/plans/260320_로빙_다형식문서_RAG_적용1_계획.md b/journey/plans/260320_로빙_다형식문서_RAG_적용1_계획.md new file mode 100644 index 0000000..42de9d2 --- /dev/null +++ b/journey/plans/260320_로빙_다형식문서_RAG_적용1_계획.md @@ -0,0 +1,53 @@ +# 260320 로빙 다형식문서 RAG 적용 1차 계획 + +## 목적 + +- 앞선 1~3차 산출물을 로빙 실제 질의 응답 경로에 연결하는 첫 적용 단계를 정의한다. +- 목표는 "질문 -> 관련 문서 회수 -> 근거 기반 응답"의 최소 폐회로를 만드는 것이다. + +## 참조 문서 + +- [다형식문서 자동지식화 RAG 파이프라인 아이디어](../ideas/260320_다형식문서_자동지식화_RAG_파이프라인_아이디어.md) +- [다형식문서 RAG 1차 MD·메타 정규화 계획](./260320_다형식문서_RAG_1차_MD_메타_정규화_계획.md) +- [다형식문서 RAG 2차 PGVector·JSONB 적재 계획](./260320_다형식문서_RAG_2차_PGVector_JSONB_적재_계획.md) +- [다형식문서 RAG 3차 OCR·관계확장·동기화 계획](./260320_다형식문서_RAG_3차_OCR_관계확장_동기화_계획.md) + +## 적용 범위 + +- `rb8001` +- 필요시 `skill-rag-file` +- 문서 회수와 근거 응답에 필요한 최소 질의 경로 + +## 최소 동작 흐름 + +1. 사용자 질문 수신 +2. 메타 필터 후보 결정 +3. PGVector/키워드 검색 +4. 관련 문서 확장 +5. 근거 청크 선택 +6. 로빙 응답 생성 +7. 사용한 근거 기록 + +## 1차 목표 + +- 로빙이 "찾아보겠습니다" 수준이 아니라 실제 근거 문서를 제시하게 한다. +- 근거 문서명, 경로, 핵심 문단을 응답에 포함하게 한다. +- retrieval 실패와 generation 실패를 분리해 로그에 남긴다. + +## 샘플 검증 질문 + +- 계약/MOU 근거 질문 +- 특정 프로그램 운영 근거 질문 +- 보고서 내 수치/표 근거 질문 + +## 완료 조건 + +- 대표 질문셋에서 근거 문서 회수가 실제로 일어난다. +- 근거 없는 경우와 검색 실패 경우를 구분해 응답한다. +- 응답 로그에 사용 문서와 청크가 남는다. + +## 보류 + +- 완전 자동 자가개선 +- 모든 파일 유형에 대한 완전 멀티모달 해석 +- 대규모 그래프 탐색 기반 답변