🔬 Nghiên cứu 🌱 Mới trồng 17 tháng 7, 2026 Trồng 17 thg 7

docling-project/docling

📦 docling-project/docling ⭐ 63k Mở trên GitHub ↗

docling là công cụ/chuỗi thư viện chuyển đổi tài liệu đa định dạng như PDF, DOCX, PPTX, XLSX, HTML sang các đầu ra thân thiện cho GenAI như markdown, text, JSON và cấu trúc bảng. Với mức độ phổ biến r…

Kết luận: fit · Công nghệ: document-parsing · pdf-conversion · markdown · rag-ingestion · ocr

docling là công cụ/chuỗi thư viện chuyển đổi tài liệu đa định dạng như PDF, DOCX, PPTX, XLSX, HTML sang các đầu ra thân thiện cho GenAI như markdown, text, JSON và cấu trúc bảng. Với mức độ phổ biến rất cao (~63k sao) và trọng tâm vào document parsing/conversion, nó phù hợp để xây pipeline nạp tri thức, RAG và chuẩn hóa tài liệu nội bộ.

📖 Giới thiệu chi tiết

🧩 Nó là gì?

docling-project/docling là một công cụ Python giúp biến tài liệu như PDF, DOCX, PPTX, XLSX, HTML, ảnh, audio, email… thành dạng dễ dùng cho AI như Markdown, text, JSON hoặc bảng có cấu trúc.

Nói đơn giản: nếu bạn có một đống tài liệu “khó đọc bằng máy”, docling giúp dọn chúng thành dữ liệu sạch hơn để đưa vào GenAI, chatbot, RAG hoặc hệ thống tìm kiếm nội bộ.

🎯 Giải quyết vấn đề gì? Dành cho ai?

Khi làm ứng dụng AI, một vấn đề rất thường gặp là: tài liệu của bạn không nằm sẵn trong dạng đẹp để AI hiểu. PDF có bố cục phức tạp, bảng bị vỡ, ảnh scan cần OCR, file văn phòng mỗi loại một kiểu, email/audio/video lại càng khó gom chung.

docling giải quyết việc đó bằng cách đọc nhiều định dạng tài liệu và xuất ra các dạng dễ xử lý hơn.

Phù hợp cho:

  • Người xây chatbot hỏi đáp trên tài liệu nội bộ.
  • Người làm RAG, tức là hệ thống cho AI tìm thông tin trong kho tài liệu trước khi trả lời.
  • Data engineer cần chuẩn hóa nhiều loại file về một định dạng chung.
  • Developer muốn lấy nội dung, bảng, cấu trúc trang từ PDF/DOCX/PPTX/HTML.
  • Team làm GenAI cần pipeline nạp tri thức từ tài liệu thật ngoài đời.
  • Tổ chức có dữ liệu nhạy cảm vì docling có thể chạy local, không nhất thiết phải gửi tài liệu lên dịch vụ bên ngoài.

⚙️ Hoạt động ra sao?

  • Nhận đầu vào là tài liệu từ file local hoặc URL, ví dụ PDF trên máy hoặc link PDF trên web.
  • Phân tích nội dung tài liệu: chữ, bố cục trang, thứ tự đọc, bảng, công thức, code, hình ảnh, biểu đồ…
  • Với PDF scan hoặc ảnh, có thể dùng OCR, tức là nhận dạng chữ trong ảnh.
  • Chuyển tài liệu về một biểu diễn chung tên là DoclingDocument, hiểu đơn giản là “bản mô tả có cấu trúc” của tài liệu.
  • Từ DoclingDocument, xuất ra nhiều định dạng như Markdown, HTML, WebVTT, DocLang, DocTags hoặc JSON gần như giữ đầy đủ thông tin.
  • Có thể dùng qua CLI bằng lệnh docling, hoặc dùng trong code Python qua DocumentConverter.
  • Có tích hợp với các công cụ AI phổ biến như LangChain, LlamaIndex, Crew AI và Haystack.
  • Có thể chạy như API server bằng docling-serve hoặc kết nối với agent qua MCP server.

🆚 Khi nào nên dùng / không nên

Nên dùng docling khi:

  • Bạn cần chuyển nhiều loại tài liệu khác nhau về Markdown, JSON hoặc text để xử lý tiếp.
  • Bạn làm RAG hoặc chatbot cần “ăn” dữ liệu từ PDF, DOCX, PPTX, HTML, email, audio, ảnh…
  • Bạn quan tâm đến cấu trúc tài liệu, không chỉ lấy text thô.
  • Bạn cần hiểu PDF tốt hơn, ví dụ bảng, bố cục, thứ tự đọc, công thức, code.
  • Bạn muốn chạy local cho tài liệu nhạy cảm hoặc môi trường không có Internet.

Có thể không cần dùng docling khi:

  • Bạn chỉ có vài file .txt đơn giản và chỉ cần đọc nội dung thẳng.
  • Bạn chỉ muốn trích text rất cơ bản từ PDF, khi đó thư viện nhẹ hơn có thể đủ.
  • Bạn cần chỉnh sửa PDF như thêm trang, ký tên, nén file; docling tập trung vào parsing/conversion chứ không phải editor PDF.
  • Bạn cần kết quả tuyệt đối hoàn hảo với mọi PDF phức tạp; tài liệu scan xấu, bảng rối hoặc layout lạ vẫn có thể cần kiểm tra thủ công.

So với cách “copy text từ PDF” hoặc dùng parser đơn giản, docling mạnh hơn ở chỗ nó cố giữ cấu trúc tài liệu: bảng, bố cục, thứ tự đọc và định dạng xuất ra thân thiện hơn cho AI.

🚀 Bắt đầu nhanh

Yêu cầu: dùng Python 3.10 trở lên.

Cài đặt:

pip install docling

Dùng CLI để chuyển một tài liệu thành Markdown:

docling https://arxiv.org/pdf/2206.01062

Lệnh này sẽ tạo một file .md trong thư mục hiện tại, chứa nội dung tài liệu đã được chuyển đổi có cấu trúc.

Ví dụ dùng trong Python:

from docling.document_converter import DocumentConverter

source = "https://arxiv.org/pdf/2408.09869"  # a document via a local path or URL

converter = DocumentConverter()
result = converter.convert(source)

print(result.document.export_to_markdown())

Nếu muốn thử pipeline dùng Visual Language Model như GraniteDocling:

docling --pipeline vlm --vlm-model granite_docling https://arxiv.org/pdf/2206.01062

✅ Điểm mạnh & ⚠️ Hạn chế

Điểm mạnh:

  • Hỗ trợ rất nhiều định dạng: PDF, DOCX, PPTX, XLSX, HTML, EPUB, ảnh, audio, video, email, LaTeX, plain text…
  • Hiểu PDF khá sâu: layout trang, thứ tự đọc, bảng, code, công thức, hình ảnh và biểu đồ.
  • Xuất được nhiều dạng tiện cho AI như Markdown, text, HTML, JSON, WebVTT, DocLang, DocTags.
  • Có thể chạy local, phù hợp với dữ liệu nhạy cảm hoặc môi trường bị giới hạn mạng.
  • Có CLI đơn giản và API Python dễ dùng.
  • Tích hợp tốt với hệ sinh thái GenAI như LangChain, LlamaIndex, Crew AI và Haystack.
  • Dự án phổ biến, mã nguồn mở, license MIT, được cộng đồng quan tâm lớn.

Hạn chế:

  • Cần Python 3.10 trở lên; Python 3.9 đã không còn được hỗ trợ từ docling version 2.70.0.
  • Với file scan chất lượng thấp, ảnh mờ hoặc layout quá phức tạp, kết quả OCR/parsing có thể chưa hoàn hảo.
  • Nếu chỉ cần đọc file text đơn giản, docling có thể hơi “nặng đô” so với nhu cầu.
  • Một số tính năng nâng cao như dùng VLM, ASR cho audio/video hoặc OCR có thể cần thêm tài nguyên máy và thời gian xử lý.
  • Đây là công cụ chuyển đổi/phân tích tài liệu, không phải hệ thống RAG hoàn chỉnh; bạn vẫn cần thêm bước lưu vector, tìm kiếm và gọi model AI nếu muốn xây chatbot đầy đủ.