Source code for fastrag.ingestion.steps.parsing.dynamic

"""SVG rasterization for vision parsing."""

from fastrag.ingestion.steps.fetching._browser import _playwright


[docs] async def rasterize_svg(content: bytes, timeout: float) -> bytes: """Render SVG including foreignObject labels to PNG for vision models.""" async with _playwright() as runtime: browser = await runtime.chromium.launch() try: page = await browser.new_page(viewport={"width": 1440, "height": 1000}) page.set_default_timeout(timeout * 1000) await page.set_content(content.decode("utf-8")) return await page.locator("svg").first.screenshot(type="png") finally: await browser.close()