- LlamaIndex vừa open-source LiteParse — CLI Node.js parse PDF, Office, ảnh ngay trên máy bằng thuật toán grid projection thuần heuristic.
- Không VLM, không API key, không GPU.
- Chạy mili-giây mỗi trang nhưng vẫn giữ được layout đa cột và bảng nguyên vẹn cho LLM đọc.
TL;DR
LiteParse là parser tài liệu open-source (Apache 2.0) do LlamaIndex mở mã nguồn ngày 19/3/2026. Nó là CLI và thư viện TypeScript-native, parse PDF / Office / ảnh entirely local trên Node.js — không VLM, không LLM, không API key, không GPU. Bí mật là thuật toán grid projection dài ~1.650 dòng TS: chiếu mọi text item lên một grid monospace, giữ nguyên cột, bảng và indentation để LLM đọc trực tiếp như ASCII art. Latency tính bằng mili-giây thay vì giây như VLM cloud.

Có gì mới
LlamaIndex vốn nổi tiếng với LlamaParse — dịch vụ cloud parse PDF chất lượng cao nhưng tính phí theo trang. LiteParse chính là core text-extraction engine từng powering một phần LlamaParse, nay được tách ra và mở mã nguồn miễn phí.
- CLI:
npm i -g @llamaindex/liteparserồilit parse document.pdf. Có cả Homebrew và Python wrapper. - Output đa modal: ngoài text spatial, sinh kèm bounding box và screenshot từng trang để agent có thể fallback sang VLM khi cần.
- OCR built-in: Tesseract.js bundled, parallel hoá theo CPU core, zero setup. Có HTTP API spec để cắm EasyOCR / PaddleOCR cho độ chính xác cao hơn.
- Pipeline đa định dạng: PDF native (PDF.js), Office docs convert qua LibreOffice, ảnh qua ImageMagick.
- MCP server cài thẳng vào Cursor / Claude / Codex như coding agent skill.
Tại sao đáng quan tâm
Ingest tài liệu đang là bottleneck lớn nhất của pipeline RAG. Trước LiteParse, dev thường phải chọn giữa hai cực:
- Heuristic nhanh nhưng phá layout (pypdf, pdfplumber): nối text theo reading order, làm nát bảng và đa cột.
- VLM / cloud chính xác nhưng chậm và đắt (LlamaParse cloud, AWS Textract, DeepSeek OCR V2): đo bằng giây/trang, cần GPU hoặc API key, dữ liệu rời máy.
LiteParse chen vào khoảng giữa: nhanh như heuristic, free như heuristic, nhưng giữ được spatial layout — đủ để LLM hiểu tables, multi-column docs, indentation. Với agent cần "quét" vài chục PDF mỗi câu hỏi, latency 100ms vs 10s là khác biệt giữa "dùng được" và "không thể dùng".
Bên trong thuật toán Grid Projection
Đây là phần thú vị nhất. Thay vì cố hiểu document (đây là bảng, kia là cột), grid projection chỉ cố tái tạo nơi text xuất hiện. 6 bước:
- Coordinates → lines. Gom text theo Y với
Y_SORT_TOLERANCEdựa trên median text height. Sort trái-phải. Chèn dòng trống khi gap dọc vượt line spacing thông thường. - Anchor extraction. Quét X coordinate, làm tròn về quarter-unit (50.12 và 50.38 đều thành 50.25). Trích ba loại anchor: Left (margin paragraph), Right (số căn phải), Center (tiêu đề canh giữa). Lọc bằng Delta filtering (xoá anchor đơn lẻ) và Intercept filtering (xoá anchor cắt nhầm content).
- Snap classification. Mỗi item snap vào anchor của nó. Conflict (item match nhiều anchor) → chọn anchor có nhiều item khác cùng share nhất. Hoà → ưu tiên Left > Right > Center.
- Flowing-text escape hatch. Trước khi project, kiểm tra: nếu block có ≤4 anchor VÀ phần lớn dòng span >50% chiều rộng trang → đó là paragraph chảy, render bằng space-join thuần để khỏi vỡ word wrap.
- Grid projection. Cột cơ sở =
round(pdfX / medianCharWidth). Render theo thứ tự Floating → Left → Right → Center. Mỗi item tạo ra Forward Anchor truyền constraint xuống các dòng dưới — header bảng snap cột 13 sẽ ép các dòng data bên dưới snap đúng cột 13. Vị trí cuối cùng =maxcủa ba constraint: target position, line maximum, forward anchor. - Post-processing. Block trên 80% whitespace → halve gap (tiết kiệm token cho LLM). Cắt margin trống. Xoá null character và trailing whitespace.
Cả pipeline tổng cộng ~1.650 dòng TypeScript. Toàn bộ logic mô tả trong deep-dive blog của Logan Markewich.
So sánh với các parser khác
| Tool | Speed | Layout | Cost | Local |
|---|---|---|---|---|
| pypdf / pdfplumber | ms | Phá đa cột & bảng | Free | ✓ |
| Markitdown / Docling | chậm hơn | Convert sang markdown, dễ vỡ | Free | ✓ |
| LlamaParse cloud / AWS Textract | giây + network | Tốt nhất | $/trang | ✗ |
| VLM local (DeepSeek OCR V2) | giây/trang | Tốt nhất | GPU | ✓ |
| LiteParse | ms | Giữ spatial cột & bảng | Free | ✓ |
LlamaIndex tự build LLM-as-judge eval dataset (vì OlmOCR và các benchmark OCR truyền thống phạt output spatial-text không-markdown). Kết quả tóm tắt: "improved accuracy in page-based QA, with top-tier parsing latency for large documents" so với PyPDF, PyMuPDF, Markitdown. Số liệu tuyệt đối (ms/trang, %) chưa public.
Quan trọng: LiteParse và VLM bổ sung cho nhau, không cạnh tranh. Pattern khuyến nghị là dùng LiteParse làm first pass nhanh, rồi route trang nào ambiguous sang VLM dùng screenshot mà LiteParse đã sinh sẵn.
Use cases
- RAG ingestion fast-mode cho batch report, contract, spec — phần lớn document "sạch".
- AI agent & coding skill: cài như Agent Skill qua skills CLI hoặc copy
SKILL.md. Repo ship sẵnAGENTS.mdvàCLAUDE.mdhướng dẫn coding agent dùng. - Two-stage multimodal: agent đọc text nhanh, gặp bảng phức tạp / chart → ném screenshot sang GPT-4o hoặc Claude.
- Bảng spatial: không convert sang Markdown (dễ vỡ ở nested table). LLM hiện đại đọc trực tiếp ASCII grid được vì train trên rất nhiều code và ASCII art.
- Multi-column papers: giữ nguyên cột thay vì nối tuần tự trái-phải.
- MCP integration: URL MCP server cắm thẳng Cursor / Claude / Codex.
- Privacy-sensitive: invoice, hợp đồng pháp lý — data không rời máy.
Giới hạn & pricing
LiteParse không phải là document intelligence platform đầy đủ. Nó cố tình bỏ qua:
- Semantic layout analysis (header vs footnote vs caption).
- Output structured Markdown / JSON schema / table-to-CSV.
- Handwritten form, scientific paper dày phương trình, scanned doc xuống cấp nặng, nested table phức tạp.
Yêu cầu môi trường: Node.js ≥18. LibreOffice để xử lý Office docs. ImageMagick để xử lý ảnh. Trên Windows, thư mục LibreOffice CLI (C:\Program Files\LibreOffice\program) phải có trên PATH.
OCR fallback: Tesseract.js mặc định, parallel theo CPU. Offline air-gap: set TESSDATA_PREFIX trỏ tới folder .traineddata. Cần độ chính xác cao hơn → cắm EasyOCR / PaddleOCR qua HTTP API spec (OCR_API_SPEC.md).
License: Apache 2.0. Pricing: $0. Có ngay trên github.com/run-llama/liteparse (4.5k stars, 17 releases, latest v1.5.2).
Roadmap & ai đứng sau
LiteParse build bởi team LlamaIndex, người chống chính là Logan Markewich — author hai bài blog technical và là active committer. Repo có 15 contributor, codebase 71.9% TypeScript / 26.5% Python.
Roadmap không formal. Hai hướng được nhắc tới: thêm format tài liệu mới qua đóng góp cộng đồng, và build visual debug tooling để cả dev lẫn AI coding agent có thể audit decision và đẩy thuật toán spatial tốt hơn.
Cài thử trong 30 giây:
npm i -g @llamaindex/liteparse
lit parse your-document.pdfNguồn: LlamaIndex blog (deep dive), LlamaIndex blog (announcement), GitHub repo, LlamaIndex docs.


