NVIDIA RAG Evaluation

VerifiedSafe

NVIDIA RAG Blueprint evaluation guidance for measuring retrieval and answer quality with stable datasets, baselines, and reproducible scoring workflows.

Sby Skills Guide Bot
Data & AIIntermediate
7/22/2026
Claude CodeCursorCodex
#rag#evaluation#nvidia#ragas#benchmarking

Recommended for

Automated summary

Guides agents through running on-disk RAG benchmarks with the NVIDIA RAG Blueprint: preparing corpus/ and train.json, running evaluate_rag.py, tuning retrieval and generation flags, and interpreting RAGAS scores.

Strengths

  • Describes a reproducible, stable workflow for comparing retrieval and generation configurations using RAGAS metrics
  • Clearly separates quality evaluation from latency/throughput testing, which it delegates to the rag-perf skill
  • Provides detailed references for dataset layout, CLI flags, and an error signal table for triage
  • Includes credential hygiene guidance for NVIDIA_API_KEY

Limitations

  • Assumes a reachable RAG server and ingestor plus a valid NVIDIA_API_KEY for RAGAS
  • Only works with the corpus/ + train.json layout, not arbitrary APIs
  • Does not cover deployment, production monitoring, or performance/load benchmarking
When to use it

Use it when you need to measure retrieval and answer quality of a RAG pipeline on a prepared dataset and compare several configurations.

When not to use it

Avoid it for deploying or repairing services, latency/load testing, or evaluating APIs that lack the corpus/ + train.json layout.

Security analysis

Safe
Quality score84/100

The skill is documentation/guidance for running a local RAG evaluation script (evaluate_rag.py) against a RAG server. It contains no destructive commands, no curl|sh piping, no base64 payloads, and no credential exfiltration. Notably it explicitly recommends credential hygiene (loading NVIDIA_API_KEY from a gitignored env file or secrets manager, avoiding committed .env, rotating exposed keys). Network usage is limited to legitimate calls to a local/eval RAG server.

No concerns found

How this analysis is made

Examples

Minimal quality eval
Run a RAG quality evaluation on /path/to/my_dataset against the server at localhost:8081 and summarize the RAGAS scores.
Compare retrieval configs
Compare top_k 10 vs 20 with the reranker toggled on and off on my dataset, and tell me which config gives better answer quality.
Triage empty contexts
My evaluation run returned empty contexts — use the error signal table to help me diagnose whether it's a collection mismatch or ingestion issue.

name: rag-eval version: "1.3" last_updated: 2026-07-11 tags: [nvidia, rag, evaluation, retrieval, quality, benchmark] description: "NVIDIA RAG Blueprint evaluation guidance for measuring retrieval and answer quality with stable datasets, baselines, and reproducible scoring workflows." license: "Apache-2.0" compatibility: "Guidance imported from the NVIDIA RAG Blueprint evaluation skill for current RAG eval workflows and benchmark tooling."

On-disk RAG evaluation (corpus/ + train.json)

Purpose

Guide agents through NVIDIA RAG Blueprint filesystem benchmarks: preparing corpus/ and train.json, running scripts/eval/evaluate_rag.py, tuning retrieval and generation flags for quality comparisons, interpreting RAGAS JSON outputs, and triaging failures (HTTP/stream errors, empty contexts, collection mismatch, judge API).

For latency, throughput, and load testing, use the rag-perf skill (scripts/rag-perf, docs/performance-benchmarking.md) — not this skill.

When not to use

Do not use this skill for: deploying or repairing services (use rag-blueprint); evaluating APIs without the corpus/ + train.json layout; general ML experimentation unrelated to this evaluator; production monitoring/alerting; or latency/throughput benchmarking (use rag-perf).

Prerequisites

  • Repo cloned; run commands from repo root (imports and paths assume this).
  • Python 3.11+ and uv; eval deps: uv sync --project scripts/eval.
  • Reachable RAG server and ingestor (defaults often localhost:8081 / 8082).
  • NVIDIA_API_KEY for RAGAS (see credential hygiene); optional RAG_EVAL_JUDGE_MODEL.
  • Dataset roots passed to --dataset-paths each contain corpus/ and train.json.

Instructions

  1. Prepare data — Ensure each dataset directory matches the layout and train.json rules in references/dataset-and-conversion.md. When sources arrive as public links (sites or dataset pages), materialize documents under corpus/—prefer PDF for multimodal content so images stay embedded; convert CSV/JSONL/etc. using the patterns there.
  2. Run eval — uv run --project scripts/eval python scripts/eval/evaluate_rag.py with --dataset-paths, --host, and --port. See references/benchmark-execution.md for command examples, outputs, and errors. Use references/evaluate-rag-cli.md for flag-level detail.
  3. Tune quality — Adjust --top_k / --vdb_top_k, reranker and query-rewriting toggles, and generation overrides (--temperature, --top-p, --max-tokens) as documented in references/benchmark-execution.md when comparing retrieval/generation configs for RAGAS scores.
  4. Analyze results — Use references/result-analysis.md for scripts; scan rag_*_evaluation_summary.json for headline RAGAS metrics.
  5. Triage errors — Use the error signal table and the Troubleshooting section below.

Examples

Set API key without putting secrets in shell history (preferred patterns): load from a gitignored env file or secrets manager; avoid committing .env; rotate keys if exposed. Details: references/benchmark-execution.md#credential-hygiene-nvidia_api_key.

Minimal eval (key already in environment):

uv sync --project scripts/eval
uv run --project scripts/eval python scripts/eval/evaluate_rag.py \
  --dataset-paths /path/to/my_dataset \
  --host localhost \
  --port 8081

Pretty-print summary JSON:

python3 -m json.tool results/my_dataset/rag_my_dataset_evaluation_summary.json

More examples (skip ingestion, quality sweeps): references/benchmark-execution.md.

Limitations

  • Evaluator behavior is fixed to the filesystem contract and evaluate_rag.py; it does not substitute for custom offline judges or non-RAG benchmarks.
  • Vector DB / embedding choices follow deployed ingestor and RAG env — not overridden by this CLI alone.
  • Scores depend on retrieval quality, judge model availability, and NVIDIA_API_KEY; empty contexts yield partial RAGAS metrics (see references).
  • Large procedural detail lives under references/ to keep routing concise; read those files when the user needs step-by-step conversion, full flags, or error tables.

Troubleshooting

| Error / signal | Likely cause | What to do | |----------------|--------------|------------| | Immediate exit mentioning NVIDIA_API_KEY | Missing or invalid key | Set key via secure channel; see credential hygiene in references/benchmark-execution.md. | | train.json must be a JSON array | Wrong JSON shape | Top-level array of objects; validate per references/dataset-and-conversion.md. | | Fewer rows in evaluation_data.json than train.json | Per-query failures | Check stderr: network or stream JSON errors; see error table in benchmark-execution. | | Empty generated_contexts everywhere | Retrieval gap | Verify collection, ingestion, top_k / vdb_top_k, and ingestor_server_url without /v1 suffix. | | Ingestor 404 on upload | Bad ingestor base URL | Pass http://host:port only — code appends /v1/. |

Full signal table: references/benchmark-execution.md#common-error-cases-and-signals.

Gotchas

  • Run from repo root: paths and imports in scripts/eval/evaluate_rag.py assume this; a wrong directory silently breaks imports.
  • --ingestor_server_url: pass http://host:port without /v1—the code appends /v1/ automatically. Including /v1 causes 404s on ingestor calls.
  • Vector DB / embedding settings: not set by this CLI; configure via the deployed ingestor and RAG server env vars (e.g. APP_VECTORSTORE_URL, embedding model).
  • --model / --llm_endpoint: forwarded verbatim only when explicitly set; omit to keep the server's configured LLM.
  • Stale collections: a previous run's ingested data persists unless you use --force_ingestion. Use --collection with a unique name when comparing quality across isolated runs.
  • Empty context metrics: if all generated_contexts are empty, RAGAS scores only nv_accuracy and leaves the other two metrics blank—this is not a silent success.

Source of truth

| Piece | Location | |-------|----------| | Driver | scripts/eval/evaluate_rag.py (CORPUS_DIRECTORY = corpus, EVAL_DATA = train.json) | | Human README (always in-repo) | scripts/eval/README.md | | Full CLI (flags, defaults) | scripts/eval/evaluate_rag.py --help; references/evaluate-rag-cli.md | | Dataset / conversion | references/dataset-and-conversion.md | | Runs, outputs, errors | references/benchmark-execution.md | | Result analysis scripts | references/result-analysis.md | | Latency / throughput | rag-perf skill, docs/performance-benchmarking.md |

Agent playbook

  1. Run eval — uv sync --project scripts/eval then uv run --project scripts/eval python scripts/eval/evaluate_rag.py with required --dataset-paths, --host, and --port (and env NVIDIA_API_KEY). Argument --ingestor_server_url is optional (defaults to http://localhost:8082); pass it only when overriding the ingestor endpoint.
  2. Quality tuning — See references/benchmark-execution.md: --top_k/--vdb_top_k, reranker and query-rewriting toggles, --temperature, --top-p, --max-tokens.
  3. Data conversion — Follow references/dataset-and-conversion.md.
  4. Analyze results — references/result-analysis.md; quick scan: python3 -m json.tool results/<dataset>/rag_<dataset>_evaluation_summary.json.
  5. Error triage — references/benchmark-execution.md#common-error-cases-and-signals.

Anti-Patterns

  • Changing the eval dataset while comparing runs: It destroys the baseline and makes improvements meaningless.
  • Confusing latency smoke tests with answer-quality evaluation: Fast responses can still be wrong or ungrounded.
  • Claiming gains without showing the baseline, scorer, and prompt or config deltas that changed the outcome.

Verification Protocol

Before claiming "skill applied successfully":

  1. Pass/fail: The evaluation plan names the dataset, scorer, and baseline run before comparing variants.
  2. Pass/fail: Retrieval and generation quality are separated so failures are attributed to the correct stage.
  3. Pass/fail: Reported improvements include reproducible commands, configs, or artifacts that another maintainer can rerun.
  4. Pressure-test scenario: Re-evaluate a RAG change where latency improves but groundedness falls on the held-out set.
  5. Success metric: Quality claims survive a rerun on the same eval slice with no hidden configuration drift.
<!-- PORTABILITY:START -->

Cross-Client Portability

This skill is written to stay usable across GitHub Copilot, Claude Code, Codex, and Gemini CLI.

  • GitHub Copilot: keep the folder in a Copilot-visible skill or plugin path, or wrap the workflow as project instructions if the host does not support portable skill folders directly.
  • Claude Code: keep the folder in a local skills directory or a compatible plugin or marketplace source.
  • Codex: install or sync the folder into $CODEX_HOME/skills/<skill-name> and restart Codex after major changes.
  • Gemini CLI: this repository generates a project command named /skills:rag-eval from this skill. Rebuild commands with python scripts/export-gemini-skill.py rag-eval and then run /commands reload inside Gemini CLI.
<!-- PORTABILITY:END --> <!-- MCP:START -->

MCP Availability And Fallback

Preferred MCP Server: None required

  • Fallback prompt: "Use the rag-eval skill without MCP. Rely on the local SKILL.md, bundled references or scripts, and manual verification. Show the exact commands, evidence, and final checks you used before concluding."
  • If the current host does not expose a matching server, use the bundled references, scripts, native toolchain, and manual workflow already described in this skill.
  • Treat direct local verification, rendered output, logs, tests, or screenshots as the fallback evidence path before completion.
<!-- MCP:END -->

Related Skills

  • development-workflow: Use it when the eval work needs a scoped implementation plan with explicit quality gates.
  • documentation-verification: Use it when the output is an evaluation report or benchmark note that must stay source-backed.
  • cloud-design-patterns: Use it when evaluation results drive bigger architecture changes in the RAG stack.

From the file to a first result

The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.

View the source and supporting files

This download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.

1. Download the file

Download SKILL.md

From the root of a test project, save the file as .skill-downloads/nvidia-rag-evaluation-mrwakc41/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.

Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.

mkdir -p '.skill-downloads/nvidia-rag-evaluation-mrwakc41' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/nvidia-rag-evaluation-mrwakc41/download' --output '.skill-downloads/nvidia-rag-evaluation-mrwakc41/SKILL.md.part' && mv '.skill-downloads/nvidia-rag-evaluation-mrwakc41/SKILL.md.part' '.skill-downloads/nvidia-rag-evaluation-mrwakc41/SKILL.md'

2. Check prerequisites

Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.

Environment declared by the author: Guidance imported from the NVIDIA RAG Blueprint evaluation skill for current RAG eval workflows and benchmark tooling.

Original excerpt: Prerequisites
  • Repo cloned; run commands from repo root (imports and paths assume this).
  • Python 3.11+ and uv; eval deps: uv sync --project scripts/eval.
  • Reachable RAG server and ingestor (defaults often localhost:8081 / 8082).
  • NVIDIA_API_KEY for RAGAS (see credential hygiene); optional RAG_EVAL_JUDGE_MODEL.
  • Dataset roots passed to --dataset-paths each contain corpus/ and train.json.

The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.

3. Load the skill

After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.

Claude Code
test -f '.skill-downloads/nvidia-rag-evaluation-mrwakc41/SKILL.md' && test -s '.skill-downloads/nvidia-rag-evaluation-mrwakc41/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/rag-eval' && cp -R '.skill-downloads/nvidia-rag-evaluation-mrwakc41' '.claude/skills/rag-eval'

Cursor
test -f '.skill-downloads/nvidia-rag-evaluation-mrwakc41/SKILL.md' && test -s '.skill-downloads/nvidia-rag-evaluation-mrwakc41/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/rag-eval' && cp -R '.skill-downloads/nvidia-rag-evaluation-mrwakc41' '.cursor/skills/rag-eval'

Codex
test -f '.skill-downloads/nvidia-rag-evaluation-mrwakc41/SKILL.md' && test -s '.skill-downloads/nvidia-rag-evaluation-mrwakc41/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/rag-eval' && cp -R '.skill-downloads/nvidia-rag-evaluation-mrwakc41' '.agents/skills/rag-eval'

OpenSkills

OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.

Official OpenSkills installation
openskills install './.skill-downloads/nvidia-rag-evaluation-mrwakc41'

openskills read 'nvidia-rag-evaluation-mrwakc41'

Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.

For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.

openskills sync

Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.

4. Try a first task

Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:

Read .skill-downloads/nvidia-rag-evaluation-mrwakc41/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.

Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.

Related skills