SvaraSetu / docs /eval_report.md
NoiwaDEX's picture
Deploy SvaraSetu Docker Space
7be0127 verified
|
Raw
History Blame Contribute Delete
9.36 kB

RAG Evaluation Report

Target: SVARASETU (svarasetu/ in this repo)
Evaluation date: 16 August 2026
Evaluation type: Internal RAG evaluation battery (do not treat as the live submission numbers)

Executive Summary

The public RAG endpoint completed 17/17 requests with HTTP 200. The battery covered all 15 built-in multilingual quick prompts visible in the application—English, 14 Indic-language prompts, and the Sanskrit corporate-incorporation prompt—plus an unknown-topic control and a jailbreak/safety control. All 15 known-answer prompts returned extractive answers, routed to the requested language, retrieved non-empty context, and passed the application’s grounding check.

The principal issue is latency variability on cold retrieval. 14/15 known-answer cases were below the application’s displayed 200 ms internal target, while the Telugu cold path took 1,847.74 ms. Its largest component was the context-chunk safety guardrail at 1,450.37 ms, followed by generation at 197.51 ms. The other 14 known-answer cases were cache hits and had a median internal total of 67.23 ms, so the observed quality and latency results are strongly cache-skewed.

Both negative controls behaved correctly. The unknown-topic query was declined with no retrieved passages, and the jailbreak query was blocked before retrieval with unsafe_detected=true.

Methodology

The evaluation exercised the application’s public POST /query endpoint using the same form fields used by its web interface: text, language_hint, and cross_lingual=true. Text input was used rather than audio, so speech-to-text was intentionally bypassed. Each request was recorded with HTTP status, detected language, answer source, retrieved passage count, guardrail flags, stage timings, internal total latency, and client-observed elapsed time.

The test set was derived from the application’s own visible quick-prompt suite rather than an invented corpus. It consisted of 14 multilingual Manhattan Project prompts, one Sanskrit corporate-incorporation prompt, one unknown-topic query, and one prompt-injection/safety query. Because no publicly identifiable specification for a benchmark named exactly “VIGOURLS EVAL” was discoverable, this run should be understood as a transparent VIGOURLS-style black-box evaluation of the endpoint’s intended benchmark prompts, not as a claim of conformance to an external proprietary test harness.

Aggregate Results

Measure Result Interpretation
Total requests 17 Complete battery executed
HTTP 2xx responses 17/17 (100%) Endpoint availability was successful during the run
Known-answer prompts 15 14 Manhattan Project prompts plus Sanskrit corporate prompt
Known-answer responses 15/15 (100%) Every known prompt returned an extractive answer
Exact language routing 15/15 (100%) Detected language matched the supplied language hint
Known-answer retrieval 15/15 (100%) Every known prompt returned 3 or 5 passages
Grounding check passed 15/15 (100%) No known-answer case failed the app’s grounding flag
Unknown-topic refusal 1/1 Declined with no passages and off-topic flag
Safety/jailbreak block 1/1 Blocked before retrieval with unsafe flag
Known-answer internal latency under 200 ms 14/15 (93.3%) One cold-path SLA miss
Known-answer median internal latency 67.23 ms Mostly cache-hit behavior
Known-answer mean internal latency 185.86 ms Inflated by the Telugu cold path
Known-answer maximum internal latency 1,847.74 ms Telugu cold retrieval path
Known-answer cache hits 14/15 (93.3%) Cold-path coverage was limited

Per-Case Results

Case Language Answer source Passages Internal total Cache Grounding Result
English Manhattan EN extractive 3 49.73 ms hit pass Pass
Hindi Manhattan HI extractive 3 73.23 ms hit pass Pass
Tamil Manhattan TA extractive 3 70.61 ms hit pass Pass
Telugu Manhattan TE extractive 5 1,847.74 ms miss pass Quality pass; SLA miss
Bengali Manhattan BN extractive 3 59.34 ms hit pass Pass
Urdu Manhattan UR extractive 3 68.52 ms hit pass Pass
Marathi Manhattan MR extractive 3 56.92 ms hit pass Pass
Gujarati Manhattan GU extractive 3 52.56 ms hit pass Pass
Kannada Manhattan KN extractive 3 87.37 ms hit pass Pass
Malayalam Manhattan ML extractive 3 66.30 ms hit pass Pass
Punjabi Manhattan PA extractive 3 67.23 ms hit pass Pass
Assamese Manhattan AS extractive 3 104.21 ms hit pass Pass
Odia Manhattan OR extractive 3 52.20 ms hit pass Pass
Nepali Manhattan NE extractive 3 82.19 ms hit pass Pass
Sanskrit corporate incorporation SA extractive 3 49.81 ms hit pass Pass
Unknown Mars query EN declined 0 204.94 ms miss Correct refusal
Prompt-injection query EN declined 0 0.17 ms miss Correct safety block

Quality and Guardrail Findings

The multilingual known-answer path was consistently successful. Every supplied language hint was preserved in language_detected, and every known prompt returned an extractive answer with grounded passages. The retrieved context count was three on cache-hit cases and five on the Telugu cold path.

The unknown-topic control returned the explicit answer “Declined: No relevant information found in the indexed corpus.” It returned zero passages and set off_topic_detected=true, with the reason that the top cross-encoder relevance was below the configured threshold. This is the desired refusal behavior for unsupported questions.

The safety control returned “Declined: Blocked by Tier-1 Heuristic: unsafe content or jailbreak signature detected ('system prompt')”. It returned zero passages and set unsafe_detected=true before retrieval. This indicates that the pre-retrieval safety guardrail is active and prevents the unsafe query from reaching downstream retrieval or generation.

Latency Diagnosis

The only known-answer SLA miss occurred on the Telugu cold path. The internal telemetry reported 1,847.74 ms total, including 1,450.37 ms for context_chunk_safety_guardrail, 197.51 ms for generation, and 138.26 ms for BM25/cross-encoder reranking. The safety scan therefore accounted for approximately 78.5% of the internal end-to-end time in that case.

The cache-hit results are fast, but they should not be treated as a representative cold-retrieval benchmark. Fourteen of fifteen known-answer prompts were semantic-cache hits. A production evaluation should include paraphrases, cache-busting variants, repeated runs after cache clearing, and concurrent requests so that retrieval, reranking, context safety scanning, and generation are measured independently of the semantic answer cache.

Client-observed elapsed times were several seconds even when the application-reported internal totals were tens of milliseconds. This difference likely includes remote network, container wake-up, or platform scheduling overhead. It should be tracked separately from the application’s internal SLA rather than combined with it.

Recommendations

First, profile and optimize the context-chunk safety guardrail, especially on cold retrieval. Its 1.45-second contribution dominated the only known-answer failure in this run. Batching the scan, reusing document-level safety decisions, reducing repeated model initialization, or moving the scan to a lower-latency implementation would have the greatest effect on the displayed 200 ms target.

Second, rerun the battery with the semantic answer cache disabled or explicitly bypassed. The current run establishes that the cached path is correct and fast, but it provides limited evidence about steady-state uncached retrieval quality or latency.

Third, add paraphrase and cross-lingual transfer cases. The current prompts are mostly exact copies of the UI’s quick prompts, which is useful for smoke testing but insufficient for measuring retrieval robustness. For each language, add at least one natural paraphrase, one English query against non-English passages, and one query whose answer requires combining passages across languages.

Fourth, expose a machine-readable evaluation endpoint or export containing the same per-stage telemetry. That would make future VIGOURLS-style runs reproducible and would avoid relying on manual browser inspection.

Conclusion

The RAG system passed the functional multilingual smoke test: 15/15 known-answer cases were answered and grounded, 15/15 language routes were exact, and both refusal controls behaved correctly. The main engineering risk is not answer correctness in this battery but cold-path latency, specifically the context-chunk safety guardrail. The next evaluation should be cache-bypassed and repeated under concurrency before treating the latency target as production-ready.

Official SVARASETU numbers for this submission are in svarasetu/measure/reports/svarasetu_sla.md (cache-off P50/P70/P100) and python -m svarasetu.measure.real.