1 poin oleh GN⁺ 28 hari lalu | 1 komentar | Bagikan ke WhatsApp
  • Untuk mengatasi kehilangan pendapatan akibat panggilan telepon yang tidak terjawab di bengkel kelas premium, dikembangkan resepsionis AI ‘Axle’ yang benar-benar bisa menerima telepon
  • AI dibangun berbasis Retrieval-Augmented Generation (RAG) agar dapat memberikan jawaban akurat berdasarkan informasi layanan dan harga nyata yang dikumpulkan dari situs web
  • Dengan mengintegrasikan Vapi, Deepgram, ElevenLabs, FastAPI, MongoDB Atlas, dan lainnya, sistem ini mewujudkan koneksi telepon, pengenalan dan sintesis suara, serta penyimpanan riwayat percakapan
  • Kualitas suara disesuaikan dengan nada alami dan struktur kalimat pendek, sehingga memberi respons yang ramah namun tetap profesional kepada pelanggan
  • Ke depan, sistem ini akan diperluas ke sistem reservasi, notifikasi SMS, dan dashboard callback, dan untuk agen suara yang spesifik bisnis, knowledge base dan desain eskalasi adalah inti utamanya

Proses membangun resepsionis AI

  • Untuk menyelesaikan masalah kakaknya yang menjalankan bengkel mobil premium dan kehilangan ribuan dolar tiap bulan karena panggilan yang tidak terjawab, ia membangun resepsionis AI kustom bernama ‘Axle’
  • Ini bukan chatbot biasa, melainkan agen berbasis suara yang benar-benar bisa menerima telepon dan menjawab pertanyaan pelanggan berdasarkan informasi nyata seperti harga, jam operasional, dan kebijakan
  • Proyek ini terdiri dari tiga tahap: membangun knowledge base (pipeline RAG)menghubungkan telepon dan servermenyesuaikan kualitas suara dan nada percakapan

Step 1: Membangun otak (pipeline RAG)

  • Sistem dirancang dengan pendekatan Retrieval-Augmented Generation (RAG) agar AI menjawab berdasarkan data nyata
    • Jika hanya memakai LLM biasa, ada risiko halusinasi (hallucination) seperti memberikan harga yang salah, sehingga jawabannya dibatasi hanya pada informasi yang benar-benar tersedia
  • Melalui scraping data situs web, terkumpul lebih dari 21 dokumen yang mencakup jenis layanan, harga, durasi pengerjaan, jam operasional, metode pembayaran, garansi, dan kebijakan mobil pengganti
  • Knowledge base disimpan di MongoDB Atlas, dan embedding vektor 1024 dimensi dibuat dengan model Voyage AI (voyage-3-large)
    • Pencarian berbasis makna dilakukan melalui indeks Atlas Vector Search
  • Saat pertanyaan pelanggan masuk, kueri diubah dengan model embedding yang sama untuk mencari 3 dokumen teratas yang paling mirip secara semantik
  • Model Anthropic Claude (claude-sonnet-4-6) digunakan untuk menghasilkan jawaban dengan dokumen hasil pencarian sebagai konteks
    • System prompt berisi aturan seperti “jangan gunakan informasi di luar knowledge base, tetap ringkas dan percakapan, jika tidak tahu tawarkan callback”
  • Hasilnya, dari terminal sistem bisa menjawab pertanyaan seperti “berapa biaya ganti oli?” secara akurat dengan harga dan detail layanan yang nyata

Step 2: Menghubungkan ke nomor telepon nyata

  • Untuk menghubungkan otak AI ke sistem telepon nyata, digunakan platform Vapi
    • Platform ini menyediakan pembelian nomor telepon, pengenalan suara berbasis Deepgram, sintesis suara berbasis ElevenLabs, serta kemampuan function calling secara real-time
  • Dibangun server webhook FastAPI
    • Vapi mengirim pertanyaan pelanggan ke endpoint /webhook sebagai permintaan tool-calls
    • Server meneruskannya ke pipeline RAG, menerima jawaban Claude, lalu mengirimkannya kembali ke Vapi
    • Untuk menjaga tempo percakapan tetap alami, latensi harus diminimalkan
  • Dengan Ngrok, server lokal diekspos sebagai URL HTTPS eksternal sehingga pengujian real-time tetap bisa dilakukan selama pengembangan
  • Konfigurasi asisten Vapi

    • Sapaan awal dan dua tool (answerQuestion, saveCallback) dihubungkan ke webhook
    • Sistem bisa menjawab pertanyaan, atau jika tidak tahu, meminta nama dan nomor telepon lalu menyimpan callback
    • Fitur memori percakapan menjaga konteks percakapan sebelumnya
    • Ini memungkinkan penanganan pertanyaan lanjutan seperti “jam operasionalnya bagaimana?” → “kalau begitu berapa biaya ganti ban?”
  • Menyimpan log panggilan di MongoDB

    • Mencatat nomor penelepon, pertanyaan, jawaban, apakah dialihkan ke staf manusia, dan timestamp
    • Permintaan callback disimpan di koleksi callbacks terpisah agar bisa ditindaklanjuti
    • Dengan ini, pola pertanyaan pelanggan dan volume panggilan dapat dianalisis

Step 3: Menyesuaikan kualitas suara

  • Karena respons teks dan respons suara berbeda, perlu optimasi khusus untuk penyampaian suara
    • Kalimat yang terdengar alami dalam tulisan bisa terasa janggal saat diucapkan
  • Memilih suara ElevenLabs

    • Setelah menguji sekitar 20 suara, suara ‘Christopher’ dinilai paling alami dan paling cocok untuk suasana bengkel
    • Suara yang terlalu robotik atau terlalu ceria dianggap tidak cocok
  • Merevisi system prompt

    • Menggunakan kalimat pendek, menghapus Markdown, dan membuang frasa yang tidak perlu seperti “pertanyaan yang bagus!”
    • Harga diucapkan dalam bahasa alami (“forty-five dollars”)
    • Respons dibatasi dalam 2–4 kalimat
    • Tujuannya adalah menghadirkan suara manusia yang ramah dan profesional
  • Menguji alur eskalasi (callback)

    • Jika pertanyaan tidak ada di knowledge base, AI akan mengatakan tidak tahu, meminta nama dan nomor, lalu menyimpannya ke MongoDB
    • Pemilik bengkel kemudian bisa menindaklanjuti secara langsung
  • Menulis integration test

    • Menguji pipeline RAG, pemrosesan webhook, dan seluruh alur end-to-end
    • Termasuk penanganan edge case seperti permintaan tidak valid, tidak ada hasil pencarian, atau nomor callback yang tidak diberikan

Susunan tech stack

  • Vapi (integrasi Deepgram & ElevenLabs) — nomor telepon, pengenalan suara, sintesis suara, function calling
  • Ngrok — tunnel HTTPS untuk pengembangan lokal
  • FastAPI + Uvicorn — server webhook
  • MongoDB Atlas — knowledge base, pencarian vektor, log panggilan, antrean callback
  • Voyage AI (voyage-3-large) — embedding teks berbasis semantik
  • Anthropic Claude (claude-sonnet-4-6) — pembuatan jawaban berbasis knowledge base
  • Python — menggunakan pymongo, voyageai, anthropic, fastapi
  • Copilot CLI — alat otomasi build

Langkah berikutnya

  • Saat ini AI sudah menyelesaikan fungsi tanya-jawab dan pengumpulan callback
  • Target berikutnya adalah integrasi kalender untuk reservasi real-time, notifikasi SMS, dashboard manajemen callback, penguatan keamanan, dan deploy ke Railway
  • Setelah selesai, sistem dapat beroperasi 24 jam dan mencegah hilangnya pendapatan akibat panggilan yang terlewat
  • Bagian tersulit ternyata bukan kodenya, melainkan mewujudkan nada suara yang cocok untuk bengkel
  • Pelajaran utamanya: jangan menggunakan raw LLM apa adanya untuk agen suara yang spesifik bisnis
    • Sistem harus berbasis knowledge base nyata, dan alur penanganan saat AI tidak tahu jawabannya (eskalasi) wajib dirancang
    • Ini bukan pengecualian, melainkan fitur inti

1 komentar

 
GN⁺ 28 hari lalu
Komentar Hacker News
  • Dulu saya bekerja sebagai service advisor (petugas penerimaan). Sistem yang dibahas di artikel ini rasanya tidak akan berjalan secara realistis

    1. Jika tidak ada riwayat perbaikan yang sama, kemungkinan estimasinya salah cukup tinggi. Di beberapa negara bagian, estimasi yang keliru bisa menjadi masalah hukum
    2. Stok dan harga suku cadang berubah setiap saat. Jika sistem tidak mencerminkan hal ini, hasilnya hanya akan menimbulkan kebingungan
    3. Pekerjaan baru itu rumit sejak tahap pemilihan suku cadang. Semakin mewah kendaraannya, semakin rumit pula
    4. Bagian yang berguna mungkin hanya notifikasi pengambilan kendaraan. Untuk memberi tahu secara otomatis kapan pekerjaan selesai atau bagaimana progresnya
      Pengembangan seperti ini bukan sekadar kesombongan, tapi juga berbahaya. Jika dibuat hanya berdasarkan asumsi tanpa verifikasi, ini bisa membahayakan mata pencaharian orang lain
    • Saya juga bukan ahli, tetapi saya paham dengan kesan gaya-gayaan seperti ini. Jika memang butuh resepsionis, lebih wajar mempekerjakan manusia. Sulit dipahami mengapa sebuah bisnis mau dipercayakan pada solusi AI yang belum terbukti. Entah karena tidak mau repot mengelola orang, atau sekadar mengejar tren
    • Sebenarnya ada solusi yang lebih sederhana. Orang yang bekerja di bawah mobil cukup dibuat bisa menerima telepon dengan speakerphone hands-free. Jika memakai model pengenalan suara lokal, orang juga bisa menyebut teknologi jaringan saraf, dan biayanya pun cukup sekitar 200–300 dolar termasuk mikrofon
    • Tapi jika melihat artikel aslinya, bengkel ini sudah punya layanan tetap dan daftar harga. Jadi jika tidak memerlukan estimasi khusus, masalah-masalah di atas tidak berlaku
    • Penilaian bahwa ini “berbahaya” terasa berlebihan. Pengembangnya sedang membantu bisnis kakaknya, dan meskipun tidak sempurna, kalau tingkat konversi pelanggan naik 10% saja itu sudah sangat bernilai
    • Notifikasi kendaraan selesai atau pembaruan progres sebenarnya sudah bisa dilakukan dengan sistem TTS sejak bertahun-tahun lalu. Tidak perlu LLM
  • Dealer Subaru di daerah kami memberi pilihan untuk memakai asisten AI saat membuat janji lewat telepon. Setelah saya coba, kerjanya lebih akurat dan cepat daripada manusia. AI pemesanan milik Taco Bell juga sama bagusnya. Dalam kasus seperti ini, tidak ada ruginya tidak bicara dengan manusia, dan jika perlu tetap bisa dialihkan ke petugas manusia kapan saja

  • Postingan blog seperti ini baru setengah cerita. Saya penasaran apakah pendapatannya benar-benar naik, apakah pelanggan peduli bahwa itu bot, dan apakah ada kasus kegagalan

    • Sebenarnya masalah seperti ini bahkan sebelum era AI sudah bisa ditangani dengan layanan asisten virtual. Biayanya cukup 200–1000 dolar per bulan, dan pada dasarnya itu berarti merebut kembali pendapatan yang sebelumnya hilang. AI hanyalah perangkap tikus yang lebih rumit, dan untuk layanan premium, interaksi manusia jauh lebih meyakinkan
    • Sepertinya pengujian di dunia nyata masih belum cukup dilakukan. Hal seperti alamat email sulit dicatat LLM dengan akurat. Dalam respons suara real-time, Anthropic terasa lambat, sedangkan Groq sangat cepat di bawah 200 ms
    • Dulu saya pernah harus buru-buru mengganti kaca mobil, tetapi sistem suara otomatis terus meminta informasi yang tidak perlu, jadi saya tutup teleponnya. Kalau hanya untuk janji sederhana mungkin tidak masalah, tetapi dalam situasi khusus pada akhirnya tetap harus bicara dengan manusia
    • Upaya seperti ini masuk akal. Hanya saja, performa nyatanya masih belum jelas. Ini seperti kertas lakmus yang membedakan kaum optimis AI dan pesimis AI
  • Akhir-akhir ini saya cukup positif terhadap asisten telepon berbasis LLM. Saat menelepon layanan pelanggan Mint Mobile, LLM memahami saya dengan alami dan menyelesaikan masalah dalam 1 menit. Dulu hal seperti itu bisa membuat saya menunggu lebih dari 20 menit

    • LLM pengucapannya jelas, tidak ada noise headset, dan mudah dipahami. Tentu ada kasus yang berantakan seperti chatbot LLM milik eBay, tetapi sistem yang diimplementasikan dengan baik bisa bekerja dengan sangat bagus
    • Dukungan chat Amazon juga mirip. LLM lebih dulu merangkum informasi pesanan, lalu manusia hanya memberi persetujuan terakhir. Efisien
    • Tapi tetap saja, mengapa ini tidak bisa diselesaikan lewat aplikasi dan harus memakai LLM masih terasa janggal. Pada akhirnya ini terlihat seperti kegagalan proses pengembangan
    • Saya juga punya pengalaman serupa. Saya mengajukan pertanyaan teknis dan LLM menjawab dengan tepat, lalu agen manusia melanjutkan tetapi justru tampak kurang paham. Meski begitu, waktu tetap hemat
    • Jauh lebih baik daripada robot lama, dan chatbot berbasis RAG cukup berguna sampai bisa menggantikan pencarian dokumen. Misalnya chatbot manager.io terasa nyaman karena langsung memberi jawaban tanpa perlu membuka dokumentasi
  • Menurut tulisannya, bengkel itu kehilangan ribuan dolar setiap bulan karena tidak bisa mengangkat telepon. Kalau begitu, memakai resepsionis outsourcing sekitar 500 dolar per bulan jelas ROI-nya jauh lebih tinggi

    • Sebenarnya voicemail saja sudah bisa menyelesaikan sebagian masalah. AI maupun voicemail, sebagian pelanggan tetap akan menutup telepon
    • Selain itu, kalau mereka sudah terlalu sibuk sampai tidak bisa menjawab telepon, kemungkinan besar mereka juga tidak punya kapasitas untuk menangani pelanggan tambahan
    • Teman saya memakai layanan resepsionis outsourcing, biayanya 150 pound per bulan untuk cakupan pukul 9 sampai 5. Dia sendiri hanya mengatur jadwal di malam hari. Jika isi tulisan itu benar, bengkel tersebut kemungkinan sudah bekerja di 100% kapasitas
    • Service writer yang baik memang mahal, tapi sepadan. Mereka membangun kepercayaan pelanggan, dan nantinya bahkan bisa mengambil alih bisnis itu
    • Pada akhirnya ROI ini hanya efek iklan untuk kursus pelatihan AI yang ingin dipromosikan blog tersebut
  • Sekarang kalau saya merasa yang melayani adalah robot, saya langsung menutup telepon. Tetapi tak lama lagi suara AI mungkin akan mencapai tingkat yang tidak bisa dibedakan dari manusia. Saat itu, kepercayaan terhadap telepon bisa runtuh. Email dan LinkedIn sudah penuh spam AI, jadi orang pindah ke telepon, tetapi itu pun mungkin segera hilang

    • Tetap saja, kalau akhirnya dialihkan ke voicemail, hasilnya sama: saya juga akan menutup telepon, jadi tidak ada kerugian tambahan
    • Kalau AI salah paham dengan ucapan saya lalu akhirnya menyambungkan ke manusia, saya jadi harus menceritakan hal yang sama dua kali dan itu melelahkan
    • Baru-baru ini saat mencari mobil, saya menghubungi beberapa dealer, dan belakangan baru sadar semuanya ternyata agen bernama palsu berbasis LLM. Kecepatan responsnya terlalu cepat sehingga terasa aneh
  • Katanya “ini bukan chatbot umum”, tetapi pada dasarnya ini tidak lebih dari chatbot umum model tahun 2026

  • Saya melihat halaman “About” di blog itu, dan penulisnya bilang terinspirasi oleh influencer yang menjadi kaya setelah belajar coding. Tetapi sikap seperti ini jauh dari arah budaya engineering yang saya inginkan

  • Agak menyedihkan melihat orang-orang menulis blog pribadi dengan AI

    • Meski begitu, saya menghargai bahwa dia mengakuinya dengan jujur. Kebanyakan orang tidak punya banyak pengalaman menulis dan merasa bisa mendapatkan “tulisan yang bagus” lewat LLM. Bagi mereka, mungkin tulisan yang dibuat AI memang tidak terasa buruk
  • Apakah RAG benar-benar perlu di sini? Kalau hanya daftar harga dan jam operasional, semuanya bisa muat dalam context window

    • Mungkin ini memang proyek untuk belajar. Saya juga kadang memakai arsitektur yang berlebihan di proyek pribadi untuk belajar
    • Dalam percakapan suara, latency adalah masalah yang lebih besar. Jika situsnya punya banyak halaman, memakai RAG untuk memuat sebagian kecil dengan cepat lalu membiarkan LLM menyusun jawaban detail bisa jadi lebih efisien
    • Akan lebih sederhana jika langsung memasukkan seluruh situs web dan daftar harga ke context
    • Saya setuju. Informasi sebanyak ini sepenuhnya masih bisa ditangani sekaligus
    • Secara keseluruhan, arsitektur ini berlebihan