synthadoc
무엇인가
Synthadoc은 문서를 수집하는 시점에 LLM으로 지식을 컴파일해 지속적인 위키를 만드는 엔진이다. 질의 시점에 청크를 검색하는 RAG와 달리, 산출물 자체가 사람이 읽고 고칠 수 있는 Markdown 파일 묶음이다. 같은 위키에 CLI, Obsidian 플러그인, 웹 UI, MCP 네 경로로 접근한다.
어떻게 동작하나
수집 파이프라인은 PDF, 스프레드시트, PPT, 웹 페이지, 이미지, 영상, Word, TXT, AI 세션 기록(.jsonl)을 입력으로 받는다. LLM이 이를 위키 페이지로 합성하고, 페이지 간 상호 참조를 자동으로 만들며, 서로 모순되는 서술을 탐지해 표시하고, 고아 페이지를 따로 표시한다. 생성된 페이지의 각 주장에는 원본 행을 가리키는 인라인 인용이 붙는다. 결과물은 로컬 Markdown 파일로 저장되고, 엔진은 127.0.0.1:7070에만 바인딩되는 서버로 동작한다.
무엇과 다른가
RAG는 질의할 때마다 문서 청크를 검색해 요약을 만들기 때문에 근거가 대화 안에서 사라진다. Synthadoc은 수집 시점에 컴파일하므로 새 문서 하나가 전체 코퍼스의 상호 참조를 갱신한다. 위키는 도구를 실행하지 않은 상태에서도 편집기에서 열리고, git으로 백업되고, 클라우드 드라이브로 동기화된다. 사람이 검토해 active 상태로 승격한 페이지는 보호되며, 이를 반박하는 소스는 덮어쓰지 않고 검토 대상으로 표시된다.
어떻게 쓰나
설치는 pip wheel로 하고 Python 3.11+만 있으면 된다. LLM API 키가 최소 하나 필요하며 기본값은 Gemini Flash(무료 티어, 하루 100만 토큰)이고, Claude Code나 Opencode를 제공자로 쓰면 별도 키가 필요 없다. synthadoc install로 위키를 만들면 Obsidian 플러그인이 함께 설치되고, 기존 설치본은 synthadoc plugin upgrade로 플러그인을 갱신한다. History of Computing 데모는 미리 만들어진 페이지를 API 키 없이 열람할 수 있다. 웹 검색 수집은 Tavily 키를 설정한 뒤 synthadoc ingest "search for: ..." 형태로 실행한다.
전제와 한계
프로덕션 실행에는 Node.js나 Git, 빌드 단계가 필요 없다. 테스트 스위트는 소스 체크아웃에서만 돌아가며 pip wheel에는 포함되지 않는다. 인라인 인용 주석은 Gemini 2.5 Flash 이상에서 안정적으로 동작하고, 그보다 낮은 모델에서는 인용 없는 페이지에 대해 모델 호환성 경고가 발생한다. 서버는 localhost에만 바인딩된다.
관련 논문 4
유사 도구
- markitdownPDF·오피스 문서·이미지·오디오를 Markdown으로 변환해 LLM 파이프라인에 넣는 Python CLI 겸 라이브러리다. 문서 구조를 보존한다.
- LightRAG문서를 지식 그래프와 벡터 인덱스로 함께 색인해 질의에 답하는 검색 증강 생성 프레임워크다. Python 서버와 WebUI를 함께 제공한다.
- markerPDF·이미지·오피스 문서를 마크다운·JSON·HTML로 변환하는 Python CLI다. 레이아웃 검출과 OCR을 로컬 VLM 서버로 처리하고 LLM으로 정확도를 보강한다.
- graphrag비정형 텍스트에서 LLM으로 개체와 관계를 추출해 지식 그래프 인덱스를 만들고, 그 그래프를 컨텍스트로 질의응답에 쓰는 Python CLI 파이프라인이다.
- doclingPDF·DOCX·PPTX 등 여러 문서 형식을 레이아웃과 표 구조까지 해석해 Markdown·JSON으로 내보내는 Python 라이브러리 겸 CLI다.
- deep-searcher사내 문서를 벡터 DB에 적재하고 LLM이 검색·평가·추론을 반복해 근거 있는 답변과 보고서를 만드는 Python 딥리서치 도구다.