피드로 돌아가기
Why I built rtfstruct, fifteen years after writing the RTF parser inside Scrivener
Dev.toDev.to
AI/ML

RTF 구조 보존 AST 설계를 통한 AI Ingestion 정밀도 향상

Why I built rtfstruct, fifteen years after writing the RTF parser inside Scrivener

Lee Powell2026년 5월 5일11intermediate

Context

대다수 AI 파이프라인이 RTF 등 구조적 문서를 Plain Text로 단순 변환하며 테이블과 리스트 등의 핵심 컨텍스트를 손실하는 문제 발생. 모델이 결정론적 구조를 확률적으로 재구성하게 함으로써 발생하는 Silent Error와 낮은 신뢰도가 주요 병목 지점으로 작용.

Technical Solution

  • Structure-before-model 원칙 기반의 중간 표현 계층 도입을 통한 데이터 손실 방지
  • 단순 텍스트 추출이 아닌 neutral document AST(Abstract Syntax Tree)를 생성하여 문서의 논리적 구조 유지
  • 소스 바이트 범위까지 추적 가능한 Source Spans 구현으로 데이터의 원천 추적성(Traceability) 확보
  • 진단 정보(Diagnostics)를 명시적으로 노출하여 파싱 실패 지점을 파악하고 신뢰도 낮은 구간 식별
  • Python 3.11+ 기반의 오픈소스 구현으로 기존 striprtf 등 단순 변환 라이브러리의 한계 극복
  • RTF에서 AST로, 다시 RTF로 복원 가능한 Roundtrip 지원 설계

1. AI 파이프라인 설계 시 데이터 플래트닝(Flattening) 전 단계에서 구조적 손실이 발생하는지 검토

2. 모델의 추론 결과에 대해 원본 문서의 정확한 위치를 매핑할 수 있는 소스 스팬(Source Span) 구현 여부 확인

3. 확률적 추론에 의존하기 전, 결정론적으로 추출 가능한 구조(AST)를 먼저 정의하여 모델의 부담 경감

원문 읽기