- प्रीमियम वर्कशॉप्स में फोन कॉल मिस होने से होने वाले revenue loss को हल करने के लिए, वास्तविक कॉल रिसीव करने वाला AI रिसेप्शनिस्ट ‘Axle’ विकसित किया गया
- AI को Retrieval-Augmented Generation(RAG) के आधार पर बनाया गया, ताकि वेबसाइट से जुटाई गई वास्तविक services और pricing जानकारी के आधार पर सटीक जवाब दिए जा सकें
- Vapi, Deepgram, ElevenLabs, FastAPI, MongoDB Atlas आदि को जोड़कर कॉल कनेक्शन, speech recognition·synthesis, और conversation logs storage जैसी सुविधाएँ लागू की गईं
- voice quality को natural tone और short sentence structure के हिसाब से ट्यून किया गया, ताकि ग्राहकों को दोस्ताना लेकिन प्रोफेशनल जवाब मिलें
- आगे इसे booking system·SMS alerts·callback dashboard तक बढ़ाने की योजना है, और business-specific voice agents में knowledge base और escalation design को मुख्य माना गया है
AI रिसेप्शनिस्ट बनाने की प्रक्रिया
- लग्ज़री कार वर्कशॉप चलाने वाले अपने भाई को फोन कॉल्स का जवाब न दे पाने की वजह से हर महीने हजारों डॉलर का नुकसान हो रहा था; इस समस्या को हल करने के लिए कस्टम AI रिसेप्शनिस्ट ‘Axle’ बनाया गया
- इसे साधारण chatbot नहीं, बल्कि वास्तविक कॉल उठा सकने वाले voice-based agent के रूप में डिज़ाइन किया गया, जो pricing, business hours, policies जैसी वास्तविक जानकारी के आधार पर ग्राहकों के सवालों का जवाब देता है
- प्रोजेक्ट को तीन चरणों में बाँटा गया: knowledge base बनाना(RAG pipeline) → फोन कनेक्शन और server integration → voice quality और conversation tone tuning
Step 1: दिमाग बनाना (RAG पाइपलाइन)
- AI को वास्तविक डेटा के आधार पर जवाब देने के लिए Retrieval-Augmented Generation (RAG) तरीका इस्तेमाल किया गया
- सिर्फ LLM इस्तेमाल करने पर गलत pricing बताने जैसी hallucination का जोखिम था, इसलिए जवाबों को केवल वास्तविक जानकारी तक सीमित रखा गया
- website data scraping के जरिए 21 से अधिक documents इकट्ठे किए गए, जिनमें service types, pricing, estimated time, business hours, payment methods, warranty, और loaner policy जैसी जानकारी शामिल थी
- MongoDB Atlas में knowledge base स्टोर किया गया, और Voyage AI (voyage-3-large) मॉडल से 1024-dimensional vector embeddings बनाए गए
- Atlas Vector Search index के जरिए semantic search किया गया
- जब ग्राहक का सवाल आता है, तो उसी embedding model से query को बदलकर semantic रूप से मिलते-जुलते top 3 documents खोजे जाते हैं
- Anthropic Claude (claude-sonnet-4-6) मॉडल का उपयोग करके खोजे गए documents को context बनाकर जवाब तैयार किया गया
- system prompt में “knowledge base के बाहर की जानकारी नहीं, जवाब संक्षिप्त और conversational हों, और न पता होने पर callback offer करें” जैसे नियम शामिल थे
- नतीजतन, terminal में “oil change की कीमत क्या है?” जैसे सवालों पर वास्तविक pricing और service details के साथ सटीक जवाब दिए जा सके
Step 2: वास्तविक फोन नंबर से कनेक्ट करना
- AI के दिमाग को वास्तविक फोन सिस्टम से जोड़ने के लिए Vapi प्लेटफ़ॉर्म का उपयोग किया गया
- यह फोन नंबर खरीदना, Deepgram आधारित speech recognition, ElevenLabs आधारित speech synthesis, और real-time function calling जैसी सुविधाएँ देता है
- FastAPI webhook server बनाया गया
- Vapi ग्राहक के सवाल को
tool-calls request के रूप में /webhook endpoint पर भेजता है
- server इसे RAG pipeline को भेजता है, Claude का जवाब लेकर फिर Vapi को वापस भेज देता है
- बातचीत की स्वाभाविक गति बनाए रखने के लिए latency को न्यूनतम रखना जरूरी था
- Ngrok का उपयोग करके local server को बाहरी HTTPS URL के रूप में expose किया गया, ताकि development के दौरान भी real-time testing हो सके
-
Vapi assistant configuration
- greeting और दो tools(
answerQuestion, saveCallback) को webhook से जोड़ा गया
- सवालों का जवाब देने या जवाब न होने पर नाम और फोन नंबर लेकर callback सेव करने का flow बनाया गया
- conversation memory feature से पिछली बातचीत का context बनाए रखा गया
- “आपके business hours क्या हैं?” → “तो tire replacement कितना पड़ेगा?” जैसी लगातार queries संभाली जा सकती हैं
-
MongoDB में call logs स्टोर करना
- caller number, सवाल, जवाब, human agent को transfer हुआ या नहीं, और timestamp रिकॉर्ड किए गए
- callback requests को अलग
callbacks collection में स्टोर किया गया, ताकि बाद में follow-up संपर्क किया जा सके
- इससे customer inquiry patterns और call volume analysis करना संभव हुआ
Step 3: voice quality ट्यून करना
- text responses और voice responses के फर्क को ध्यान में रखते हुए voice delivery optimization की जरूरत थी
- जो वाक्य लिखित रूप में स्वाभाविक लगते हैं, वे आवाज़ में सुनने पर अटपटे लग सकते हैं
-
ElevenLabs voice selection
- लगभग 20 voices टेस्ट करने के बाद, ‘Christopher’ voice सबसे स्वाभाविक और वर्कशॉप के माहौल के लिए सबसे उपयुक्त लगी
- बहुत ज़्यादा robotic या ज़रूरत से ज़्यादा cheerful voices उपयुक्त नहीं थीं
-
system prompt में बदलाव
- छोटे वाक्य, Markdown हटाना, “बहुत अच्छा सवाल है!” जैसे अनावश्यक वाक्य हटाना
- कीमतों को natural language में बोलना (“forty-five dollars”)
- जवाबों को 2~4 वाक्यों तक सीमित रखना
- लक्ष्य था दोस्ताना और प्रोफेशनल human-like voice हासिल करना
-
escalation(callback) flow की testing
- knowledge base में मौजूद न होने वाले सवाल पर AI यह कहे कि उसे पता नहीं, फिर नाम और नंबर माँगकर MongoDB में सेव करे
- इसके बाद वर्कशॉप मालिक खुद follow-up कर सके
-
integration tests लिखना
- RAG pipeline, webhook handling, और पूरे flow की जाँच की गई
- गलत requests, search results न मिलना, callback number missing होना जैसे edge cases भी शामिल किए गए
tech stack
- Vapi (Deepgram & ElevenLabs integration) — फोन नंबर, speech recognition, speech synthesis, function calling
- Ngrok — local development के लिए HTTPS tunnel
- FastAPI + Uvicorn — webhook server
- MongoDB Atlas — knowledge base, vector search, call logs, callback queue
- Voyage AI (voyage-3-large) — semantic text embeddings
- Anthropic Claude (claude-sonnet-4-6) — knowledge-based response generation
- Python —
pymongo, voyageai, anthropic, fastapi के साथ
- Copilot CLI — build automation tool
अगले कदम
- फिलहाल AI में सवाल-जवाब और callback collection तक की functionality पूरी हो चुकी है
- अगला लक्ष्य calendar integration के जरिए real-time booking, SMS alerts, callback management dashboard, security hardening, और Railway deployment है
- पूरा होने पर यह 24x7 काम कर सकेगा और फोन कॉल मिस होने से होने वाले revenue loss को रोकेगा
- सबसे मुश्किल हिस्सा code नहीं, बल्कि वर्कशॉप के अनुकूल voice tone तैयार करना था
- मुख्य सीख: business-specific voice agents में raw LLM को सीधे इस्तेमाल नहीं करना चाहिए
- उन्हें वास्तविक knowledge base पर आधारित होना चाहिए, और न पता होने पर क्या करना है(escalation) इसका flow ज़रूर डिज़ाइन होना चाहिए
- यह कोई exception नहीं, बल्कि core feature है
1 टिप्पणियां
Hacker News की राय
मैं पहले service advisor (रिसेप्शन/इंटेक प्रभारी) के तौर पर काम कर चुका हूँ। लेख में बताया गया सिस्टम व्यवहारिक रूप से काम नहीं करेगा, ऐसा लगता है
इस तरह का development सिर्फ अहंकार से आगे बढ़कर खतरनाक है। validation के बिना सिर्फ assumptions पर बनाना, दूसरों की आजीविका को जोखिम में डालता है
हमारे इलाके की Subaru dealership में फोन booking के समय AI assistant चुनने का विकल्प है। इस्तेमाल करके देखा, तो यह इंसान से ज़्यादा सटीक और तेज़ लगा। Taco Bell की AI ordering भी इसी तरह शानदार थी। ऐसे मामलों में इंसान से बात न करने से कोई नुकसान नहीं, और ज़रूरत हो तो कभी भी human agent से जोड़ा जा सकता है
इस तरह के blog post आधी कहानी ही बताते हैं। असली सवाल यह है कि revenue बढ़ा या नहीं, customers को bot होने से फ़र्क पड़ा या नहीं, और failure cases थे या नहीं
आजकल मैं LLM-आधारित phone assistant को काफ़ी सकारात्मक नज़र से देखता हूँ। जब मैंने Mint Mobile customer support पर कॉल किया, तो LLM ने बात को स्वाभाविक रूप से समझा और 1 मिनट में समस्या हल कर दी। पहले यही काम 20 मिनट से ज़्यादा इंतज़ार करवाता
लेख के अनुसार, workshop फोन नहीं उठा पाने की वजह से हर महीने हज़ारों डॉलर का नुकसान झेल रही है। अगर ऐसा है, तो लगभग 500 डॉलर महीने का outsourced receptionist कहीं बेहतर ROI देगा
आजकल अगर लगे कि सामने robot जवाब दे रहा है, तो मैं तुरंत कॉल काट देता हूँ। लेकिन जल्द ही AI voice शायद इंसान से अलग पहचान में न आए। तब फोन पर trust ही टूट सकता है। email और LinkedIn तो पहले ही AI spam से भरे पड़े हैं, इसलिए लोग फोन की तरफ गए थे, लेकिन वह भी शायद जल्द खत्म हो जाएगा
कहा गया कि “यह general-purpose chatbot नहीं है”, लेकिन वास्तव में यह बस 2026 मॉडल का general-purpose chatbot ही है
ब्लॉग के “About” page में देखा कि लेखक को उस influencer से प्रेरणा मिली, जो कहता है कि उसने coding सीखकर अमीर बन गया। लेकिन यह रवैया उस engineering culture से काफ़ी दूर है, जिसकी मैं उम्मीद करता हूँ
लोगों का AI से personal blog लिखवाना थोड़ा उदास करने वाला लगता है
क्या यहाँ RAG सच में ज़रूरी है? अगर बात सिर्फ price list और business hours की है, तो सब कुछ context window में आ जाएगा