Docling recenze: Co IBM převodník z dokumentů do Markdownu skutečně dělá s vašimi PDF

Poslední aktualizace July 17, 2026
Docling recenze: Co IBM převodník z dokumentů do Markdownu skutečně dělá s vašimi PDF
Shrnutí od AI
Tato recenze Doclingu vysvětluje IBM převodník dokumentů do Markdownu jako nástroj pro zpracování dokumentů, nikoli web scraper. Testuje převod PDF a Office dokumentů, obnovu struktury tabulek, chování OCR, klasifikaci na sparsních stránkách, velikost modelů a rozdíl mezi cold a warm během. Článek zdůrazňuje silné stránky Doclingu v extrakci strukturovaných dokumentů, zejména v obnově tabulek, a zároveň otevřeně popisuje velikost modelů i náklady při prvním spuštění. Upozorňuje také, že na prázdných stránkách může dojít ke špatné klasifikaci kvůli nedostatku kontextu. Výsledek je praktický průvodce pro týmy, které zvažují, zda se těžší modelový pipeline Doclingu vyplatí pro PDF a archivy dokumentů.

Docling bývá často řazen mezi web scrapery, ale tím není. Jde o nástroj pro převod dokumentů z dílny IBM Research — dnes projekt nadace LF AI & Data Foundation — který vezme soubory, které už máte k dispozici (PDF, DOCX, PPTX, XLSX, HTML, obrázky), a převede je do Markdownu nebo JSONu. Jeho vlastní slogan zní doslova: „Připravte své dokumenty pro gen AI.“

Tahle recenze je tedy praktickým testem převodníku, ne crawleru. Všechno níže bylo měřeno na jednom CPU-only stroji (macOS arm64, Python 3.14.2, Docling 2.111.0), výsledky jsou bodované ze skriptů a chyby jsou vedené jako chyby. Repozitář je obrovský a mění se prakticky denně — 63 069 hvězdiček, 4 449 forků a push ve stejný den, kdy jsem stahoval metadata — takže jakýkoli počet problémů nebo verze berte jen jako momentku, ne neměnný stav.

Co Docling vlastně je — a co není

Základní jednotkou všeho v Doclingu je DoclingDocument: soubor se nejdřív naparsuje do této struktury a teprve potom se exportuje do Markdownu, HTML, DocTags nebo bezeztrátového JSONu. Kód je pod licencí MIT (licence jednotlivých modelů se liší), vznikl v IBM Research Zurich a v době psaní je nejnovější verze v2.112.0, vydaná dva dny před tímto testem.

Docling converts documents to Markdown or JSON and is not a crawler

Hlavní schopností je zpracování PDF a obrázků. To ale není obyčejné parsování textu — stojí za tím sada ML modelů: model rozložení RT-DETR, model pro strukturu tabulek TableFormer, volitelný vision-language model a RapidOCR pro skeny. Tyto modely obnovují rozvržení stránky, pořadí čtení i strukturu tabulek. A přesně to je část, která stojí za recenzi — a kterou by čistě HTML test nikdy neodhalil.

Jeden rozdíl ušetří spoustu zmatku. Docling nic nestahuje. Nerenderuje JavaScript, neobchází anti-bot ochrany a neskenuje web. Vy mu dodáte soubor; on z něj vytěží porozumění. Crawlování je práce jiného nástroje, což je důležité hlavně ve chvíli, kdy se někdo začne ptát, zda Docling nahrazuje Firecrawl (nenahrazuje — doplňují se, a hned vysvětlím proč).

První spuštění, na které vás nikdo nepřipraví

pip install docling proběhne na Pythonu 3.14.2 bez problémů. Pak se ale podíváte do virtuálního prostředí a ono má 1,3 GB. Docling si totiž jako pevné závislosti stáhne celý ML stack, i kdybyste chtěli převádět jen HTML:

Docling model footprint: 506 MiB, not the symlink double-counted 1060.2 MB

ZávislostVelikost na disku (MiB, du)
torch (2.13.0)536
opencv (cv2)119
transformers (5.8.1)101
scipy99
sympy76
pandas72
rapidocr (+ přibalené modely)75.6
docling_parse30

A to všechno ještě před tím, než převedete jediné PDF. Skutečné tření přichází při prvním převodu PDF, protože právě tehdy se stahují modely. Na čerstvé, izolované HuggingFace cache trvalo první převedení PDF asi 224 sekund — a skoro všechno z toho byl download, ne výpočet. Layout + TableFormer modely zabírají na disku cca 506 MiB (342 MiB TableFormer + 164 MiB layout, ověřeno přes du) a RapidOCR si do site-packages stáhne asi 40 MB vah PP-OCRv4. Druhé převedení stejného souboru? 0,55 sekundy. Modely jsou v cache; jednorázově zaplatíte průchod.

Docling cold versus warm conversion: first run about 224 seconds, warm run 0.55 seconds

Jedno číslo raději ignorujte: coldstart skript vypisuje model_download_mb 1060.2. Necitujte to jako skutečnou stopu. Vychází z os.walk, který následuje symlinky, a HuggingFace cache ukládá každý modelový soubor jednou do blobs/ a pak ho znovu zpřístupní jako symlink v snapshots/ — takže průchod spočítá 14 souborů dvakrát. Číslo odpovídající du, bez zdvojení přes symlinky, je cca 506 MiB (jen blobs 505,4 MiB). Poučení pro každého, kdo Docling benchmarkuje: uvádějte zvlášť stažená data a data skutečně uložená na disku, protože nejsou totéž.

Je tu i druhý háček, který zlobí každého, kdo staví Docling do kontejneru. Vážení se stahují na dvou místech a podle dvou různých plánů. Modely layoutu a TableFormer respektují HF_HOME a stáhnou se při prvním převodu PDF. Modely RapidOCR ale ne — končí v …/site-packages/rapidocr/models/ a vaše cache nastavení úplně obcházejí. Pokud image předpřipravujete nebo izolujete od sítě, musíte řešit obě cache a samotné HF_HOME vás před tou druhou neochrání.

A teď fér část. Od starších verzí Doclingu projekt vydal docling-slim — jádro o velikosti zhruba 50 MB, které vám dovolí pip install docling-slim[format-html] pro HTML bez přitažení torchu. Takže těch 1,3 GB je u výchozího docling metabalíčku reálných, ale už to není neřešitelný problém. Testoval jsem výchozí balíček, protože přesně to vám pořád dá pip install docling, ale těžkopádnost už není neopravená vada — modulární řešení existuje a je vedené v issue #2393.

Při nastavování jsem narazil ještě na jednu drobnost, kterou stojí za to zmínit: import docling; docling.__version__ vyhodí AttributeError: module 'docling' has no attribute '__version__'. Modul tuto hodnotu prostě nevystavuje. Funkční cesta je importlib.metadata.version("docling"), která vrátí '2.111.0'. Je to drobná bolest pro vývojáře, na upstreamu otevřená od července 2026 jako issue #3733.

Věrnost tabulek: kde TableFormer opravdu dává smysl

Tabulky jsou důvodem, proč někdo sáhne po Doclingu místo obyčejného převodu PDF na text, takže jsem vygeneroval sedm PDF tabulek s strojově čitelnou referencí a vyhodnocoval výstup buňku po buňce. Důležité jsou dvě metriky a nejsou to totéž: cell recall je podíl hodnot z referenčních dat, které se objeví kdekoli v nalezené tabulce; in-row rate je podíl těch hodnot, které skončí ve správném řádku. Směšovat je by nástroj zbytečně vylepšovalo, takže uvádím obě:

Docling TableFormer table fidelity: 5 detected tables, cell recall 1.00, in-row 0.97

Tabulka (zátěž)DetekovánoCell recallIn-row ratePoznámka
T1 jednoduchá tabulka s rámečkem (5×8), sama na stránceNe0.0klasifikováno jako <!-- image -->, všechny buňky ztraceny
T2 bez rámečku (jen horní linka)Ano1.001.00přesné, perfektní mřížkové rozložení
T3 sloučená hlavička se 2 úrovněmi colspanAno1.000.97všechny hodnoty nalezeny; jedna hlavička se posune o řádek
T4 sloučený rowspan u popisků řádku, sama na stránceNe0.0klasifikováno jako <!-- image -->
T5 colspan v hlavičce + bez rámečkuAno1.000.97všechny hodnoty nalezeny; stejný posun hlavičky jako u T3
T6 finance, prázdný sloupec, zarovnání dopravaAno1.001.00prázdný sloupec zachován, neposunut
T7 široká mřížka o 12 sloupcíchAno1.001.00u široké tabulky nedošlo k posunu sloupců

U pěti tabulek, které Docling skutečně detekoval, prošla každá referenční hodnota — cell recall 1.00 napříč všemi případy. Ve třech z těchto pěti tabulek navíc každá hodnota skončila i ve správném řádku. U dvou případů s víceúrovňovou hlavičkou (T3 a T5) jedna hodnota hlavičky sklouzla o řádek vedle, takže in-row rate spadl na 0,97 — data jako taková byla přítomná, jen přiřazení k řádku se u naskládané hlavičky trochu rozkymácelo.

Nejtěžší strukturální případy obstály lépe, než jsem čekal. Dvouúrovňová colspan hlavička se správně zploštila do GitHub-flavored Markdownu (popisek „Q1 2026“ se zopakoval přes oba spojené sloupce, což je správný způsob, jak colspan převést do GFM). Bezrámečková tabulka s jedinou horní linkou (T2) prošla přesně. Široká 12sloupcová tabulka (T7) se neposunula. A plně prázdný finanční sloupec (T6) zůstal jako prázdné buňky, místo aby se zahodil nebo slil. To odpovídá i oficiálním TEDS výsledkům TableFormeru — 95,4 jednoduché, 90,1 složité, 93,6 všechny tabulky — přičemž model card vychází výrazně lépe než Camelot (73,0) a EDD (88,3).

Pozor ale na sloučené buňky, protože existuje otevřený issue, který tvrdí opak. Issue #3698 uvádí, že V1 a V2 špatně zacházejí se sloučenými řádky a sloupci. U mých testovacích dat se jednoduché colspan (T3/T5) i rowspan hodnoty rozkládaly správně, s výjimkou výše zmíněného posunu u víceúrovňové hlavičky. Chybové případy v #3698 ale pokrývají nepravidelné vícerádkové a vícesloupcové sloučení a tabulky přes více stran — tedy patologický krajní scénář. Moje testy jsou ten jednoduchý konec spektra. Přesné tvrzení tedy zní úzce: jednoduché colspan a rowspan se zde obnovily správně (víceúrovňové hlavičky se ale mohou posunout o řádek); složitá a nepravidelná sloučení zůstávají zdokumentovaný otevřený problém. Ne „sloučené buňky fungují“, ale také ne „sloučené buňky jsou rozbité“.

Past: tabulka sama na stránce může zmizet

Vraťte se k tabulce — T1 a T4 nebyly detekovány vůbec. Docling vypsal <!-- image --> a zahodil všechny buňky bez jakékoli chyby. T1 je naprosto běžná 5×8 mřížka s rámečkem. To je dost znepokojivé na to, abych to neoznačil za slabinu parsování tabulek, dokud jsem neizoloval skutečný spouštěč, a tak jsem udělal skriptované A/B porovnání.

Docling sparse page A/B: isolated table becomes picture, with context becomes table

Nejdřív jsem vyloučil zjevné možnosti. Textová vrstva je v pořádku — pypdfium2 přečte z T1 327 znaků a z T4 221 znaků, takže jde o skutečné digitální PDF, ne o naskenované obrázky. Vypnutí OCR (do_ocr=False) nepomáhá; tabulky se stejně ztratí. A když jsem se podíval přímo do DoclingDocument, platilo len(doc.tables) == 0 a len(doc.pictures) == 1 — model rozvržení klasifikoval celou oblast tabulky jako Picture.

Pak přišel rozhodující test. Stejné tabulky T1 a T4 jsem znovu vyrenderoval, tentokrát obklopené několika obyčejnými odstavci textu, a převedl znovu. Obě prošly perfektně: len(doc.tables) == 1, vypsaly se správné GFM tabulky a u T4b se popisek rowspan „North“ správně opakoval přes tři řádky. Stejná tabulka. Změnila se jen jediná věc: jestli stála sama na úsporné stránce, nebo byla zasazená do textu.

Skutečné omezení tedy není křehkost TableFormeru, ale to, že layout model RT-DETR v Doclingu používá kontext stránky a malá tabulka na téměř prázdné stránce se může bez varování vyhodnotit jako Picture a potichu zahodit. V praxi je to snadné trefit, protože přesně tak vypadají faktury, technické listy i ořezané exporty: jedna tabulka na stránku, žádný okolní text. Oprava je nudná, ale účinná — dejte layout modelu kontext stránky, nebo po převodu zkontrolujte doc.tables a stránky s nulovým počtem označte. To souvisí s issue #3495 (tabulka detekovaná zároveň jako Table i Picture), ale konkrétní spouštěč „sparsity page“ — stejná tabulka zmizí, když je osamocená, a projde, když je zasazená do textu — jsem nikde publikovaný nenašel. Změřené, dříve nezdokumentované; ne bug, o kterém by nikdo nevěděl.

OCR na skutečných skenech: RapidOCR, ne EasyOCR

Naskenované PDF bývají místem, kde hodně převodníků tiše selže, takže jsem Doclingu dal dva skutečné skeny s naměřenou textovou vrstvou 0 znakůpypdfium2 hlásí nula obnovitelných znaků, takže jakýkoli výstup je OCR, ne skrytá textová vrstva po cestě.

Jednostránkové ocr_test.pdf se na CPU vrátilo čistě za 14,3 sekundy: text „Docling bundles PDF document conversion to JSON and Markdown in an easy self contained package,“ se obnovil doslova. Čtyřstránkové nemotron_multipage.pdf spustilo OCR na všech čtyřech stránkách a dalo celkově 70,1 sekundy (17,5 s/strana), přičemž na každé stránce vypsalo stejnou testovací větu. Výchozí OCR se spustilo automaticky — žádný flag, žádná konfigurace.

Tady je detail, který spousta článků uvádí špatně: výchozí OCR engine je RapidOCR, ne EasyOCR. Potvrdil jsem to podle stahování vah PP-OCRv4 .pth při prvním spuštění. Hodně starších blogů a i starší texty v Docling FAQ pořád tvrdí, že výchozí je EasyOCR; to už je neaktuální. EasyOCR je dnes extra, který si přidáte až volitelně. Co pořád platí: OCR je při větším měřítku pomalá cesta a všechno tady je strop CPU-only běhu — GPU by tyto časy citelně zkrátilo.

Reálná PDF, pořadí čtení a čas na stránku

Syntetické fixture ukazují konkrétní chování; reálná PDF ukážou, jestli to opravdu funguje. Spustil jsem dva akademické články vytvořené přímo do PDF — 9stránkovou technickou zprávu o Doclingu a 15stránkový „Attention Is All You Need“, oba dvousloupcové, s tabulkami a vzorci.

U 15stránkového článku Attention se všech pět značek sekcí — Abstract, Introduction, Background, Conclusion, References — objevuje v lineárním Markdownu ve správném pořadí dokumentu, navzdory dvousloupcovému rozvržení. Každý kontrolní pojem (Transformer, encoder, BLEU, multi-head) je přítomen a slavné vícesloupcové výsledkové tabulky se zaznamenaly jako čtyři detekované tabulky. To je skutečná obnova pořadí čtení i sloupců, což je hlavní hodnota pro chunkování v RAG — dokument nejde rozumně rozdělit, pokud linearizátor rozbije dvousloupcovou stránku na zamotané prokládání textu.

A časování přináší trochu protiintuitivní poučení. Čas na stránku neurčuje počet stran, ale to, kolik struktury je na jednotlivých stránkách. Hustší 9stránková zpráva běžela za 14,95 sekundy na stránku — tedy pomaleji na stránku než 15stránkový článek s 5,99 sekundy na stránku — protože obsahuje víc tabulek a obrázků a každý z nich spouští víc inference v layoutu a TableFormeru. Takže „sekundy na stránku“ na CPU jsou funkcí strukturální hustoty, ne délky. Jde o jeden CPU-only běh; je to strop, ne produkční číslo.

Více formátů a tvrzení o bezeztrátovém JSONu

Docling slibuje jednotné parsování více formátů, takže jsem vygeneroval DOCX, XLSX a PPTX se známým obsahem a kontrolními body, a pak ověřoval dvě věci: objeví se kontrolní body v Markdownu a přežijí i JSON round-trip přes export_to_dict().

SouborPřevedení sMD kontrolní body nalezenyTabulky v MDKontrolní body přežijí v JSON
report.docx (nadpisy + tabulka s merged "Total" + odrážky)0.1377/71Ano
workbook.xlsx (2 listy, prázdný sloupec)0.0166/62Ano
deck.pptx (3 slid y, odrážky + tabulka)0.0386/61Ano

Všechny kontrolní body se objevily v Markdownu, tabulky se obnovily (včetně sloučeného řádku „Total“ v DOCX a obou listů v XLSX) a každý kontrolní bod přežil i JSON z export_to_dict() — to je důkaz pro tvrzení o bezeztrátovém DoclingDocument, alespoň na čistých vstupech. Tyto formáty jdou přes nativní backendy, ne přes ML modely, proto běží v desítkách milisekund a fungují plně offline. Rozsah je poctivý: jeden čistý soubor pro každý formát ukazuje šířku podpory, ne stresový test patologických Office souborů.

HTML: věrné, ale nevyčištěné

Tady je caveat, který rozhodne, zda Docling patří do vašeho RAG pipeline, takže čtěte pozorně. Docling převádí celý HTML dokument. Nedělá žádnou „readability“ extrakci hlavního obsahu. Změřil jsem, kolik webového okolí zůstane, počítáním řádků s navigací, TOC, cookie lištou a patičkou v samotném výstupu Doclingu.

StránkaPočet ne-prázdných řádků MDŘádky s boilerplate% boilerplateČlánek začíná na řádku
Wikipedia „Web scraping“2553413.3%28
scrapethissite/forms6311.6%
books.toscrape6500.0%
quotes.toscrape3500.0%

Na stránce s hodně „chrome“ obsahem, jako je Wikipedia, tvoří asi 13 % řádků Markdownu navigace/TOC/patička a skutečný článek nezačne dřív než na řádku 28 — výstup otevře „move to sidebar / Contents / Toggle the table of contents“ a uzavře „CS1 maint… / Search Wikipedia.“ Na čistých obsahových stránkách (books, quotes) je to zhruba 0 %, takže jde o problém šablonového okolí, ne o daň za každou stránku. Docling vám dává věrný Markdown celého dokumentu, ne čistou extrakci hlavního článku. Upstream řeší HTML nábytek v issue #1865 (uzavřeno) a #1930 (otevřeno).

Dvě věci to dělají fér. Zaprvé, u HTML Docling nespouští žádné ML modely — běží to přes BeautifulSoup v jednoduchém pipeline. Příběh o tom, že „vision modely čtou vaši stránku“, platí jen pro PDF a obrázky; když Doclingu pošlete HTML, nespustí se ani layout, ani TableFormer. Zadruhé, PDF cesta se přece jen snaží rozpoznávat hlavičky a patičky, takže tvrdit „žádné odstraňování boilerplate vůbec“ by bylo moc silné. Je to konkrétně HTML backend, který ten webový chrome vrací zpátky.

Jak si vede v porovnání — a kam zapadá Thunderbit

Vyzkoušejte Thunderbit pro extrakci webových dat

Nástroj, se kterým se Docling nejčastěji srovnává, je Firecrawl, takže tady je srovnávací tabulka. Jedno upozornění hned na začátek, protože na tom záleží: jde o srovnání na úrovni dokumentace, ne o benchmark na stejném stroji. Firecrawl jsem na těchto fixturech nespouštěl. Sloupec Doclingu je měřený tady; sloupec Firecrawl je z veřejné dokumentace.

OsaFirecrawl (dle dokumentace)Docling (měřeno zde)
Hlavní úkolCrawl + scrapování živého webu → MarkdownPřevod dokumentu, který už máte → Markdown/JSON
Fetching / render JS / anti-botAno (hostovaný prohlížeč)Ne — soubor dodáte vy
Exktrakce hlavního obsahuAnoNe — věrný celý dokument (~13 % boilerplate na Wikipedii)
Struktura tabulek v PDF (ML)omezeněAno — TableFormer (oficiální TEDS 93,6; cell recall 1,00, in-row 0,97–1,00 na detekovaných fixturech)
Skenované PDF / OCRomezeněAno — RapidOCR ve výchozím nastavení (obnovil sken s 0 textovou vrstvou)
Šíře formátůwebové stránkyPDF/DOCX/PPTX/XLSX/HTML/EPUB/obrázky
Nasazeníhostované API (+ self-host)lokální pip knihovna, offline, bez API klíče
Náročnost nastaveníAPI klíč / lehký klientvýchozí instalace 1,3 GB + ~506 MiB modelů (nebo docling-slim)
Licencekomerční / source-availableMIT

Jednověté shrnutí: Firecrawl je nástroj pro situace, kdy jsou data na živém webu a potřebujete crawl, render JS a vyčištění hlavního obsahu. Docling je nástroj pro situace, kdy už dokument máte — zejména PDF, skeny a Office soubory plné tabulek — a chcete věrný, offline převod zachovávající strukturu s opravdu použitelným porozuměním tabulkám a OCR. Doplňují se. Realistický pipeline jedním nástrojem crawlne a druhým dokumenty převede.

A tady budu otevřený i k Thunderbit, protože tu pracuji a bylo by divné předstírat opak. Thunderbit a Docling nedělají totéž a nebudu je násilně stavět na roveň. Pro vývojáře je Thunderbit AI scraping API plus MCP server plus CLI a jeho jednotkou práce je živá webová stránka: POST /distill převede URL na čistý, pro LLM připravený Markdown (zvládá JS rendering, anti-bot i CAPTCHA, kterých se Docling výslovně netýká) a POST /extract vrátí strukturované JSONy odpovídající schématu, které si definujete přes JSON Schema. To je část pipeline pro fetch a čištění RAG. Docling je naopak lokální dokumentová část — PDF, sken nebo tabulka už uložená na disku. Pokud jsou vaším korpusem webové stránky, sáhněte po Thunderbit API, MCP nástrojích (thunderbit_suggest_fields, thunderbit_distill, thunderbit_extract) nebo CLI (npx @thunderbit/thunderbit-cli). Pokud jde o PDF a skeny, sáhněte po Doclingu. Pokud jde o obojí — což je většina reálných pipeline — kombinujte je, protože ani jeden se nesnaží být tím druhým.

Verdikt: předběžný, ale domácí úkoly zůstávají

Nebudu vám dávat jedno jediné skóre 0–100, protože vážený součet by tady míchal do sebe penalizace za věci, které Docling nikdy netvrdil, že umí (třeba crawlování), a předstíral by, že jsou srovnatelné. Po jednotlivých dimenzích, na mých testovaných fixturech:

  • Nastavení / první běh: těžké — 1,3 GB venv, ~506 MiB modely, ~224 s první PDF, ~0,55 s warm — ale docling-slim vám tu váhu umožní obejít.
  • Věrnost tabulek: silná, když je tabulka detekována (cell recall 1,00 u 5/5, in-row 0,97–1,00), v souladu s oficiálním příběhem TEDS na těchto fixturech.
  • Robustnost detekce tabulek: past na sparsnou stránku — izolovaná tabulka může spadnout jako Picture. Po převodu kontrolujte doc.tables.
  • Skeny / OCR: funguje, výchozí RapidOCR; ve velkém pomalé.
  • Více formátů: solidní, JSON round-trip drží.
  • HTML: věrné, ale nevyčištěné — žádná extrakce hlavního obsahu.
  • Developer experience: čisté 3řádkové API a přehledný DoclingDocument, jen bez __version__.

Pro koho to je: pro týmy, které staví RAG nebo datové pipeline nad PDF, skeny a Office soubory a chtějí offline převod zachovávající strukturu a skutečné porozumění tabulkám i OCR. Pro koho to není: pro kohokoli, kdo potřebuje crawl živého webu nebo čistou extrakci hlavního HTML článku — na to je jiný nástroj.

A protože je to recenze, ne tisková zpráva, limity zůstávají přiznané. Jde o cílený probe — 7 syntetických tabulek plus 2 reálná PDF na jednom CPU-only stroji — ne o benchmark přes TEDS v plném rozsahu. Některé věci jsem netestoval a před nasazením do produkce byste měli také: volitelnou VLM cestu (GraniteDocling), skutečnou velikost docling-slim, jakýkoli GPU běh, složitá a nepravidelná sloučení buněk a tabulky přes více stran, přesnost převodu vzorců do LaTeXu a — co vás v produkci pravděpodobně překvapí nejvíc — trojici odolnosti: růst paměti v dávkách, škálování přes vlákna/GIL a životní cyklus objektů během tisíců převodů. Docling je silný v tom, co slibuje, a měřením spíš než marketingem to potvrzuje. Zároveň má ostré hrany, které si budete chtít zmapovat, než mu svěříte celý korpus. Počítejte s pastí na sparse page, vyhraďte prostor pro první download a chování ve velkém si ověřte sami.

Vyzkoušejte Thunderbit pro extrakci webových dat Get Started Free

Časté dotazy

Je Docling web scraper nebo crawler? Ne. Docling převádí dokumenty, které už máte — PDF, DOCX, PPTX, XLSX, HTML, obrázky — do Markdownu nebo JSONu. Nestahuje URL, nespouští JavaScript a neřeší anti-bot ochrany. Crawl živého webu je samostatná práce, kterou dělají nástroje jako Firecrawl nebo Thunderbit web API; Docling začíná až u souboru, který mu dodáte.

Jak velká je instalace Doclingu a první download při spuštění? Výchozí metabalíček docling vytvoří zhruba 1,3GB virtuální prostředí, protože jako pevné závislosti stahuje celý ML stack (jen torch má 536 MiB). První převod PDF stáhne na disk asi 506 MiB modelů layoutu a TableFormeru plus asi 40 MB vah RapidOCR a zabere zhruba 224 sekund — skoro celý ten čas je download. Druhé převedení trvá asi 0,55 sekundy. Pokud potřebujete jen lehčí formáty, docling-slim (jádro ~50 MB) se těžké cesty vyhne.

Dělá Docling OCR a jakým enginem? Ano. U naskenovaného PDF bez textové vrstvy se OCR spustí automaticky a v mém testu text obnovilo čistě. Výchozím enginem je RapidOCR, ne EasyOCR — to je častý omyl ve starších článcích. EasyOCR je dnes jen volitelný doplněk. OCR je při větším měřítku pomalá cesta, hlavně na CPU.

Proč Docling udělal z mé tabulky obrázek nebo ji zahodil? Nejspíš kvůli efektu sparse page. Layout model RT-DETR v Doclingu používá kontext stránky a malá tabulka sama na téměř prázdné stránce může být klasifikovaná jako Picture a zahodit se bez chyby. Stejná tabulka obklopená textem se převede správně. Řešení je dát layout modelu víc kontextu stránky nebo po převodu zkontrolovat doc.tables a označit stránky s nulovým počtem.

Docling vs. Firecrawl — co mám použít? Jsou to různé úlohy, takže většinou nejde o volbu buď–anebo. Firecrawl crawlne živý web, renderuje JavaScript a extrahuje hlavní obsah. Docling převádí dokumenty, které už máte, a umí skutečnou strukturu tabulek v PDF i OCR, plně offline. Pokud je zdrojem web, použijte webový nástroj (Firecrawl nebo Thunderbit API/MCP/CLI). Pokud jde o PDF, skeny nebo Office soubory, použijte Docling. Většina reálných pipeline používá oba.

Ke
Ke
CTO ve Thunderbit | Senior Data Scientist a expert na ML S téměř desetiletou zkušeností v oblasti strojového učení a datové vědy je Ke Shen absolventem Kolumbijské univerzity a bývalým Senior Data Scientist ve Walmart Labs. Díky hlubokým odborným znalostem v Pythonu, R, Javě a statistice, uznávaným i mezi kolegy, sdílí ověřené poznatky o tom, jak převést složité AI algoritmy od teorie až k produkční architektuře.

Vyzkoušej Thunderbit

Získej leady i další data jen na 2 kliknutí. Pohání AI.

Získat Thunderbit Je to zdarma
Vytěž data pomocí AI
Snadno přenes data do Google Sheets, Airtable nebo Notion
Chrome Store Rating
PRODUCT HUNT#1 Product of the Week