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
Use it when you need to measure retrieval and answer quality of a RAG pipeline on a prepared dataset and compare several configurations.
Avoid it for deploying or repairing services, latency/load testing, or evaluating APIs that lack the corpus/ + train.json layout.
Security analysis
SafeThe 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 madeExamples
Run a RAG quality evaluation on /path/to/my_dataset against the server at localhost:8081 and summarize the RAGAS scores.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.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_KEYfor RAGAS (see credential hygiene); optionalRAG_EVAL_JUDGE_MODEL.- Dataset roots passed to
--dataset-pathseach containcorpus/andtrain.json.
Instructions
- Prepare data — Ensure each dataset directory matches the layout and
train.jsonrules inreferences/dataset-and-conversion.md. When sources arrive as public links (sites or dataset pages), materialize documents undercorpus/—prefer PDF for multimodal content so images stay embedded; convert CSV/JSONL/etc. using the patterns there. - Run eval —
uv run --project scripts/eval python scripts/eval/evaluate_rag.pywith--dataset-paths,--host, and--port. Seereferences/benchmark-execution.mdfor command examples, outputs, and errors. Usereferences/evaluate-rag-cli.mdfor flag-level detail. - Tune quality — Adjust
--top_k/--vdb_top_k, reranker and query-rewriting toggles, and generation overrides (--temperature,--top-p,--max-tokens) as documented inreferences/benchmark-execution.mdwhen comparing retrieval/generation configs for RAGAS scores. - Analyze results — Use
references/result-analysis.mdfor scripts; scanrag_*_evaluation_summary.jsonfor headline RAGAS metrics. - 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.pyassume this; a wrong directory silently breaks imports. --ingestor_server_url: passhttp://host:portwithout/v1—the code appends/v1/automatically. Including/v1causes 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--collectionwith a unique name when comparing quality across isolated runs. - Empty context metrics: if all
generated_contextsare empty, RAGAS scores onlynv_accuracyand 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
- Run eval —
uv sync --project scripts/evalthenuv run --project scripts/eval python scripts/eval/evaluate_rag.pywith required--dataset-paths,--host, and--port(and envNVIDIA_API_KEY). Argument--ingestor_server_urlis optional (defaults tohttp://localhost:8082); pass it only when overriding the ingestor endpoint. - Quality tuning — See
references/benchmark-execution.md:--top_k/--vdb_top_k, reranker and query-rewriting toggles,--temperature,--top-p,--max-tokens. - Data conversion — Follow
references/dataset-and-conversion.md. - Analyze results —
references/result-analysis.md; quick scan:python3 -m json.tool results/<dataset>/rag_<dataset>_evaluation_summary.json. - 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":
- Pass/fail: The evaluation plan names the dataset, scorer, and baseline run before comparing variants.
- Pass/fail: Retrieval and generation quality are separated so failures are attributed to the correct stage.
- Pass/fail: Reported improvements include reproducible commands, configs, or artifacts that another maintainer can rerun.
- Pressure-test scenario: Re-evaluate a RAG change where latency improves but groundedness falls on the held-out set.
- Success metric: Quality claims survive a rerun on the same eval slice with no hidden configuration drift.
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-evalfrom this skill. Rebuild commands withpython scripts/export-gemini-skill.py rag-evaland then run/commands reloadinside Gemini CLI.
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.
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 filesThis 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.mdFrom 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_KEYfor RAGAS (see credential hygiene); optionalRAG_EVAL_JUDGE_MODEL.- Dataset roots passed to
--dataset-pathseach containcorpus/andtrain.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 installationopenskills 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 syncManual 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.
Create Interactive Maps with kepler.gl
Data & AI
Create interactive map visualizations and export standalone HTML using the keplergl Python package. Use to plot geospatial data from DataFrames, GeoJSON, or CSV.
Agent-Driven Parameter Optimization
Data & AI
Guide for optimizing configurable systems with a measurable objective, using bounded trials and evidence-based recommendations.
ICP Visitor Outreach
Data & AI
Identify signed-up users matching the ideal customer profile but stalled, and draft personalized outreach to re-engage them.