opendataloader-project/opendataloader-pdf
Trình phân tích cú pháp PDF cho dữ liệu sẵn sàng cho AI. Tự động hóa khả năng truy cập PDF. Nguồn mở.
README
OpenDataLoader PDF
Trình phân tích cú pháp PDF cho dữ liệu sẵn sàng cho AI. Tự động hóa khả năng truy cập PDF. Nguồn mở.
🔍 Trình phân tích cú pháp PDF để trích xuất dữ liệu AI — Trích xuất Markdown, JSON (có hộp giới hạn) và HTML từ bất kỳ tệp PDF nào. #1 về điểm chuẩn (tổng cộng là 0,907). Chế độ cục bộ xác định + Chế độ kết hợp AI cho các trang phức tạp.
- Độ chính xác của nó là bao nhiêu? — #1 về điểm chuẩn: 0,907 tổng thể, độ chính xác bảng 0,928 trên 200 tệp PDF trong thế giới thực bao gồm các bài báo khoa học và nhiều cột. Chế độ cục bộ xác định + Chế độ kết hợp AI cho các trang phức tạp (điểm chuẩn)
- Quét PDF và OCR? – Vâng. OCR tích hợp (hơn 80 ngôn ngữ) ở chế độ kết hợp. Hoạt động với các bản quét chất lượng kém ở 300 dpi+ (chế độ lai)
- Bảng, công thức, hình ảnh, biểu đồ? – Vâng. Các bảng phức tạp/không viền, công thức LaTeX và mô tả biểu đồ/hình ảnh do AI tạo ra đều thông qua chế độ kết hợp (chế độ lai)
- Làm cách nào để sử dụng cái này cho RAG? —
pip install opendataloader-pdf, chuyển đổi thành 3 dòng. Đầu ra có cấu trúc Markdown để phân đoạn, JSON với các hộp giới hạn cho các trích dẫn nguồn và HTML. Tích hợp LangChain có sẵn. Python, Node.js, SDK Java (bắt đầu nhanh | LangChain)
♿ Tự động hóa khả năng truy cập PDF — Tự động gắn thẻ các tệp PDF không được gắn thẻ vào các tệp PDF được gắn thẻ sẵn sàng cho trình đọc màn hình trên quy mô lớn. Công cụ nguồn mở đầu tiên để tạo các tệp PDF được gắn thẻ từ đầu đến cuối.
- Vấn đề là gì? — Các quy định về khả năng tiếp cận hiện được thực thi trên toàn thế giới. Việc khắc phục PDF thủ công có giá từ 50–200 USD cho mỗi tài liệu và không mở rộng quy mô (quy định)
- Cái gì miễn phí? — Phân tích bố cục + tự động gắn thẻ (Apache 2.0). PDF không được gắn thẻ vào → PDF được gắn thẻ ra. Không có sự phụ thuộc SDK độc quyền (tự động gắn thẻ)
- Còn việc tuân thủ PDF/UA thì sao? — Chuyển đổi PDF được gắn thẻ sang PDF/UA-1 hoặc PDF/UA-2 là một tiện ích bổ sung dành cho doanh nghiệp. Tính năng tự động gắn thẻ sẽ tạo ra PDF được gắn thẻ; Xuất PDF/UA là bước cuối cùng (đường ống)
- Tại sao lại tin tưởng điều này? - Được xây dựng với sự cộng tác của Phòng thí nghiệm kép (veraPDF nhà phát triển) dựa trên Hiệp hội PDF thông số kỹ thuật, hướng dẫn thực hành tốt nhất và kiến thức chuyên môn của Cộng đồng PDF. Tự động gắn thẻ tuân theo Đặc tả PDF được gắn thẻ tốt, được xác thực bằng veraPDF (sự hợp tác)
Bắt đầu sau 30 giây
Yêu cầu: Java 11+ và Python 3.10+ (Node.js | Java cũng có sẵn)
Trước khi bạn bắt đầu: chạy
java -version. Nếu không tìm thấy, hãy cài đặt JDK 11+ từ nhận nuôi.
pip install -U opendataloader-pdf
import opendataloader_pdf
# Batch all files in one call — each convert() spawns a JVM process, so repeated calls are slow
opendataloader_pdf.convert(
input_path=["file1.pdf", "file2.pdf", "folder/"],
output_dir="output/",
format="markdown,json"
)

Đầu ra PDF có chú thích - mỗi thành phần (tiêu đề, đoạn văn, bảng, hình ảnh) được phát hiện với các hộp giới hạn và loại ngữ nghĩa.
Điều này giải quyết được vấn đề gì?
| vấn đề | Giải pháp | Trạng thái |
|---|---|---|
| Cấu trúc PDF bị mất trong quá trình phân tích cú pháp — thứ tự đọc sai, bảng bị hỏng, không có tọa độ phần tử | PDF cục bộ xác định sang Markdown/JSON với các hộp giới hạn, thứ tự đọc XY-Cut++ | Đã vận chuyển |
| Bảng phức tạp, tệp PDF được quét, công thức, biểu đồ cần sự hiểu biết ở cấp độ AI | Chế độ kết hợp định tuyến các trang phức tạp đến phần phụ trợ AI (#1 về điểm chuẩn) | Đã vận chuyển |
| Chi phí khắc phục PDF thủ công — Các quy định về khả năng truy cập (EAA, ADA, Mục 508) yêu cầu các tệp PDF được gắn thẻ. Chi phí khắc phục thủ công là $50–200/tài liệu | Tự động gắn thẻ các tệp PDF không được gắn thẻ vào các tệp PDF được gắn thẻ (miễn phí, Apache 2.0). Nền tảng cho quy trình làm việc PDF/UA; Xuất PDF/UA-1/2 đầy đủ là một tiện ích bổ sung dành cho doanh nghiệp | Tự động gắn thẻ: Đã vận chuyển. Xuất PDF/UA: Doanh nghiệp |
Ma trận năng lực
| Khả năng | Được hỗ trợ | cấp |
|---|---|---|
| Trích xuất dữ liệu | ||
| Trích xuất văn bản với thứ tự đọc đúng | Có | miễn phí |
| Hộp giới hạn cho mọi phần tử | Có | miễn phí |
| Trích xuất bảng (viền đơn giản) | Có | miễn phí |
| Trích xuất bảng (phức tạp/không biên giới) | Có | Miễn phí (Kết hợp) |
| Phát hiện phân cấp tiêu đề | Có | miễn phí |
| Phát hiện danh sách (đánh số, dấu đầu dòng, lồng nhau) | Có | miễn phí |
| Trích xuất hình ảnh với tọa độ | Có | miễn phí |
| Biểu đồ AI/mô tả hình ảnh | Có | Miễn phí (Kết hợp) |
| OCR cho các tệp PDF được quét | Có | Miễn phí (Kết hợp) |
| Trích xuất công thức (LaTeX) | Có | Miễn phí (Kết hợp) |
| Được gắn thẻ trích xuất cấu trúc PDF | Có | miễn phí |
| An toàn AI (lọc tiêm nhắc nhở) | Có | miễn phí |
| Lọc đầu trang/chân trang/hình mờ | Có | miễn phí |
| Khả năng tiếp cận | ||
| Tự động gắn thẻ → PDF được gắn thẻ cho các tệp PDF không được gắn thẻ | Có | Miễn phí (Apache 2.0) |
| Xuất PDF/UA-1, PDF/UA-2 | 💼 Có sẵn | Doanh nghiệp |
| Studio trợ năng (trình chỉnh sửa trực quan) | 💼 Có sẵn | Doanh nghiệp |
| Hạn chế | ||
| Xử lý Word/Excel/PPT | Không | — |
| yêu cầu GPU | Không | — |
Điểm chuẩn khai thác
opendataloader-pdf [hybrid] xếp hạng tổng thể số 1 (0,907) về độ chính xác của thứ tự đọc, bảng và trích xuất tiêu đề.
| Động cơ | Nhìn chung | Thứ tự đọc | Bảng | tiêu đề | Tốc độ (giây/trang) | Giấy phép |
|---|---|---|---|---|---|---|
| trình tải dữ liệu mở [lai] | 0.907 | 0.934 | 0.928 | 0.821 | 0.463 | Apache-2.0 |
| chất dinh dưỡng | 0.885 | 0.925 | 0.708 | 0.819 | 0.008 | thương mại |
| ghi chép | 0.882 | 0.898 | 0.887 | 0.824 | 0.762 | MIT |
| điểm đánh dấu | 0.861 | 0.890 | 0.808 | 0.796 | 53.932 | GPL-3.0 |
| không có cấu trúc [hi_res] | 0.841 | 0.904 | 0.588 | 0.749 | 3.008 | Apache-2.0 |
| phân tích cú pháp | 0.837 | 0.894 | 0.717 | 0.706 | 0.036 | Apache-2.0 |
| trình tải dữ liệu mở | 0.831 | 0.902 | 0.489 | 0.739 | 0.015 | Apache-2.0 |
| minuru | 0.831 | 0.857 | 0.873 | 0.743 | 5.962 | AGPL-3.0 |
| pymupdf4llm | 0.732 | 0.885 | 0.401 | 0.412 | 0.091 | AGPL-3.0 |
| không có cấu trúc | 0.686 | 0.882 | 0.000 | 0.388 | 0.077 | Apache-2.0 |
| giảm giá | 0.589 | 0.844 | 0.273 | 0.000 | 0.114 | MIT |
| phân tích cú pháp | 0.576 | 0.866 | 0.000 | 0.000 | 1.061 | Apache-2.0 |
Điểm được chuẩn hóa thành [0, 1]. Cao hơn là tốt hơn cho độ chính xác; thấp hơn là tốt hơn cho tốc độ. Đậm = tốt nhất. Chi tiết điểm chuẩn đầy đủ
Tôi nên sử dụng chế độ nào?
| Tài liệu của bạn | Chế độ | cài đặt | Lệnh máy chủ | Lệnh khách hàng |
|---|---|---|---|---|
| PDF kỹ thuật số tiêu chuẩn | Nhanh (mặc định) | pip install opendataloader-pdf |
Không cần thiết | opendataloader-pdf file1.pdf file2.pdf folder/ |
| Các bảng phức tạp hoặc lồng nhau | lai | pip install "opendataloader-pdf[hybrid]" |
opendataloader-pdf-hybrid --port 5002 |
opendataloader-pdf --hybrid docling-fast file1.pdf file2.pdf folder/ |
| PDF được quét / dựa trên hình ảnh | Lai + OCR | pip install "opendataloader-pdf[hybrid]" |
opendataloader-pdf-hybrid --port 5002 --force-ocr |
opendataloader-pdf --hybrid docling-fast file1.pdf file2.pdf folder/ |
| Bản PDF được quét không phải tiếng Anh | Lai + OCR | pip install "opendataloader-pdf[hybrid]" |
opendataloader-pdf-hybrid --port 5002 --force-ocr --ocr-lang "ko,en" |
opendataloader-pdf --hybrid docling-fast file1.pdf file2.pdf folder/ |
| công thức toán học | Công thức lai + | pip install "opendataloader-pdf[hybrid]" |
opendataloader-pdf-hybrid --enrich-formula |
opendataloader-pdf --hybrid docling-fast --hybrid-mode full file1.pdf file2.pdf folder/ |
| Biểu đồ cần mô tả | Lai + hình ảnh | pip install "opendataloader-pdf[hybrid]" |
opendataloader-pdf-hybrid --enrich-picture-description |
opendataloader-pdf --hybrid docling-fast --hybrid-mode full file1.pdf file2.pdf folder/ |
| Các tệp PDF không được gắn thẻ cần có khả năng truy cập | Tự động gắn thẻ → PDF được gắn thẻ | pip install opendataloader-pdf |
Không cần thiết | opendataloader-pdf --format tagged-pdf file1.pdf file2.pdf folder/ |
Bắt đầu nhanh
Python
pip install -U opendataloader-pdf
import opendataloader_pdf
# Batch all files in one call — each convert() spawns a JVM process, so repeated calls are slow
opendataloader_pdf.convert(
input_path=["file1.pdf", "file2.pdf", "folder/"],
output_dir="output/",
format="markdown,json"
)
Node.js
npm install @opendataloader/pdf
import { convert } from '@opendataloader/pdf';
await convert(['file1.pdf', 'file2.pdf', 'folder/'], {
outputDir: 'output/',
format: 'markdown,json'
});
Java
<dependency>
<groupId>org.opendataloader</groupId>
<artifactId>opendataloader-pdf-core</artifactId>
</dependency>
Python Bắt đầu nhanh | Node.js Bắt đầu nhanh | Bắt đầu nhanh Java
Chế độ kết hợp: Độ chính xác số 1 cho các tệp PDF phức tạp
Chế độ kết hợp kết hợp xử lý Java cục bộ nhanh với chương trình phụ trợ AI. Các trang đơn giản vẫn ở trạng thái cục bộ (0,02 giây); các trang phức tạp định tuyến tới AI để có độ chính xác bảng +90%.
Đừng kết hợp với
--use-struct-treetrên các tệp PDF được gắn thẻ.--use-struct-treeđược ưu tiên, vì vậy phần phụ trợ kết hợp là không được gọi (một cảnh báo được ghi lại). Nếu bạn muốn phần phụ trợ lai, hãy thả--use-struct-tree.
pip install -U "opendataloader-pdf[hybrid]"
Nhà ga số 1 – Khởi động máy chủ phụ trợ:
opendataloader-pdf-hybrid --port 5002
Nhà ga số 2 - Xử lý tệp PDF:
# Batch all files in one call — each invocation spawns a JVM process, so repeated calls are slow
opendataloader-pdf --hybrid docling-fast file1.pdf file2.pdf folder/
Python:
# Batch all files in one call — each convert() spawns a JVM process, so repeated calls are slow
opendataloader_pdf.convert(
input_path=["file1.pdf", "file2.pdf", "folder/"],
output_dir="output/",
hybrid="docling-fast"
)
OCR cho các tệp PDF được quét
Bắt đầu phụ trợ với --force-ocr đối với các tệp PDF dựa trên hình ảnh không có văn bản có thể chọn:
opendataloader-pdf-hybrid --port 5002 --force-ocr
Đối với các tài liệu không phải tiếng Anh, hãy chỉ định ngôn ngữ:
opendataloader-pdf-hybrid --port 5002 --force-ocr --ocr-lang "ko,en"
Ngôn ngữ được hỗ trợ: en, ko, ja, ch_sim, ch_tra, de, fr, ar, và hơn thế nữa
Trích xuất công thức (LaTeX)
Trích xuất các công thức toán học dưới dạng LaTeX từ các tệp PDF khoa học:
# Server: enable formula enrichment
opendataloader-pdf-hybrid --enrich-formula
# Batch all files in one call — each invocation spawns a JVM process, so repeated calls are slow
opendataloader-pdf --hybrid docling-fast --hybrid-mode full file1.pdf file2.pdf folder/
Đầu ra trong JSON:
{
"type": "formula",
"page number": 1,
"bounding box": [226.2, 144.7, 377.1, 168.7],
"content": "\\frac{f(x+h) - f(x)}{h}"
}
Lưu ý: Yêu cầu làm phong phú thêm công thức và mô tả hình ảnh
--hybrid-mode fullvề phía khách hàng.
Biểu đồ & Hình ảnh Mô tả
Tạo mô tả AI cho biểu đồ và hình ảnh — hữu ích cho văn bản thay thế trợ năng và tìm kiếm RAG:
# Server
opendataloader-pdf-hybrid --enrich-picture-description
# Batch all files in one call — each invocation spawns a JVM process, so repeated calls are slow
opendataloader-pdf --hybrid docling-fast --hybrid-mode full file1.pdf file2.pdf folder/
Đầu ra trong JSON:
{
"type": "picture",
"page number": 1,
"bounding box": [72.0, 400.0, 540.0, 650.0],
"description": "A bar chart showing waste generation by region from 2016 to 2030..."
}
Sử dụng SmolVLM (256M), một mẫu thị giác nhẹ. Lời nhắc tùy chỉnh được hỗ trợ qua
--picture-description-prompt.
Tích hợp trình tải dữ liệu Hancom - Sắp ra mắt
Phân tích tài liệu AI cấp doanh nghiệp thông qua Trình tải dữ liệu Hancom — các mô hình do khách hàng tùy chỉnh được đào tạo trên các tài liệu dành riêng cho miền của bạn. Hơn 30 loại phần tử (bảng, biểu đồ, công thức, chú thích, chú thích cuối trang, v.v.), hiểu hình ảnh/biểu đồ dựa trên VLM, trích xuất bảng phức tạp (các ô đã hợp nhất, bảng lồng nhau), OCR được hỗ trợ SLA cho các tài liệu được quét và hỗ trợ HWP/HWPX gốc. Hỗ trợ PDF, DOCX, XLSX, PPTX, HWP, PNG, JPG. Bản trình diễn trực tiếp
Định dạng đầu ra
| định dạng | Trường hợp sử dụng |
|---|---|
| JSON | Dữ liệu có cấu trúc với các hộp giới hạn, các kiểu ngữ nghĩa |
| Giảm giá | Làm sạch văn bản cho ngữ cảnh LLM, khối RAG |
| HTML | Hiển thị web với kiểu dáng |
| PDF có chú thích | Gỡ lỗi trực quan - xem các cấu trúc được phát hiện (mẫu vật) |
| văn bản | Trích xuất văn bản thuần túy |
Kết hợp các định dạng: format="json,markdown"
Ví dụ đầu ra JSON
{
"type": "heading",
"id": 42,
"level": "Title",
"page number": 1,
"bounding box": [72.0, 700.0, 540.0, 730.0],
"heading level": 1,
"font": "Helvetica-Bold",
"font size": 24.0,
"text color": "[0.0]",
"content": "Introduction"
}
| trường | Mô tả |
|---|---|
type |
Loại phần tử: tiêu đề, đoạn văn, bảng, danh sách, hình ảnh, chú thích, công thức |
id |
Mã định danh duy nhất để tham khảo chéo |
page number |
Tham khảo trang 1 chỉ mục |
bounding box |
[left, bottom, right, top] bằng điểm PDF (72pt = 1 inch) |
heading level |
Độ sâu tiêu đề (1+) |
content |
Văn bản được trích xuất |
Tính năng nâng cao
Được gắn thẻ Hỗ trợ PDF
Khi một tệp PDF có các thẻ cấu trúc, OpenDataLoader sẽ trích xuất bố cục chính xác tác giả dự định - không đoán, không phỏng đoán. Các tiêu đề, danh sách, bảng và thứ tự đọc được giữ nguyên từ nguồn.
Chất lượng đầu ra phụ thuộc vào chất lượng thẻ. Không phải tất cả các tệp PDF được gắn thẻ đều được gắn thẻ tốt. Đối với các tệp PDF có thẻ thưa thớt hoặc không chính xác, chế độ phỏng đoán mặc định hoặc
--hybrid docling-fastthường mang lại kết quả tốt hơn.
--use-struct-treeđược ưu tiên hơn--hybrid. Nếu cả hai được đặt trên một tệp PDF được gắn thẻ thì cây cấu trúc sẽ được sử dụng và phần phụ trợ kết hợp sẽ được sử dụng không được gọi (một tệp PDF được gắn thẻ tốt đã có thứ tự và cấu trúc đọc). Thả--use-struct-treethay vào đó nếu bạn muốn phần phụ trợ kết hợp.
# Batch all files in one call — each convert() spawns a JVM process, so repeated calls are slow
opendataloader_pdf.convert(
input_path=["file1.pdf", "file2.pdf", "folder/"],
output_dir="output/",
use_struct_tree=True # Use native PDF structure tags
)
Hầu hết các trình phân tích cú pháp PDF hoàn toàn bỏ qua các thẻ cấu trúc. Tìm hiểu thêm
An toàn AI: Bảo vệ tiêm nhắc nhở
Các tệp PDF có thể chứa các cuộc tấn công tiêm nhắc nhanh chóng ẩn. OpenDataLoader tự động lọc:
- Văn bản ẩn (phông chữ trong suốt, kích thước bằng 0)
- Nội dung ngoài trang
- Các lớp vô hình đáng ngờ
Để vệ sinh dữ liệu nhạy cảm (email, URL, số điện thoại → phần giữ chỗ), hãy bật dữ liệu đó một cách rõ ràng:
# Batch all files in one call — each invocation spawns a JVM process, so repeated calls are slow
opendataloader-pdf file1.pdf file2.pdf folder/ --sanitize
Tích hợp LangChain
pip install -U langchain-opendataloader-pdf
from langchain_opendataloader_pdf import OpenDataLoaderPDFLoader
loader = OpenDataLoaderPDFLoader(
file_path=["file1.pdf", "file2.pdf", "folder/"],
format="text"
)
documents = loader.load()
LangChain Tài liệu | GitHub | PyPI
Tùy chọn nâng cao
# Batch all files in one call — each convert() spawns a JVM process, so repeated calls are slow
opendataloader_pdf.convert(
input_path=["file1.pdf", "file2.pdf", "folder/"],
output_dir="output/",
format="json,markdown,pdf",
image_output="embedded", # "off", "embedded" (Base64), or "external" (default)
image_format="jpeg", # "png" or "jpeg"
use_struct_tree=True, # Use native PDF structure
)
Khả năng truy cập PDF & Chuyển đổi PDF/UA
vấn đề: Hàng triệu tệp PDF hiện có thiếu thẻ cấu trúc, không tuân thủ các quy định về khả năng truy cập (EAA, ADA/Mục 508, Đạo luật bao gồm kỹ thuật số Hàn Quốc). Chi phí khắc phục thủ công là 50–200 USD cho mỗi tài liệu và không mở rộng quy mô.
Cách tiếp cận của OpenDataLoader: Được xây dựng với sự cộng tác của Hiệp hội PDF và Phòng thí nghiệm kép (nhà phát triển của veraPDF, trình xác thực PDF/A và PDF/UA mã nguồn mở tham khảo trong ngành). Tự động gắn thẻ tuân theo Đặc tả PDF được gắn thẻ tốt và được xác thực theo chương trình bằng veraPDF — kiểm tra sự tuân thủ tự động theo các tiêu chuẩn trợ năng PDF chứ không phải xem xét thủ công. Hiện tại, không có công cụ nguồn mở nào tạo các tệp PDF được gắn thẻ từ đầu đến cuối — hầu hết đều dựa vào SDK độc quyền cho bước viết thẻ. OpenDataLoader thực hiện tất cả trong Apache 2.0. (chi tiết hợp tác)
| quy định | thời hạn | Yêu cầu |
|---|---|---|
| Đạo luật Tiếp cận Châu Âu (EAA) | Ngày 28 tháng 6 năm 2025 | Các sản phẩm kỹ thuật số có thể truy cập trên khắp EU |
| ADA & Mục 508 | Có hiệu lực | Các cơ quan liên bang và chỗ ở công cộng của Hoa Kỳ |
| Đạo luật hòa nhập kỹ thuật số | Có hiệu lực | Khả năng tiếp cận dịch vụ kỹ thuật số của Hàn Quốc |
Tiêu chuẩn & Xác nhận
| Khía cạnh | Chi tiết |
|---|---|
| Đặc điểm kỹ thuật | PDF được gắn thẻ tốt bởi Hiệp hội PDF |
| Xác thực | veraPDF — trình xác thực PDF/A & PDF/UA mã nguồn mở tham khảo trong ngành |
| Cộng tác | Hiệp hội PDF + Phòng thí nghiệm kép (nhà phát triển veraPDF) cùng phát triển tính năng gắn thẻ và xác thực |
| Giấy phép | Tự động gắn thẻ → PDF được gắn thẻ: Apache 2.0 (miễn phí). Xuất PDF/UA: Doanh nghiệp |
Quy trình tiếp cận
| Bước | tính năng | Trạng thái | cấp |
|---|---|---|---|
| 1. Kiểm toán | Đọc các thẻ PDF hiện có, phát hiện các tệp PDF không được gắn thẻ | Đã vận chuyển | miễn phí |
| 2. Tự động gắn thẻ → PDF được gắn thẻ | Tạo thẻ cấu trúc cho các tệp PDF không được gắn thẻ | Đã vận chuyển | Miễn phí (Apache 2.0) |
| 3. Xuất PDF/UA | Chuyển đổi sang các tệp tương thích PDF/UA-1 hoặc PDF/UA-2 | 💼 Có sẵn | Doanh nghiệp |
| 4. Chỉnh sửa trực quan | Studio trợ năng - xem xét và sửa thẻ | 💼 Có sẵn | Doanh nghiệp |
💼 Tính năng dành cho doanh nghiệp có sẵn theo yêu cầu. Liên hệ với chúng tôi để bắt đầu.
Tự động gắn thẻ
Tạo các tệp PDF được gắn thẻ từ các tệp PDF không được gắn thẻ - đầu ra là tệp PDF sẵn sàng cho trình đọc màn hình với các thẻ cấu trúc (tiêu đề, đoạn văn, danh sách, bảng, thứ tự đọc).
import opendataloader_pdf
# Untagged PDF in → Tagged PDF out
opendataloader_pdf.convert(
input_path=["file1.pdf", "file2.pdf", "folder/"],
output_dir="output/",
format="tagged-pdf"
)
# CLI
opendataloader-pdf --format tagged-pdf file1.pdf file2.pdf folder/
Kết hợp với các định dạng khác: format="json,tagged-pdf".
Quy trình làm việc tuân thủ từ đầu đến cuối
Existing PDFs (untagged)
│
▼
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐ ┌──────────────────┐
│ 1. Audit │───>│ 2. Auto-Tag │───>│ 3. Export │───>│ 4. Studio │
│ (check tags) │ │ (→ Tagged PDF) │ │ (PDF/UA) │ │ (visual editor) │
└─────────────────┘ └──────────────────┘ └─────────────────┘ └──────────────────┘
│ │ │ │
▼ ▼ ▼ ▼
use_struct_tree format="tagged-pdf" PDF/UA export Accessibility Studio
(Available now) (Available, Apache 2.0) (Enterprise) (Enterprise)
Lộ trình
| tính năng | Dòng thời gian | cấp |
|---|---|---|
| Trình tải dữ liệu Hancom — Phân tích tài liệu AI doanh nghiệp, mô hình tùy chỉnh của khách hàng, hiểu biểu đồ/hình ảnh dựa trên VLM, OCR cấp sản xuất | Q2-Q3 2026 | Đã lên kế hoạch |
| Xác thực cấu trúc - Xác minh cây thẻ PDF | Quý 3 năm 2026 | Đã lên kế hoạch |
Câu hỏi thường gặp
Trình phân tích cú pháp PDF tốt nhất cho RAG là gì?
Đối với quy trình RAG, bạn cần một trình phân tích cú pháp có khả năng bảo toàn cấu trúc tài liệu, duy trì thứ tự đọc chính xác và cung cấp tọa độ phần tử cho các trích dẫn. OpenDataLoader được thiết kế đặc biệt cho mục đích này — nó xuất ra JSON có cấu trúc với các hộp giới hạn, xử lý bố cục nhiều cột bằng XY-Cut++ và chạy cục bộ mà không cần GPU. Ở chế độ kết hợp, nó đứng số 1 về tổng thể (0,907) trong điểm chuẩn.
Trình phân tích cú pháp PDF nguồn mở tốt nhất là gì?
OpenDataLoader PDF là trình phân tích cú pháp nguồn mở duy nhất kết hợp: trích xuất xác định dựa trên quy tắc (không có GPU), hộp giới hạn cho mọi phần tử, thứ tự đọc XY-Cut++, bộ lọc an toàn AI tích hợp, hỗ trợ PDF được gắn thẻ gốc và chế độ AI lai cho các tài liệu phức tạp. Nó xếp hạng số 1 về độ chính xác tổng thể (0,907) khi chạy cục bộ trên CPU.
Làm cách nào để trích xuất bảng từ PDF cho LLM?
OpenDataLoader phát hiện các bảng bằng cách sử dụng phân tích đường viền và phân cụm văn bản, bảo toàn cấu trúc hàng/cột. Đối với các bảng phức tạp, hãy bật chế độ kết hợp để cải thiện độ chính xác +90% (điểm 0,489 đến 0,928 TEDS):
# Batch all files in one call — each convert() spawns a JVM process, so repeated calls are slow
opendataloader_pdf.convert(
input_path=["file1.pdf", "file2.pdf", "folder/"],
output_dir="output/",
format="json",
hybrid="docling-fast" # For complex tables
)
Nó so sánh với docling, marker hoặc pymupdf4llm như thế nào?
OpenDataLoader [hybrid] xếp hạng tổng thể số 1 (0,907) về độ chính xác của thứ tự đọc, bảng và tiêu đề. Điểm khác biệt chính: docling (0,882) mạnh nhưng thiếu hộp giới hạn và bộ lọc an toàn AI. điểm đánh dấu (0,861) yêu cầu GPU và chậm hơn 1000 lần (53,932 giây/trang). pymupdf4llm (0,732) nhanh nhưng có độ chính xác của bảng (0,401) và tiêu đề (0,412) kém. OpenDataLoader là trình phân tích cú pháp duy nhất kết hợp trích xuất cục bộ xác định, các hộp giới hạn cho mọi phần tử và tính năng bảo vệ nhắc nhở tích hợp sẵn. Xem điểm chuẩn đầy đủ.
Tôi có thể sử dụng tính năng này mà không gửi dữ liệu lên đám mây không?
Đúng. OpenDataLoader chạy cục bộ 100%. Không có lệnh gọi API, không truyền dữ liệu — tài liệu của bạn không bao giờ rời khỏi môi trường của bạn. Phần phụ trợ của chế độ kết hợp cũng chạy cục bộ trên máy của bạn. Lý tưởng cho các tài liệu pháp lý, y tế và tài chính.
Nó có hỗ trợ OCR cho các tệp PDF được quét không?
Có, thông qua chế độ kết hợp. Cài đặt với pip install "opendataloader-pdf[hybrid]", bắt đầu phần phụ trợ với --force-ocr, sau đó xử lý như bình thường. Hỗ trợ nhiều ngôn ngữ bao gồm tiếng Hàn, tiếng Nhật, tiếng Trung, tiếng Ả Rập và nhiều ngôn ngữ khác thông qua --ocr-lang.
Nó có hoạt động với các tài liệu tiếng Hàn, tiếng Nhật hoặc tiếng Trung không?
Đúng. Đối với các tệp PDF kỹ thuật số, việc trích xuất văn bản hoạt động tốt. Đối với các tệp PDF được quét, hãy sử dụng chế độ kết hợp với --force-ocr --ocr-lang "ko,en" (hoặc ja, ch_sim, ch_tra). Sắp có: Trình tải dữ liệu Hancom tích hợp - phân tích tài liệu AI cấp doanh nghiệp với OCR cấp sản xuất tích hợp sẵn và các mô hình do khách hàng tùy chỉnh được tối ưu hóa cho các loại tài liệu và quy trình công việc cụ thể của bạn.
Nó nhanh đến mức nào?
Chế độ cục bộ xử lý hơn 60 trang mỗi giây trên CPU (0,02 giây/trang). Chế độ kết hợp xử lý hơn 2 trang mỗi giây (0,46 giây/trang) với độ chính xác cao hơn đáng kể đối với các tài liệu phức tạp. Không cần GPU. Điểm chuẩn trên Apple M4. Chi tiết điểm chuẩn đầy đủ. Với xử lý hàng loạt nhiều quy trình, thông lượng vượt quá 100 trang mỗi giây trên các máy có 8 lõi trở lên.
Nó có xử lý bố cục nhiều cột không?
Đúng. OpenDataLoader sử dụng phân tích thứ tự đọc XY-Cut++ để sắp xếp văn bản một cách chính xác trên các trang nhiều cột, thanh bên và bố cục hỗn hợp. Điều này hoạt động ở cả chế độ cục bộ và kết hợp mà không cần bất kỳ cấu hình nào.
Chế độ kết hợp là gì?
Chế độ kết hợp kết hợp xử lý Java cục bộ nhanh với chương trình phụ trợ AI. Các trang đơn giản được xử lý cục bộ (0,02 giây/trang); các trang phức tạp (bảng, nội dung được quét, công thức, biểu đồ) được tự động chuyển đến phần phụ trợ AI để có độ chính xác cao hơn. Phần phụ trợ chạy cục bộ trên máy của bạn - không cần đám mây. Xem Tôi nên sử dụng chế độ nào? và Hướng dẫn chế độ kết hợp.
Nó có hoạt động với LangChain không?
Đúng. Cài đặt langchain-opendataloader-pdf để tích hợp trình tải tài liệu LangChain chính thức. Xem LangChain tài liệu.
Làm cách nào để tách các tệp PDF cho RAG?
OpenDataLoader xuất ra Markdown có cấu trúc với các tiêu đề, bảng và danh sách được giữ nguyên — đầu vào lý tưởng cho việc phân chia ngữ nghĩa. Mỗi phần tử trong đầu ra JSON bao gồm type, heading levelvà page number, do đó bạn có thể chia theo phần hoặc ranh giới trang. Đối với hầu hết các đường dẫn RAG: phân tích cú pháp bằng format="markdown" cho các đoạn văn bản, hoặc format="json" khi bạn cần kiểm soát cấp độ phần tử. Ghép nối với LangChain RecursiveCharacterTextSplitter hoặc bộ chia dựa trên tiêu đề của riêng bạn để có kết quả tốt nhất.
Làm cách nào để trích dẫn nguồn PDF trong câu trả lời RAG?
Mọi phần tử trong đầu ra JSON đều bao gồm một bounding box ([left, bottom, right, top] trong các điểm PDF) và page number. Khi đường dẫn RAG của bạn trả về câu trả lời, hãy ánh xạ đoạn nguồn trở lại hộp giới hạn của nó để đánh dấu vị trí chính xác trong tệp PDF gốc. Điều này cho phép trải nghiệm người dùng "nhấp vào nguồn" - người dùng xem đoạn, bảng hoặc hình nào chứa câu trả lời. Theo mặc định, không có trình phân tích cú pháp nguồn mở nào khác cung cấp các hộp giới hạn cho mọi phần tử.
Làm cách nào để chuyển đổi PDF sang Markdown cho LLM?
import opendataloader_pdf
# Batch all files in one call — each convert() spawns a JVM process, so repeated calls are slow
opendataloader_pdf.convert(
input_path=["file1.pdf", "file2.pdf", "folder/"],
output_dir="output/",
format="markdown"
)
OpenDataLoader duy trì hệ thống phân cấp tiêu đề, cấu trúc bảng và thứ tự đọc trong đầu ra Markdown. Đối với các tài liệu phức tạp có bảng không viền hoặc các trang được quét, hãy sử dụng chế độ kết hợp (hybrid="docling-fast") cho độ chính xác cao hơn. Đầu ra đủ sạch để cấp trực tiếp vào cửa sổ ngữ cảnh LLM hoặc đường dẫn phân đoạn RAG.
Có công cụ khắc phục khả năng truy cập PDF tự động không?
Đúng. OpenDataLoader là công cụ nguồn mở đầu tiên tự động hóa khả năng truy cập PDF từ đầu đến cuối. Được xây dựng với sự cộng tác của Hiệp hội PDF và Phòng thí nghiệm kép (nhà phát triển veraPDF), tính năng tự động gắn thẻ tuân theo đặc tả PDF được gắn thẻ tốt và được xác thực theo chương trình bằng veraPDF. Công cụ phân tích bố cục phát hiện cấu trúc tài liệu (tiêu đề, bảng, danh sách, thứ tự đọc) và tự động tạo thẻ trợ năng. Tính năng tự động gắn thẻ sẽ chuyển đổi các tệp PDF không được gắn thẻ thành các tệp PDF được gắn thẻ trong Apache 2.0 — không có phần phụ thuộc SDK độc quyền. sử dụng format="tagged-pdf" (Python/Node.js) hoặc --format tagged-pdf (CLI). Đối với các tổ chức cần tuân thủ đầy đủ PDF/UA, các tiện ích bổ sung dành cho doanh nghiệp cung cấp tính năng xuất PDF/UA và trình chỉnh sửa thẻ trực quan. Điều này thay thế các quy trình khắc phục thủ công thường có giá từ 50–200 USD+ cho mỗi tài liệu.
Đây có thực sự là công cụ tự động gắn thẻ PDF nguồn mở đầu tiên không?
Đúng. Các công cụ hiện tại phụ thuộc vào SDK độc quyền để viết thẻ cấu trúc, chỉ xuất ra các định dạng không phải PDF (ví dụ: Docling xuất ra Markdown/JSON nhưng không thể tạo ra các tệp PDF được gắn thẻ) hoặc yêu cầu can thiệp thủ công. OpenDataLoader là công cụ đầu tiên thực hiện phân tích bố cục → tạo thẻ → Đầu ra PDF được gắn thẻ hoàn toàn theo giấy phép nguồn mở (Apache 2.0), không có sự phụ thuộc độc quyền. Tự động gắn thẻ tuân theo đặc tả PDF được gắn thẻ tốt của Hiệp hội PDF và được xác thực bằng veraPDF, trình xác thực PDF/A và PDF/UA nguồn mở tham khảo trong ngành.
Làm cách nào để chuyển đổi các tệp PDF hiện có sang PDF/UA?
OpenDataLoader cung cấp quy trình từ đầu đến cuối: kiểm tra các tệp PDF hiện có để tìm thẻ (use_struct_tree=True), tự động gắn thẻ các tệp PDF không được gắn thẻ vào các tệp PDF được gắn thẻ (format="tagged-pdf", miễn phí theo Apache 2.0) và xuất dưới dạng PDF/UA-1 hoặc PDF/UA-2 (tiện ích bổ sung dành cho doanh nghiệp). Tự động gắn thẻ tuân theo đặc tả PDF được gắn thẻ tốt của Hiệp hội PDF và được xác thực bằng veraPDF. Tính năng tự động gắn thẻ sẽ tạo ra PDF được gắn thẻ; Xuất PDF/UA là bước cuối cùng. Liên hệ với chúng tôi cho sự hội nhập của doanh nghiệp.
Làm cách nào để tôi có thể truy cập được các tệp PDF của mình để tuân thủ EAA?
Đạo luật Tiếp cận Châu Âu yêu cầu các sản phẩm kỹ thuật số có thể truy cập chậm nhất vào ngày 28 tháng 6 năm 2025. OpenDataLoader hỗ trợ toàn bộ quy trình khắc phục: kiểm tra → tự động gắn thẻ → PDF được gắn thẻ → xuất PDF/UA. Tính năng tự động gắn thẻ tuân theo đặc tả PDF được gắn thẻ tốt của Hiệp hội PDF và được xác thực bằng veraPDF, đảm bảo đầu ra tuân thủ các tiêu chuẩn. Tự động gắn thẻ vào PDF được gắn thẻ là nguồn mở trong Apache 2.0. Studio hỗ trợ xuất và xuất PDF/UA là các tiện ích bổ sung dành cho doanh nghiệp. Xem của chúng tôi Hướng dẫn trợ năng.
OpenDataLoader PDF có miễn phí không?
Thư viện cốt lõi là nguồn mở theo Apache 2.0 - miễn phí cho mục đích sử dụng thương mại. Điều này bao gồm tất cả các tính năng trích xuất (văn bản, bảng, hình ảnh, OCR, công thức, biểu đồ thông qua chế độ kết hợp), bộ lọc an toàn AI, hỗ trợ PDF được gắn thẻ và tự động gắn thẻ vào PDF được gắn thẻ. Chúng tôi cam kết giữ quy trình truy cập cốt lõi (phân tích bố cục → tự động gắn thẻ → PDF được gắn thẻ) miễn phí và là nguồn mở. Các tiện ích bổ sung dành cho doanh nghiệp (xuất PDF/UA, studio trợ năng) có sẵn cho các tổ chức cần tuân thủ quy định từ đầu đến cuối.
Tại sao giấy phép thay đổi từ MPL 2.0 sang Apache 2.0?
MPL 2.0 yêu cầu copyleft ở cấp độ tệp, thường kích hoạt đánh giá pháp lý trước khi áp dụng cho doanh nghiệp. Apache 2.0 hoàn toàn cho phép - không có nghĩa vụ copyleft, dễ tích hợp hơn vào các dự án thương mại. Nếu bạn đang sử dụng phiên bản trước 2.0, phiên bản đó vẫn ở mức MPL 2.0 và bạn có thể tiếp tục sử dụng. Nâng cấp lên 2.0+ có nghĩa là dự án của bạn tuân theo các điều khoản của Apache 2.0, dễ dãi hơn — không có nghĩa vụ bổ sung, không cần thực hiện hành động nào từ phía bạn.
Tài liệu
- Bắt đầu nhanh (Python)
- Bắt đầu nhanh (Node.js)
- Bắt đầu nhanh (Java)
- Tham chiếu lược đồ JSON
- CLI Tùy chọn
- Hướng dẫn chế độ kết hợp
- Được gắn thẻ Hỗ trợ PDF
- Tính năng an toàn AI
- Khả năng truy cập PDF
Đóng góp
Chúng tôi hoan nghênh những đóng góp! Xem ĐÓNG GÓP.md để biết hướng dẫn.
Giấy phép
Lưu ý: Các phiên bản trước 2.0 được cấp phép theo Giấy phép Công cộng Mozilla 2.0.
Tìm thấy điều này hữu ích? Hãy cho chúng tôi một ngôi sao để giúp những người khác khám phá OpenDataLoader.
Dự án cùng danh mục
Nền tảng phát triển Postgres. Supabase cung cấp cho bạn cơ sở dữ liệu Postgres chuyên dụng để xây dựng các ứng dụng web, thiết bị di động và AI của bạn.
Kỹ thuật đảo ngược / Kiểm tra thâm nhập được ủy quyền / Gói bộ định tuyến kỹ năng nghiên cứu bảo mật Định tuyến được hỗ trợ bởi AI + Khởi động chuỗi công cụ theo yêu cầu + Cơ sở kiến thức tự phát triển Hỗ trợ Claude Code, Kiro, Cursor, Cline và các ứng dụng khách mã hóa AI khác 逆向/渗透/安全技能路由包 - AI 自动路由 +按需自举工具链 + 自动进化经验库 | 支持 Claude Code / Kiro / Cursor / Cline 等代码 AI 客户端
Chỉ mục vectơ được xây dựng trên TurboQuant, được viết bằng Rust với các liên kết Python
Khung trí tuệ tài liệu đa ngôn ngữ có lõi Rust. Trích xuất văn bản, siêu dữ liệu, hình ảnh và dữ liệu có cấu trúc từ 101 định dạng (115 phần mở rộng tệp) cộng với mã thông minh cho 371 ngôn ngữ mã. 15 liên kết ngôn ngữ — Rust, Python, Ruby, Java, Go, PHP, Elixir, C#, TypeScript — cộng với máy chủ CLI, REST API và MCP.
Độ chính xác cao RAG để trả lời các câu hỏi từ tài liệu khoa học có trích dẫn

