Data flow · rag-eval-harness · offline, zero API keys
Offline RAG evaluation harness, measured layer by layer
Solid arrows are the data path: the 12-doc corpus builds the TF-IDF index, the 20 labelled questions drive cosine top-5 retrieval, and the offline extractive answerer returns a verbatim sentence from the retrieved context. Dashed arrows are the passive gold reference — the same data/eval.jsonl items supply both the query set and the gold doc ids / gold answers the scorers compare against. Nothing here reaches the network: the zero-key path is the pipeline, and the Claude branch of generate.py (--llm + key) is a swap point, not a node. Faithfulness sits on a dashed node because it is a construction invariant of the extractive answerer, not a measured score.