Reviewer guide

Evaluate Kwik 112 in 120 seconds

Ring-time middleware, demonstrated in a browser: the citizen keeps the dial pad; the dispatcher receives a pre-graded call. Built on the AssemblyAI Voice Agent API — speech-to-text, agent replies, turn-taking, and mid-call tool calling; optional severity refinement runs through the AssemblyAI LLM Gateway. No live 112 integration.

Independent synthetic-data demonstration — not an official 112, ERSS, government, or C-DAC service.

No login No credentials No setup

~60 seconds

1. Place a 112 call

Opens the voice station. Play a scripted caller (Ramesh — Hinglish accident, John — English market fire, or Sharma ji — Hinglish cardiac arrest) or start a live demo call in Hindi, Hinglish, or English. Watch the transcript, emotion telemetry, and instant rules grade appear as the caller speaks.

Place a test call

~2 minutes

2. Dispatch like an operator

Open the console. Pick an incident, read the safety audit ('Why this priority?'), run the three human checkpoints (INTAKE → DISPATCH → RESOLUTION), try to override without a written note — it will refuse. Multi-caller fusion flags duplicate calls for human approval.

Open the console

~3 minutes

3. Reproduce the benchmark

Run one command against the versioned corpus. The results page renders the committed measurements with explanatory copy; latency varies by machine and run.

See the held-out results

Problem

The problem is a busy intake queue, not a missing citizen app. These sources describe different places, periods, and measures; vehicle response time is not telephone ring time.

  • Telangana reporting puts genuine emergencies at about 0.28% of roughly 16 lakh daily calls across the combined 112/Dial 100 system. 25 June 2026 report, citing police data.
  • The MHA NERS guidelines target an average answer speed below 15 seconds. Separately, a Telangana DGP statement reports a national emergency response average around 18 minutes. These are different stages of response. MHA guidelines, 2015, page 20; DGP report, 6 August 2026.
  • Delhi reported roughly 10,000 blank calls out of 15,672 daily calls shortly after the 112 launch. The report also describes IVR filtering already in place. 1 October 2019 report.
  • SaveLIFE Foundation v. Union of India, W.P.(C) 726/2024, order dated 26 May 2026 (2026 INSC 567), directs integration of 100, 101, 102, 108, 1033 and 1091 into 112 within three months. As of this review, that stated window has closed; this is a calendar inference, not proof of nationwide implementation. Official order, 26 May 2026.

Working build

No login, no credentials, no setup: place a call above, watch the transcript, detected language, and deterministic grade appear live, then run the three human checkpoints. Every number on /benchmark regenerates from the repository with one command.

Usability

The proposed citizen interface is the dial pad: a keypad phone on a voice-capable 2G network, no app, URL, reading, or data plan. Hindi, Hinglish, and English today. This browser demonstration emulates that call; it is not connected to the telephone network. The dispatcher receives a pre-graded card.

Product thinking

The live agent proposes an incident through a JSON-Schema tool, but the console owns the record: the AI can raise severity above the deterministic floor, never lower it — enforced in code with regression and prompt-injection tests, not a prompt promise. This is a no-downgrade guarantee on the grade, not a claim of perfect triage.

A calm caller reporting no pulse must still grade critical — the local rules set that floor regardless of tone. Any prank signal is an annotation for human review, never proof of a prank, a downgrade, or automatic removal from the queue. The intended deployment sits before C-DAC NG112 call handling; this build demonstrates that boundary without claiming an integration.

End-to-end thinking

Voice intake → instant rules grade → optional escalate-only refinement → three human checkpoints with written-note overrides → unit reservation, road-following routes, and a session-local audit trail. Every value carries provenance: local rules / model / fallback; measured / simulated / absent.

Honesty

On a 30-call synthetic regression suite the deterministic grader holds 100% critical recall (9/9; Wilson 95% lower bound 0.70) — no critical call is missed — with location text 100% (25/25). Type and severity classification on that corpus is a work in progress; the full case-level breakdown, including under- and over-triage, is published unedited on /benchmark. This is a development regression suite, not clinical or field evidence. Reproduce via npm run evaluate:local; CI repeats the critical-recall gate. The model cannot dispatch, and the small corpus cannot establish real-world safety.

Prior art and the accountable grading boundary

VANKI proved translation belongs on the 112 line. We start where that ends: after the words are understood, something still has to decide how dangerous the call is — and must never quietly decide it is less dangerous than it looks.

Bengaluru's VANKI supports multilingual emergency communication; Telangana's TG-ERSS also reports automated handling and filtering. We credit those deployed systems. The cited reports do not publish an executable severity floor or reproducible grading corpus; that is the evidence Kwik makes inspectable, not a claim that nobody else has safety controls. VANKI, 30 April 2026; TG-ERSS, 6 August 2026.

Why keep a model away from dispatch authority?

A Danish randomized trial found no significant improvement in dispatcher cardiac-arrest recognition in its primary comparison. That is why Kwik grades with rules first and requires human dispatch decisions, rather than treating AI assistance as proven clinical benefit. Blomberg et al., 2021 randomized trial. The human-oversight principles of EU AI Act Article 14 inform the design; this demonstration claims no certification or regulatory compliance.

What is real, simulated, or synthetic — in one table

Every capability of this build, labelled. The same provenance labels appear inside the product interface.

CapabilityStatusDetail
Live AssemblyAI voice agentRealBrowser audio streams to the AssemblyAI Voice Agent API — Universal-3 speech-to-text, agent replies, turn-taking, and a mid-call propose_incident_update tool that feeds the console
Scripted callersSimulatedDemo personas with synthetic emotion frames, labelled Scripted call in the UI — never dressed up as measurements
Triage engineRealDeterministic multilingual rules run locally in milliseconds; committed test suite covers the no-downgrade floor and injection cases
Model refinementReal, optionalOptional severity enrichment via the AssemblyAI LLM Gateway; may only escalate, and falls back silently to the local grade on any failure
Incidents, units, ETAsSyntheticA simulated Delhi fleet; ETAs use a simulated road-adjusted travel model and say so in the interface
Audit trailSession-local demoBrowser-local decisions persist across reloads and browser sessions until storage is cleared; no shared production record store

The stack

The live call runs end to end on the AssemblyAI Voice Agent API over a single WebSocket: Universal-3 speech-to-text, agent replies, turn-taking and barge-in, keyterm biasing from the triage lexicon, and a mid-call propose_incident_update tool. The deterministic no-downgrade floor and the evaluation harness behind every number on /benchmark are provider-independent code.

LayerProviderWhy
Voice agentAssemblyAI Voice Agent APIUniversal-3 STT, agent replies, turn-taking/barge-in, keyterm biasing, and JSON-Schema tool calling over one WebSocket
Refinement modelAssemblyAI LLM Gateway (qwen3.5-4b-32k-fast)Optional severity enrichment; the deterministic grader is provider-independent — refinement may only escalate
AppNext.js on VercelServer-minted 60-second AssemblyAI session tokens; the API key never reaches the browser
RoutingOSRM (OpenStreetMap)Road-following dispatch routes with a straight-line offline fallback

Boundaries

  • Kwik 112 is an independent demonstration. It is not an official 112, ERSS, Government of India, or C-DAC service, and it contacts no emergency infrastructure.
  • Use synthetic scenarios only. A live call sends microphone audio to the AssemblyAI Voice Agent API; optional refinement sends transcript text to the AssemblyAI LLM Gateway, and address lookup may send location text to a geocoder. Do not enter real personal data. The AI never dispatches; human overrides require a written note.
  • The benchmark is a 30-case versioned synthetic corpus with a held-out split — a safety-oriented engineering measurement, not clinical evidence.