Files
PDFToMD/docs/PRD.md
T
2026-04-23 10:22:30 +09:00

3.4 KiB

PRD: PDFtoMD

목표

PDFtoMD는 수학, 공학, 역학 중심의 PDF 문서를 AI Agent가 쉽게 접근하고 읽을 수 있는 Obsidian 친화 Markdown 문서 묶음으로 변환하는 프로그램이다.

이 프로젝트의 목표는 PDF의 텍스트를 단순 추출하는 것이 아니라, 원문 문서의 논리 구조와 출처 추적성을 보존하면서 AI가 탐색 가능한 지식 자료로 재구성하는 것이다.

사용자

  • PDF 문서를 Markdown으로 변환해 AI Agent, RAG, 개인 지식 관리 도구에 활용하고 싶은 사용자
  • 수식, 표, 이미지가 많은 논문/공학 문서를 Obsidian에서 읽고 관리하고 싶은 사용자
  • 긴 PDF를 여러 Markdown 파일과 index로 나누어 부분 탐색하고 싶은 사용자

1차 MVP 범위

  • Windows native 환경에서 완전 로컬 실행
  • GPU 기본 사용, VRAM 8GB 환경을 기준으로 안정적인 chunk 처리
  • PDF parser는 Marker를 기본 엔진으로 사용
  • PDF 텍스트를 Markdown 문단과 heading 구조로 변환
  • PDF 내 수식을 Obsidian 렌더링이 가능한 LaTeX Markdown으로 변환
  • PDF 내 이미지를 추출하고 Markdown에서 연결
  • 이미지의 figure 번호, 캡션, 원본 페이지 정보를 가능한 한 보존
  • PDF 내 표를 구조화하고 Markdown table, HTML table, CSV 중 적절한 방식으로 출력
  • 페이지 수가 많은 문서를 20페이지 단위 chunk로 분할 변환
  • AI Agent가 쉽게 접근할 수 있도록 chunk 파일, heading, 문단, line 위치, 원본 page 정보를 연결하는 index 파일 생성
  • 변환 설정, 경고, 실패 chunk, 처리 시간 등 진단 정보를 metadata/log로 보존

2차 범위

  • PyQt 기반 Windows UI
  • 외부 API를 선택적으로 활용하는 수식 복구, 이미지 설명, 품질 검토 기능
  • Marker 외 parser engine fallback 또는 비교 실행
  • 고급 Obsidian vault 연동

핵심 기능

  1. PDF 문서를 Obsidian 친화 Markdown 문서 묶음으로 변환
  2. 수식을 $ ... $ 또는 $$ ... $$ 형식의 LaTeX로 보존
  3. 논문에서 자주 쓰이는 다중 컬럼 문서를 Markdown의 선형 구조로 재배치
  4. 이미지 추출 및 Markdown 연결
  5. 표 구조화 및 표 유형별 Markdown/HTML/CSV 출력
  6. 긴 PDF를 여러 chunk Markdown 파일로 분할 변환
  7. chunk/heading/문단별 접근을 돕는 index 파일 생성
  8. 원본 PDF page, page range, block id, bbox 등 출처 추적 정보 보존
  9. 중간 실패 후 실패 chunk만 재시도 가능한 변환 상태 관리
  10. samples/ PDF 기반 품질 검증과 회귀 테스트 지원

품질 기준

  • 원문 읽기 순서가 Markdown에서 자연스럽게 유지되어야 한다.
  • heading, 본문, 리스트, 인용, 표, 그림, 수식의 의미 역할이 구분되어야 한다.
  • 수식 delimiter와 기본 LaTeX 구조가 깨지지 않아야 한다.
  • 이미지와 캡션, figure 번호, 본문 참조가 가능한 한 연결되어야 한다.
  • 표는 구조 손실을 최소화하는 형식으로 저장되어야 한다.
  • index 파일에서 원하는 섹션이나 문단의 Markdown 위치와 원본 PDF page를 찾을 수 있어야 한다.
  • Windows 경로, 한글 파일명, 긴 문서, GPU 메모리 부족 상황을 고려해야 한다.

UI

  • UI는 2차 목표로 PyQt를 사용한다.
  • UI는 변환 엔진을 직접 구현하지 않고 CLI/라이브러리 계층을 호출하는 thin client로 둔다.
  • 미니멀하고 깔끔한 Windows 표준 디자인을 따른다.