Close Menu
NCIJ Network NCIJ Network
    What's Hot

    Best GPU Neoclouds 2026: CoreWeave, Nebius, Lambda, Crusoe, and Groq Ranked by Published Pricing and Contracted Power

    August 21, 2026

    Microsoft warns of max severity Entra ID flaw exploited in attacks

    August 21, 2026

    MANTRA Chain stays offline after exploit as Aug. 21 restart hinges on patch test

    August 21, 2026
    Facebook X (Twitter) Instagram
    Trending
    • Best GPU Neoclouds 2026: CoreWeave, Nebius, Lambda, Crusoe, and Groq Ranked by Published Pricing and Contracted Power
    • Microsoft warns of max severity Entra ID flaw exploited in attacks
    • MANTRA Chain stays offline after exploit as Aug. 21 restart hinges on patch test
    • 2,200-year-old Roman shipwreck reveals ancient waterproofing secrets
    • Art and science must come together for coral reef conservation, biologists argue
    • FP Live: Anton Jager on Why We Are Living Through ‘Hyperpolitics’
    • TikTok agrees to $400m settlement to resolve US children’s privacy litigation | TikTok
    • Digested week: So Harry and Meghan are moving back to the UK. Who cares? | John Crace
    • About
      • Our Team
      • Editorial Policy
      • Editorial Independence
      • International Support
    • Trust & Standards
      • AI Usage Policy
      • Conflict of Interest Policy
      • Corrections Policy
      • Ethics Policy
      • Fact-Checking Policy
      • Source Protection
    • Get Involved
      • Guide for Sources
      • Support Independent Journalism
    • Legal
      • Cookie Policy
      • Privacy Policy
      • Terms of Use
    Facebook X (Twitter) Instagram
    NCIJ Network NCIJ Network
    Friday, August 21
    • Home
    • World
    • Ai
    • Business
    • Politics
    • Health
    • Crypto
    • Science
    • Technology
    • Cybersecurity
    • Defense & Security
    • Economy
    • Energy
    • Europe
    • More
      • Fact Check
      • Investigations
      • Opinion & Analysis
      • Environment
    NCIJ Network NCIJ Network
    Home»Artificial Intelligence

    Building Agentic Document Intelligence Pipelines: Creating Scientific Figures with AutoFigure

    NCIJ NETWNCIJ NETWORKBy NCIJ NETWNCIJ NETWORKAugust 21, 2026 Artificial Intelligence No Comments3 Mins Read
    Share
    Facebook Twitter LinkedIn Pinterest Email

    heading("4. Creating a custom reference figure")
    reference_dir = OUTPUT_ROOT / "01_custom_references"
    reference_dir.mkdir(parents=True, exist_ok=True)
    reference_path = reference_dir / "reference_architecture_style.png"
    W, H = 1333, 750
    img = Image.new("RGB", (W, H), "white")
    draw = ImageDraw.Draw(img)
    try:
       title_font = ImageFont.truetype("DejaVuSans-Bold.ttf", 36)
       box_font = ImageFont.truetype("DejaVuSans-Bold.ttf", 24)
       small_font = ImageFont.truetype("DejaVuSans.ttf", 18)
    except Exception:
       title_font = None
       box_font = None
       small_font = None
    draw.text(
       (W // 2, 55),
       "Reference Layout: Modular Scientific Pipeline",
       anchor="mm",
       fill="black",
       font=title_font,
    )
    boxes = [
       (90, 215, 290, 120, "Input", "documents"),
       (365, 215, 290, 120, "Planner", "route by task"),
       (640, 215, 290, 120, "Experts", "summary / table / vision"),
       (915, 215, 290, 120, "Verifier", "grounded output"),
    ]
    for i, (x, y, bw, bh, title, subtitle) in enumerate(boxes):
       draw.rounded_rectangle(
           [x, y, x + bw, y + bh],
           radius=22,
           fill=(245, 245, 245),
           outline=(20, 20, 20),
           width=3,
       )
       draw.text(
           (x + bw / 2, y + 45),
           title,
           anchor="mm",
           fill="black",
           font=box_font,
       )
       draw.text(
           (x + bw / 2, y + 82),
           subtitle,
           anchor="mm",
           fill=(70, 70, 70),
           font=small_font,
       )
       if i < len(boxes) - 1:
           ax = x + bw + 20
           ay = y + bh / 2
           bx = boxes[i + 1][0] - 20
           by = ay
           draw.line([ax, ay, bx, by], fill="black", width=5)
           draw.polygon(
               [(bx, by), (bx - 18, by - 10), (bx - 18, by + 10)],
               fill="black",
           )
    draw.rounded_rectangle(
       [180, 500, 1150, 585],
       radius=24,
       fill=(252, 252, 252),
       outline=(80, 80, 80),
       width=2,
    )
    draw.text(
       (665, 542),
       "Design cue: aligned modules, sparse labels, strong flow direction, clean academic styling",
       anchor="mm",
       fill=(40, 40, 40),
       font=small_font,
    )
    img.save(reference_path)
    print(f"Custom reference saved: {reference_path}")
    display_file_if_possible(reference_path, "Custom reference figure")
    heading("5. Configuring API-backed AutoFigure")
    API_KEY = collect_api_key(PROVIDER)
    if not API_KEY:
       print("No API key provided. Cloud generation sections will be skipped.")
    else:
       print(f"Provider: {PROVIDER}")
       print(f"Generation model: {GENERATION_MODEL}")
       print("API key received. The key is not printed.")
    config = None
    agent = None
    if API_KEY:
       config = Config(
           generation_api_key=API_KEY,
           generation_provider=PROVIDER,
           generation_model=GENERATION_MODEL,
           methodology_api_key=API_KEY,
           methodology_provider=PROVIDER,
           methodology_model=GENERATION_MODEL,
           enhancement_api_key=API_KEY if RUN_IMAGE_ENHANCEMENT else None,
           enhancement_provider=PROVIDER,
           enhancement_model=os.environ.get(
               "AUTOFIGURE_ENHANCEMENT_MODEL",
               "google/gemini-3.1-flash-image-preview"
               if PROVIDER == "openrouter"
               else "gemini-3.1-flash-image-preview",
           ),
           max_iterations=MAX_ITERATIONS,
           quality_threshold=QUALITY_THRESHOLD,
           output_dir=str(OUTPUT_ROOT / "02_text_to_figure"),
           custom_references=[str(reference_path)],
           art_style=ART_STYLE,
       )
       validation_errors = config.validate()
       print(f"Config validation errors: {validation_errors if validation_errors else 'none'}")
       print(f"References found by config: {len(config.get_references())}")
       agent = AutoFigureAgent(config)
    heading("6. Prompt template preview")
    prompt_preview = get_initial_prompt_template(
       topic="paper",
       content=FIGURE_DESCRIPTION[:2500],
       output_format="svg",
    )
    print(prompt_preview[:2500])
    print("n... prompt preview truncated ...")
    if API_KEY and RUN_TEXT_TO_FIGURE:
       heading("7. Running text-to-figure generation")
       text_output_dir = OUTPUT_ROOT / "02_text_to_figure"
       text_output_dir.mkdir(parents=True, exist_ok=True)
       text_result = agent.generate(
           description=FIGURE_DESCRIPTION,
           max_iterations=MAX_ITERATIONS,
           quality_threshold=QUALITY_THRESHOLD,
           output_format=TEXT_OUTPUT_FORMAT,
           enable_enhancement=RUN_IMAGE_ENHANCEMENT,
           art_style=ART_STYLE,
           enhancement_input_type="code2prompt",
           enhancement_count=1,
           custom_references=[str(reference_path)],
           output_dir=str(text_output_dir),
           topic="paper",
       )
       summarize_generation_result(text_result, "Text-to-Figure Result")
    else:
       print("Skipping text-to-figure generation.")
    
    agentic AutoFigure building creating document figures Intelligence Pipelines scientific
    NCIJ NETWNCIJ NETWORK
    • Website

    Keep Reading

    Best GPU Neoclouds 2026: CoreWeave, Nebius, Lambda, Crusoe, and Groq Ranked by Published Pricing and Contracted Power

    Anthropic Brings Claude Mythos 5 to Claude Security: Enterprise Teams Get Frontier Vulnerability Scanning Without Direct Model Access

    Smithsonian’s New Latino Museum May Receive an Existing Building

    How AI coding tools are contributing to the popularity of JavaScript

    Meet S1-mini: Superwhisper’s 462 MB Open-Weights Text Normalizer That Turns Raw ASR Transcripts Into Clean Written Text

    Meet UPDF: A Lightweight Adobe Alternative Built for the Agentic Era

    Add A Comment
    Leave A Reply Cancel Reply

    Editors Picks

    Best GPU Neoclouds 2026: CoreWeave, Nebius, Lambda, Crusoe, and Groq Ranked by Published Pricing and Contracted Power

    August 21, 2026

    Microsoft warns of max severity Entra ID flaw exploited in attacks

    August 21, 2026

    MANTRA Chain stays offline after exploit as Aug. 21 restart hinges on patch test

    August 21, 2026

    2,200-year-old Roman shipwreck reveals ancient waterproofing secrets

    August 21, 2026
    Latest Posts

    ‘Running Away Balloon’ Artist Sues AI Meme Generator Over Ad Templates

    July 28, 2026

    Hush Security Raises $30 Million for AI Agent Governance

    July 28, 2026

    Armenia’s AI Bet Is Not Chip Manufacturing. It Is Compute Sovereignty 

    July 28, 2026

    Subscribe to News

    Get the latest sports news from NewsSite about world, sports and politics.

    NCIJ Network is an independent digital news platform delivering trusted investigative journalism, European and global news, in-depth analysis, and fact-based reporting with accuracy, transparency, and integrity.

    Facebook X (Twitter) Instagram Pinterest YouTube

    Best GPU Neoclouds 2026: CoreWeave, Nebius, Lambda, Crusoe, and Groq Ranked by Published Pricing and Contracted Power

    August 21, 2026

    Microsoft warns of max severity Entra ID flaw exploited in attacks

    August 21, 2026

    MANTRA Chain stays offline after exploit as Aug. 21 restart hinges on patch test

    August 21, 2026

    Subscribe to Updates

    Get the latest creative news from FooBar about art, design and business.

    Type above and press Enter to search. Press Esc to cancel.