ProjectBuild an AI Voice Receptionist: the explanation · Module 17: Evaluating a voice agent · part 19 of 23
Part 19 · Module 17: Evaluating a voice agent

Module 17: Evaluating a voice agent

24 min read·
About 40 minutes · Needs: Module 11 (the agent and its tools), Module 9 (Whisper and WER), Module 15 (the safety guards) · Code: backend/evals/run.py, backend/evals/fixtures.py, backend/evals/speech.py, backend/evals/latency.py, backend/evals/voice_common.py

Where this fits

WHERE THIS FITS The Medilane voice receptionist this module CLIENT React API LAYER FastAPI SAFETY SPEECH IN BRAIN LangGraph SPEECH OUT KNOWLEDGE AND DATA pgvector OPERATIONS Langfuse, Prometheus Caller app browser mic Staff app desk and admin REST API staff, sessions Voice socket audio both ways Auth + RBAC staff roles, voice tokens Guardrails emergency, PII VAD Silero, turns Whisper speech to text Language en, hi, Hinglish Agent tools, confirm Open models Groq: gpt-oss, Qwen Kokoro TTS en + hi voices Retrieval multilingual Ingestion clinic documents PostgreSQL clinic, calls, vectors Redis events, limits Front desk live events, hand-offs Observability traces, metrics Evaluation WER, safety, latency
This module (blue) is the Evaluation box: it drives the real agent, Whisper and Kokoro with prepared inputs and checks the results in PostgreSQL.

Tests check that each function does what its author meant. Evaluations check that the whole receptionist behaves well on realistic calls, in three languages, with the model in the loop. This module opens the "Evaluation" box: the datasets, the six suites and the gate that can stop a release.

The rest of this project is yours to keep

This project is bought on its own, once, and stays readable afterwards, including the parts added to it later.

Or open everything with a plan