프로젝트 소개

AksharaMD는 문서 파서가 소스 파일을 LLM 입력에 적합한 Markdown으로 변환한 품질을 평가하는 Python CLI 및 라이브러리입니다. 평균 정확도 수치를 광고하는 대신, 제공한 특정 파서 출력에 대한 문서별 준비 판정을 생성합니다. 핵심 흐름은 두 가지 입력을 받습니다: 원본 소스 문서(예: PDF 또는 DOCX)와 파서가 생성한 Markdown입니다. 그런 다음 0에서 100까지의 AI 준비 점수(85 이상 HIGH, 70 OK, 50 RISKY, 50 미만 POOR 품질 밴드), 블록별 추출 신뢰도 태그(EXTRACTED, INFERRED, AMBIGUOUS), OCR_REQUIRED, LOW_TEXT_DENSITY, GLYPH_ARTIFACTS, REPEATED_CONTENT, W_MULTICOLUMN_ORDER, W_TABLE_MISSING, W_ENCODING_ARTIFACTS, OCR_HALLUCINATION과 같은 명명된 경고 코드, 그리고 선언된 리터럴(날짜, ID, 통화 금액, 명명된 엔터티)이 Markdown에 유지되는지 확인하여 ACCEPT 또는 REJECT 판정을 내리는 선택적 소스 기반 평가 게이트를 반환합니다. 이 프로젝트는 명시적으로 파서 비종속이며 MarkItDown, Docling, marker, MinerU, LlamaParse, PyMuPDF4LLM을 출력을 평가할 수 있는 파서로 나열하고, Markdown을 생성하는 모든 사내 파서도 포함합니다. 선호하는 파서가 없는 팀을 위해 번들된 참조 파서도 포함되어 있으며 compile 하위 명령을 통해 접근할 수 있습니다. README는 이 참조 파서가 제품 자체가 아닌 편의를 위한 대체 수단임을 강조합니다. README는 한계에 대해 unusually 솔직합니다. 준비 상태는 보정되지 않은 휴리스틱이며 정확성 확률이 아니며, 높은 점수는 모델링된 페널티가 거의 적용되지 않았음을 의미할 뿐이라고 명시합니다. 검색 정확도, 최종 답변 정확성, 인용 정확성, 특정 임베딩 모델에 대한 최적 청킹, 임베딩 희석에 대한 보증을 명시적으로 부인합니다. 과거 벤치마크 수치(출력 토큰 비교, 노이즈 감소, MarkItDown 및 Docling 대비 처리량)는 준비 점수가 아닌 버전 0.3.3의 번들 참조 파서에 귀속되며, README는 이후 릴리스에 자동으로 이전되지 않는다고 언급합니다. 처리는 로컬에서 실행됩니다. 기본 설치 시 로컬 파일에 대해 네트워크 호출이 없습니다. 네트워크 액세스는 HTTP/HTTPS URL 또는 S3와 같은 원격 소스 또는 선택적 ML 백엔드가 처음 사용 시 모델 가중치를 다운로드할 때만 발생합니다. 문서는 AksharaMD 운영 서비스로 전송되지 않습니다. 설치는 pip를 통해 이루어지며 Python 3.11 이상이 필요합니다. 기본 설치에는 네이티브 PDF, DOCX, XLSX, PPTX, HTML, EPUB, 이메일, 아카이브, 이미지 및 코드가 40개 이상의 문서 범주와 118개의 등록된 확장자에 걸쳐 포함됩니다. 선택적 추가 기능에는 OCR(Tesseract), 비전 기반 테이블 재구성(Marker), 수학 추출(pix2tex), 오디오 전사(Whisper) 및 S3 입력이 포함됩니다. 전체 설치 시 모든 것이 설치되며, 첫 실행 시 약 5-6GB의 모델 가중치가 필요합니다. 관련 추가 기능 없이 스캔된 페이지는 조용히 저품질 출력을 생성하는 대신 OCR_REQUIRED 경고와 낮은 준비 점수를 발행합니다. CLI에는 compile, assess, validate, benchmark, stats, show-manifest, corpus, mcp-config 및 formats 하위 명령이 포함됩니다. assess 명령이 기본 평가 흐름이며, compile은 번들 파서를 종단 간 실행하고 document.md, document.json, manifest.json, validation.json 및 청크 파일을 작성합니다. --min-readiness-score 옵션을 사용하면 CI/CD 수집 게이트로 사용할 수 있고, --json은 기계 판독 가능 출력을 생성합니다. corpus 명령은 토큰 예산 제한 청크로 디렉토리를 컴파일하고 거의 중복 감지를 수행합니다. Python API는 compile_to_string, compile, compile_to_multimodal(인라인 base64 이미지가 있는 Anthropic 호환 콘텐츠 배열 반환) 및 RAG 인덱스나 벡터 저장소에 공급하기 위해 블록을 증분 생성하는 stream 메서드를 가진 Compiler 클래스를 노출합니다. 컴파일 컨텍스트 객체는 토큰 수, 토큰 감소 비율, 준비 점수, 경과 시간, 테이블 및 청크 수, 검증 오류 및 경고와 같은 매니페스트 필드를 노출합니다. Claude Desktop 및 Cursor와 같은 MCP 호환 호스트용 MCP 서버가 포함되어 있으며 mcp-config 하위 명령으로 구성됩니다. 프로젝트는 PolyForm Noncommercial 라이선스로 제공됩니다.