Firecrawl nyílt forráskódú pdf-ellenőr: PDF-ből Markdown ezredmásodperc alatt, OCR nélkül
A Firecrawl, a webkaparó eszközeiről ismert Y Combinator startup nyílt forráskódú pdf-ellenőrrel rendelkezik – egy Rust-könyvtár, amely ezredmásodpercek alatt kitalálja, hogy a PDF szöveg alapú-e vagy szkennelés, és a szövegalapú dokumentumokat OCR nélkül tiszta Markdown-okká alakítja. A csapat becslése szerint a valós munkaterhelésben lévő PDF-fájlok körülbelül 54%-a szövegalapú, így értelmetlen a lassú, drága OCR-en keresztül futtatni őket.
Ha valaha betáplált egy PDF-fájlt egy modellbe – szerződés, jelentés, könyv –, akkor ismeri az érzést: a fájl jól megnyílik, de a szöveg nem másolódik át, vagy szemétként másolódik. A klasszikus elemzők vagy megfulladnak az asztaloktól, vagy minden oldalt átnyomnak az OCR-en, másodperceket és pénzt égetve el. A pdf-inspector pontosan ezt a fájdalmat éri el: gyorsan ellenőrzi, hogy mi a fájl, és csak akkor nyúl az OCR-hez, ha az valóban szkennelés.
Az első osztályozás, a második kibontás
Egyetlen lépésben a könyvtár a PDF-eket négy típusba rendezi – szövegalapú, szkennelt, képalapú vagy vegyes –, és 0-tól 1-ig terjedő megbízhatósági pontszámot ad vissza, valamint egy oldalankénti útvonalat: mely oldalakat olvassa el szövegként, melyiket küldje el OCR-nek. Az osztályozás 10-50 milliszekundumot vesz igénybe. Szöveges oldalak esetén ezután kibontja a koordinátákat, a betűtípusokat és az olvasási sorrendet, és kiadja a Markdown címsorokat, listákat, táblázatokat és hivatkozásokat.
Számok, amelyek kiemelkednek
A 200 PDF-ből álló opendataloader-bench korpuszon a pdf-inspector a teljes készletet 0,47 másodperc alatt dolgozta fel. Összehasonlításképpen: pymupdf4llm 17 másodpercig tartott, markitdown 16 másodpercig. És továbbra is a legmagasabb pontszámot érte el a minőség tekintetében – összességében 0,875, szemben a pymupdf4llm 0,735-tel és a markitdown 0,589-tel. A táblázatok valóban előrébb járnak: 0,814 versus 0,401 és 0,273.
Mit csinál még
Többoszlopos újságelrendezések, jobbról balra haladó szöveg, CID betűtípusok, hibás kódolás észlelése. És szelektív OCR: ha egy PDF-ben néhány beolvasott oldal van keverve, akkor a teljes dokumentum helyett csak azokat futtathatja helyi OCR-en keresztül a PP-OCRv6 Small segítségével.
Ahol elmarad
Őszintén szólva: a dokumentumok valódi szkenneléséhez és fényképeihez továbbra is OCR-re van szükség, és a pdf-ellenőrző nem varázslatos – egyszerűen nem pazarolja az OCR-t olyan fájlokra, amelyeknek nincs rá szükségük. Az összetett elrendezések, ahol a képletek és a szedés szöveggel keverednek, szintén kiakadhatnak. És ez egy könyvtár, nem egy kész szolgáltatás: a használatához meg kell írni egy kis kódot.

Vannak kötések a Python, a Node.js és a böngésző WebAssembly számára – ugyanaz a Rust elemző fut közvetlenül a böngészőben, szerver nélkül. A GitHub repó már túljutott a 17 000 csillagon. Ha rendszeresen ad PDF-eket a modelleknek, érdemes megnézni.