Live Demo · Medical Clinic AI Receptionist · by Harvey Liu
A live call to a production AI voice agent for a family clinic. I designed and built every layer myself, from SIP signalling and the media engine to the RAG pipeline and intent classifier. Both call paths reach the same agent, with a end-to-end response.
Choose how to call
Call from any phone; standard call rates apply. Your phone → Amazon Connect IVR → Amazon Lex V2 → AWS Lambda, spoken by Amazon Polly. Key 1 goes on to my AI agent; key 2 stays in a Lex bot and stores bookings in DynamoDB.
Ask for a person at any time, or press 0 to be transferred to Harvey. · How do these four paths compare? →
Call from any phone; standard call rates apply. Your phone → Twilio Studio IVR. Key 3 goes through Twilio ConversationRelay and a WebSocket to my Python AI agent; key 4 goes to a Google Dialogflow CX agent with a knowledge base.
What you will hear: “Hello, and thank you for calling Harvey’s Clinic. This demo line is powered by Twilio. For sales, press 1. For support, press 2. To speak with Harvey’s Python AI agent, press 3. To speak with our Google Dialogflow CX agent, press 4. To speak with Harvey directly, press 0. To hear these options again, press star.”
Press 0 at the main menu to be transferred to Harvey. · How do Twilio voice AI options compare? →
More intents to try:
Try asking (QUERY):
Chitchat:
Please ask me a question about the clinic knowledge base ▾
About This System
A production-grade AI phone assistant built from the ground up — custom Java SIP signalling server, VoIP media engine, Aliyun ASR/TTS, local RAG pipeline with BGE embeddings and pgvector, real-time 5-class intent classification, and sub-2s end-to-end latency. The same agent also answers calls through Amazon Connect, bridged by Amazon Lex V2 and AWS Lambda.
Key Technical Highlights
Compare the four Amazon Connect paths: Lex + Lambda, Lex booking bot, Bedrock Flow and Agentic CX →
Changelog
November 2026
Twilio Phone Line (Method 2, keys 3 and 4)
Added a second phone line on Twilio. A Twilio Studio IVR answers the call and routes by keypress. Key 3 uses Twilio ConversationRelay: Twilio handles speech recognition and text-to-speech, and streams each turn over a WebSocket to my Python agent, which runs the same RAG and intent backend. Key 4 uses Twilio's Connect Virtual Agent to hand the call to a Google Dialogflow CX agent with a knowledge base; Press 0 to reach me directly, or star to repeat the menu.
October 2026
Self-service Booking Line (key 2)
Added an Amazon Lex V2 bot for booking, checking and cancelling family-doctor appointments. Lex handles intent recognition and slot filling; a Python Lambda code hook reads back and verifies the caller's health number and date of birth once per call, then reads and writes DynamoDB. A conditional write enforces one appointment per patient, health numbers are masked in logs, and Lambda's IAM role can reach only that one table.
October 2026
Amazon Connect Phone Line (key 1)
The agent now also answers real phone calls at +1 236-466-1681. Amazon Connect runs the IVR menu, Lex V2 transcribes speech, and a Lambda adapter forwards each turn to the same RAG and intent backend. Includes silence handling, timeout retry, scheduled warm-up, and live-agent transfer.
June 5, 2026
L1 / L2 Redis Semantic Cache
Two-tier Redis cache intercepts repeat and paraphrased queries before RAG — exact match under 5ms, semantic match under 300ms. Includes FAQ warmup, fallback detection, and cache export tool.
Copyright & Attribution