← Cloudflare Workers AI / workers-ai / features / markdown-conversion
Jak to funguje
Předzpracování
Před převodem souborů do Markdown provádíme při jejich zpracování určité čisticí úkony, které se liší podle typu převáděného souboru.
HTML
Jakmile zjistíme, že jde o soubor HTML, proběhne s jeho obsahem před převodem několik kroků:
- Některé prvky jsou ignorovány, včetně
scriptastyletagy. - Metaznačky se extrahují. Patří mezi ně
title,description,og:title,og:descriptionaog:image. - JSON-LD ↗ obsah je extrahován, pokud existuje. Ten se připojí na konec převedeného markdownu.
- Základní URL adresa pro rozlišení relativních odkazů se získává z
<base>element1, pokud existuje, podle specifikace (to znamená, že se počítá jen první výskyt základní adresy URL). - Pokud
cssSelectormožnost je:- zadaná, zůstanou zachovány jen prvky odpovídající selektoru pro další zpracování;
- chybí, odstraní se prvky jako
<header>,<footer>a<head>jsou z textu odstraněny.
- Pokud byla dříve získána základní URL adresa, relativní odkazy ve zbývajícím HTML se převedou na plně kvalifikované URL adresy
1 Hostitele lze nastavit také pro jednotlivý požadavek pomocí možností konverze HTML. Další informace najdete v Možnosti převodu pro další informace.
Obrázky
Příprava obrázků na konverzi vyžaduje trochu více práce.
U animovaných souborů GIF se extrahuje a analyzuje pouze první snímek. Ostatní snímky se zahodí.
Nejprve zjistíme, o jaký typ obrázku se jedná. Pokud jde o soubor SVG (Scalable Vector Graphics), je nutné jej převést do rastrového formátu, aby při použití potřebných modelů Workers AI nedošlo k selhání. V tomto případě se soubory SVG interně převádějí na PNG.
Poté:
- Nejprve se pokusíme zjistit rozměry obrázku. Pokud se to podaří, určíme, zda je obrázek považován za „příliš velký“, nebo ne. Obrázek je „příliš velký“, pokud je jeho šířka větší než 1280px nebo výška větší než 720px.
- Pokud je obrázek příliš velký, pokusíme se ho zmenšit na požadované rozměry. Pokud se to nepodaří, použijeme původní data obrázku
- Obrázek se odesílá do model pro detekci objektů. Konkrétně používáme
@cf/facebook/detr-resnet-50od Workers AI. - Pokud byly v předchozím kroku detekovány nějaké objekty, připojí se k promptu, který se použije k instruování model pro převod obrázku na text o tom, jak obrázek popsat.
- Pokud je v možnostech převodu v požadavku uveden preferovaný jazyk převodu, předchozí prompt se doplní o pokyn, aby model vygeneroval výstup v požadovaném jazyce. Viz Možnosti převodu pro další podrobnosti.
- Finální prompt se spolu s obrazovými daty odesílá do
@cf/google/gemma-4-26b-a4b-itmodel, rovněž od Workers AI.
PDF soubory
- Metadata se extrahují. Lze je z výsledného výstupu odebrat. Více informací najdete v Možnosti převodu pro další podrobnosti.
- Jednotlivé stránky se zpracovávají v pořadí za sebou.
- Pokoušíme se získat
StructTreeobjekt ze souboru PDF. Tato datová struktura je strom označených prvků, které tvoří obsah PDF, jak je specifikováno v ISO 14289 (PDF/UA) ↗. - Pokud se žádnou nezíská, extrahuje se text stránky tak, jak je a vrátit ji.
- Pokud se nám podaří získat
StructTree, procházíme jeho uzly a sestavujeme sémantickou reprezentaci obsahu ve formátu Markdown.