Skip to content

Fix cross-page PDF QA recall and add regression coverage#420

Open
AkilsuryaS wants to merge 27 commits intoNVIDIA-AI-Blueprints:mainfrom
AkilsuryaS:fix/issue-240-cross-page-pdf-qa
Open

Fix cross-page PDF QA recall and add regression coverage#420
AkilsuryaS wants to merge 27 commits intoNVIDIA-AI-Blueprints:mainfrom
AkilsuryaS:fix/issue-240-cross-page-pdf-qa

Conversation

@AkilsuryaS
Copy link
Copy Markdown

@AkilsuryaS AkilsuryaS commented Mar 10, 2026

Summary

  • Use vdb_top_k as the retrieval candidate pool in the RAG generation path to improve recall when answers require evidence across multiple PDF pages.
  • Update RAG answer prompts to explicitly allow synthesis across multiple context chunks.
  • Add regression coverage for vdb_top_k behavior when reranker is disabled, and tighten the integration check for search result count mismatches.

Issue linkage

Closes #240

Test plan

  • python -m py_compile src/nvidia_rag/rag_server/main.py tests/unit/test_rag_server/test_query_rewriting.py tests/integration/test_cases/rag_search.py
  • Run unit/integration suite in project environment with pinned dependencies.

Made with Cursor

johnnynv and others added 27 commits February 9, 2026 12:49
* docs: fix typos, grammar, and broken links in documentation

- README: remove duplicate 'with', fix 'e.g.' punctuation, fix link spacing
- ci/README: GitLab CI -> GitHub Actions CI pipeline
- docs/support-matrix: Bluprint -> Blueprint, fix link spacing
- docs/deploy-docker-self-hosted: add 'are' before deployed, NIMS -> NIMs
- docs/troubleshooting: fix stray markdown, subsequent deployments section
- docs/release-notes: DRA -> MIG, Nvidia -> NVIDIA, fix punctuation and its/it's
- docs/python-client: add missing closing quote in install command
- docs/text_only_ingest: remove duplicate 'the'
- docs/multi-collection-retrieval: its -> it's (it is enabled)
- docs/query_decomposition: add note for 1997/Naples example
- docs/user-interface: 750 px -> 750px
- deploy/workbench: fix hardware-requirements link to support-matrix, model v1.5
- tests/integration/README: fix test_cases formatting

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix: documents words

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Signed-off-by: Niyati Singal <nsingal@nvidia.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
* Updated launchable with v2.4.0 tag (NVIDIA-AI-Blueprints#318)

* updated support matrix (NVIDIA-AI-Blueprints#321)

* Document the end‑to‑end flow from query to answer and show how to measure time spent in each stage of the RAG pipeline. (NVIDIA-AI-Blueprints#317)

* adding oberservablility

* Update docs/debugging.md

Co-authored-by: nkmcalli <nkmcalli@yahoo.com>

* Update docs/observability.md

Co-authored-by: nkmcalli <nkmcalli@yahoo.com>

* Add query-to-answer-pipeline doc and observability/debugging updates

* Trigger CI

* getting build to kick in for observability file

* Fix typos in query-to-answer-pipeline.md and ensure file in PR for link check

* get rid of PULL_REQUEST_SUMMARY

---------

Co-authored-by: nkmcalli <nkmcalli@yahoo.com>

* fixed files associated with build (NVIDIA-AI-Blueprints#322)

* Add multimodal query integration tests to CI pipeline

* changes to docs per bug 5767861

* updated files per bug 5880717 (NVIDIA-AI-Blueprints#327)

* updated files per bug 5880717

* Update CONTRIBUTING.md

* Update README.md

* Update python-client.md

* Update readme.md

* Update readme.md

* Update docs/deploy-helm.md

Co-authored-by: nkmcalli <nkmcalli@yahoo.com>

* Update docs/deploy-helm.md

Co-authored-by: nkmcalli <nkmcalli@yahoo.com>

---------

Co-authored-by: rkharwar-nv <rkharwar@nvidia.com>
Co-authored-by: nkmcalli <nkmcalli@yahoo.com>
Co-authored-by: Pranjal Doshi <pranjald@nvidia.com>
Co-authored-by: nv-pranjald <150428320+nv-pranjald@users.noreply.github.com>
* Revert back milvus version in conf.md to v2.6.5

* Modify workflow to run on any branch

* Fix workflow push rule to run on protected branches
Found an error in the Q&A section where images in the citation were not being printed.
* updated helm instructions (NVIDIA-AI-Blueprints#333)

* updated helm instructions

* Update deploy-helm.md

* fix broken image link (NVIDIA-AI-Blueprints#334)

* Add release note for Audio model deployment on Kubernetes on RTX‑6000 Pro is not supported in this release.heiss/5863956a (NVIDIA-AI-Blueprints#335)

* Add release note for Audio model deployment on Kubernetes on RTX‑6000 Pro is not supported in this release.

* Add release note for Audio model deployment on Kubernetes on RTX‑6000 Pro is not supported in this release.

* Fix broken image link in observability file

* Fix CPU seach with GPU index doc

* Fix VLLM profile instruction for nemotron-3-nano

---------

Co-authored-by: Kurt Heiss <kheiss@nvidia.com>
…ut (NVIDIA-AI-Blueprints#341)

Signed-off-by: Swapnil Masurekar <smasurekar@nvidia.com>
* fixed files for build purposes (NVIDIA-AI-Blueprints#343)

* Fix status 500 on unknown task and summary status for plain Redis and tokenizer encode_plus attribute error (NVIDIA-AI-Blueprints#342)

* Remove rc tag from containers and helm chart

* added missing parentheses (NVIDIA-AI-Blueprints#347)

* fix doc link defect per Z. Huang review spreadsheet (NVIDIA-AI-Blueprints#346)

---------

Co-authored-by: Kurt Heiss <kheiss@nvidia.com>
Co-authored-by: kumar-punit <punitk@nvidia.com>
* Update pillow and crytography version

* Enable job continuation on failure

* Remove hard dependency of pillow and crytography from pyproject
…-Blueprints#364)

* Updated helm instructions for mig-deployment

* Update mig-deployment.md
* Doc enhancement for noteboook

* Update release notes

* Update launchable.ipynb (NVIDIA-AI-Blueprints#365)

Updated branch name
State name changed from "FAILURE"->"FAILED"

* Fix typo in release notes

---------

Co-authored-by: rkharwar-nv <rkharwar@nvidia.com>
All outputs cleared
…/rkharwar-nv-patch-4

Add files via upload
…rints#376)

Co-authored-by: Shubhadeep Das <149712532+shubhadeepd@users.noreply.github.com>
…al candidate pool in RAG generation.

Update RAG prompts to encourage multi-chunk synthesis and add regression coverage for top_k behavior, including a stricter integration assertion for search result count mismatches.

Made-with: Cursor
@shubhadeepd shubhadeepd force-pushed the main branch 2 times, most recently from 6d8e0ae to e114a68 Compare March 18, 2026 07:42
Copy link
Copy Markdown

@JiwaniZakir JiwaniZakir left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The removal of the branches filter from the pull_request trigger in ci-pipeline.yml (lines 7-8) is a significant behavioral change — the pipeline will now fire on PRs targeting any branch, not just develop. Combined with adding main and release-** to the push trigger, this could produce duplicate runs for release branches and substantially increase CI load; the comment says "avoids duplicate runs when pushing to a PR branch" but the missing branch filter does the opposite for PRs.

In the Prepare multimodal test data step, the [ -f ... ] && cp ... || true guards silently succeed when none of the source files exist. If the test fixtures are absent, the multimodal query tests will fail later with a confusing error rather than a clear "missing test data" signal at preparation time — it would be worth adding an explicit check or echo so failures surface at the right step.

The sleep 5 before bringing Docker services back up in Restart services for multimodal query tests is inconsistent with the sleep 30 used in every other restart block in this file; if services aren't ready before the test step runs, the multimodal tests will fail non-deterministically in CI even though the continue-on-error: true will mask it.

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.

[BUG]: QA of pdf cannot identify cross-page information.

10 participants