PDF không chết — nó chỉ đang làm khổ AI của bạn

PDF không chết — nó chỉ đang làm khổ AI của bạn

Ai cũng bận chạy theo model mới, trong khi pipeline AI vẫn sập vì một file PDF scan mờ. Chuyện thật 100%.

Khi nền móng lung lay, tòa nhà đẹp mấy cũng nứt

Giả sử bạn xây một pipeline RAG xịn sò: model Anthropic mới nhất, vector database tối ưu, prompt engineering đã qua 15 vòng A/B test. Mọi thứ chạy ngon lành — cho đến khi ai đó upload một file hợp đồng bảo hiểm scan bằng máy photocopy đời 2010.

Kết quả? Model trả lời tự tin rằng "khoản bồi thường tối đa là 500 triệu" trong khi hợp đồng ghi 5 tỷ. Vấn đề không nằm ở model. Vấn đề nằm ở bước đầu tiên mà ai cũng coi nhẹ: parse tài liệu.

LlamaIndex vừa nhìn lại một năm phát triển LlamaParse — công cụ chuyên xử lý đống tài liệu "khó nhằn" này. Và câu chuyện của họ phơi bày một sự thật mà nhiều team đang né tránh: AI của bạn chỉ thông minh bằng đúng dữ liệu nó được đọc.

Khoan — parse tài liệu khó ở chỗ nào?

Thử lật ngược vấn đề: bạn tưởng PDF là "file text có format đẹp" — nhưng không phải. PDF về bản chất là một tập hợp instructions để vẽ ký tự lên trang, không phải để đọc. Mỗi chữ cái được đặt tại một tọa độ pixel cụ thể. Không có khái niệm "đoạn văn", "bảng", hay "tiêu đề" trong file PDF — tất cả chỉ là hình vẽ.

Giờ thêm gia vị: tài liệu scan (hình ảnh, không có text layer), bảng biểu lồng nhau, header/footer lặp lại trên mỗi trang, watermark chồng lên nội dung, và font tiếng Việt có dấu đôi khi bị OCR biến thành ký tự ngoài hành tinh.

Đây chính là vùng đất mà LlamaParse đang giải quyết — và cũng là nơi mà nhiều team bỏ cuộc sớm, chuyển sang phương án "cho intern đọc tay rồi nhập lại vào Excel".

Hai kịch bản "đời thật" mà team Việt Nam hay gặp

Kịch bản 1: Team fintech xử lý hóa đơn

Giả sử team bạn 4 người, đang xây tính năng tự động trích xuất thông tin từ hóa đơn VAT. Mỗi ngày có khoảng 200 hóa đơn — đủ loại format: PDF xuất từ phần mềm kế toán, ảnh chụp từ điện thoại, scan từ máy in đa năng.

Bạn thử dùng thư viện PyMuPDF hoặc pdfplumber — chạy ngon với PDF "sạch", nhưng gặp hóa đơn scan là trả về chuỗi rỗng. Thêm Tesseract OCR thì tiếng Việt có dấu ra sai tùm lum: "Hồ Chí Minh" thành "Hô Chi Minh", số tiền "1.500.000" thành "l.500.OOO".

Tóm gọn: garbage in, garbage out — model AI phía sau dù xịn đến mấy cũng không cứu được khi dữ liệu đầu vào đã sai từ gốc.

Kịch bản 2: Công ty bảo hiểm review hồ sơ bồi thường

Hồ sơ bồi thường bảo hiểm là một "quái vật" thật sự: hàng chục trang, mix giữa form điền tay, bảng kê chi phí, biên bản giám định, và ảnh chụp thiệt hại. Team legal cần extract thông tin từ hàng nghìn hồ sơ như vậy để phân loại và ưu tiên xử lý.

Chuyện đáng chú ý từ phía LlamaIndex: ngay cả tài liệu pháp lý tiếng Anh — vốn "sạch" hơn nhiều so với giấy tờ Việt Nam — cũng khiến các parser truyền thống chào thua vì layout phức tạp, bảng biểu nhiều cột, và text bị cắt ngang giữa hai trang. LlamaParse tiếp cận bằng multimodal AI để "nhìn" trang tài liệu như con người nhìn, thay vì chỉ extract text thô.

Cái bẫy "demo đẹp, production khóc"

Mình gọi đây là "hội chứng demo đẹp": team build pipeline, test với 10 file PDF sạch sẽ, demo thành công, cả phòng vỗ tay. Rồi đưa lên production, gặp file thật — scan nghiêng 5 độ, chữ mờ, có cả dấu ghim giấy in hằn lên trang — pipeline sập không kèn không trống.

Giống xây nhà trên cát: tầng trệt nhìn ổn, nhưng lên tầng hai là rung. Document parsing chính là phần móng — không ai muốn khoe trong sprint review, nhưng thiếu nó thì toàn bộ kiến trúc phía trên đều lung lay.

Một sai lầm nữa: hardcode logic parse cho một loại tài liệu cụ thể, rồi ngạc nhiên khi khách hàng gửi tài liệu format hơi khác một chút là hệ thống "đứng hình". LlamaParse đi hướng khác — dùng AI model để hiểu ngữ nghĩa của layout, nên linh hoạt hơn đáng kể so với rule-based parsing truyền thống.

Thử ngay chiều nay — 5 bước kiểm tra sức khỏe pipeline

Muốn biết bước parse tài liệu của bạn đang ở mức nào? Không cần deploy gì cả:

Bước 1: Lấy 5 file tài liệu "xấu nhất" mà hệ thống bạn từng gặp — scan mờ, bảng phức tạp, mix ngôn ngữ Việt-Anh.

Bước 2: Chạy qua parser hiện tại (PyMuPDF, pdfplumber, Tesseract, hay bất kỳ tool nào đang dùng). Lưu kết quả text output.

Bước 3: Đăng ký tài khoản LlamaParse (có free tier — 1.000 trang/ngày tại thời điểm viết bài) và chạy cùng 5 file đó:

from llama_cloud import LlamaParse

parser = LlamaParse(result_type="markdown")
documents = parser.load_data("ho-so-boi-thuong.pdf")
print(documents[0].text)

Bước 4: So sánh: bảng biểu có giữ đúng cấu trúc không? Số liệu có chính xác không? Tiếng Việt có dấu còn nguyên vẹn không?

Bước 5: Nhân sai lệch phát hiện được với số tài liệu mỗi ngày — đó là "nợ kỹ thuật" thầm lặng mà team bạn đang gánh.

Open-source có gì trong tay?

LlamaParse là sản phẩm thương mại, nhưng LlamaIndex — framework đằng sau — hoàn toàn open-source. Nếu bạn muốn tự xây, vài lựa chọn đáng thử:

Mỗi tool như một loại vật liệu xây dựng khác nhau: không có loại nào "tốt nhất" — chỉ có loại phù hợp nhất với công trình bạn đang xây. Điều quan trọng là đừng bỏ qua bước móng chỉ vì nó không glamorous.

Nhìn xa hơn một bước parse

Sau một năm, LlamaParse đã mở rộng từ "chỉ parse PDF" sang cả nền tảng document automation — bao gồm extract, index, và kết nối vào workflow AI. Hướng đi này hợp lý: parse tài liệu không phải đích đến, mà là bước đầu tiên trong chuỗi dài hơn — từ parse, sang chunk, embed, rồi mới đến phần mà ai cũng thích khoe là "AI trả lời câu hỏi".

Với team Việt Nam — nơi hóa đơn đỏ, hợp đồng scan, và biên bản họp viết tay vẫn là "đặc sản quốc dân" — đầu tư vào document parsing pipeline không phải chuyện xa xỉ. Nó là chuyện sống còn.

Spoiler: không có silver bullet cho document parsing. Nhưng nếu bạn vẫn đang để intern copy-paste từ PDF vào spreadsheet, thì ít nhất bây giờ bạn biết mình có lựa chọn khác — và buổi chiều nay là đủ thời gian để thử.

---

Bụi Wire — nghiện đọc release notes lúc 2 giờ sáng

Nguồn tham khảo