Skip to content

Require page rendering for page-level image embeddings - #2544

Merged
jperez999 merged 2 commits into
NVIDIA:mainfrom
edknv:nvbug_6628056
Aug 18, 2026
Merged

Require page rendering for page-level image embeddings#2544
jperez999 merged 2 commits into
NVIDIA:mainfrom
edknv:nvbug_6628056

Conversation

@edknv

@edknv edknv commented Aug 18, 2026

Copy link
Copy Markdown
Collaborator

Description

Page-level image and text_image embedding could silently return PDF page rows without image payloads or embedding vectors when extract_page_as_image was not explicitly enabled.

This change treats page rendering as a required extraction step whenever embed_granularity="page" is combined with embed_modality="image" or "text_image". It applies the behavior consistently across direct PDF graphs, automatic dispatch, and mixed-input manifest branches. Page-level text-only embedding remains unchanged.

Checklist

  • I am familiar with the Contributing Guidelines.
  • New or existing tests cover these changes.
  • The documentation is up to date with these changes.

@edknv
edknv requested review from a team as code owners August 18, 2026 16:52
@edknv
edknv requested a review from nkmcalli August 18, 2026 16:52
@greptile-apps

greptile-apps Bot commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR automatically enables PDF page rendering when page-level image or text-image embeddings require raster input.

  • Adds the rendering requirement to direct and automatic graph construction.
  • Applies the same behavior to PDF branches in mixed-input ingestion.
  • Adds graph, manifest, and end-to-end coverage and updates embedding documentation.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains.

Important Files Changed

Filename Overview
nemo_retriever/src/nemo_retriever/graph/ingestor_runtime.py Detects page-level visual embedding modes and enables page-image extraction before constructing direct or auto-dispatch graphs.
nemo_retriever/src/nemo_retriever/ingestor/branch_extraction.py Applies the page-rendering requirement to PDF extraction branches before their outputs enter the shared embedding graph.
nemo_retriever/tests/test_ingest_manifest.py Verifies that mixed PDF and text ingestion enables page rasterization for both visual embedding modalities.
nemo_retriever/tests/test_pdf_render_params_wiring.py Exercises the SDK path and verifies rendered page payloads and embedding vectors are materialized.
nemo_retriever/tests/test_pipeline_graph.py Covers direct PDF, auto-dispatch, visual modality, and text-only graph configuration behavior.
docs/docs/extraction/embedding.md Documents the combined granularity and modality settings required for page-as-image embedding.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart LR
    A[Page-level embedding requested] --> B{Modality}
    B -->|text| C[Preserve extraction settings]
    B -->|image or text_image| D[Enable PDF page rendering]
    D --> E[Extract page_image]
    E --> F[Shared embedding stage]
    F --> G[Rows with image embeddings]
Loading

Reviews (2): Last reviewed commit: "Merge branch 'main' into nvbug_6628056" | Re-trigger Greptile

@jperez999
jperez999 merged commit 0357cc4 into NVIDIA:main Aug 18, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants