- พัฒนา AI รีเซปชันนิสต์ ‘Axle’ ที่รับสายโทรศัพท์จริง เพื่อแก้ปัญหา รายได้สูญเสียจากการพลาดรับสาย ของอู่ซ่อมรถระดับพรีเมียม
- AI ถูกสร้างบนพื้นฐานของ Retrieval-Augmented Generation (RAG) เพื่อให้ตอบได้อย่างแม่นยำโดยอ้างอิงข้อมูลบริการและราคาจริงที่รวบรวมจากเว็บไซต์
- ผสานการทำงานของ Vapi, Deepgram, ElevenLabs, FastAPI, MongoDB Atlas เป็นต้น เพื่อรองรับการเชื่อมต่อสายโทรศัพท์ การรู้จำและสังเคราะห์เสียง และการจัดเก็บบันทึกบทสนทนา
- คุณภาพเสียงถูกปรับให้มี น้ำเสียงเป็นธรรมชาติและโครงสร้างประโยคสั้น เพื่อให้ตอบลูกค้าได้อย่างเป็นกันเองแต่ยังคงความเป็นมืออาชีพ
- ในอนาคตมีแผนขยายไปสู่ ระบบจอง, การแจ้งเตือนผ่าน SMS และแดชบอร์ดจัดการคอลแบ็ก โดยชี้ว่า ฐานความรู้และการออกแบบการเอสคาเลต คือหัวใจของ voice agent ที่เฉพาะทางต่อธุรกิจ
กระบวนการสร้าง AI รีเซปชันนิสต์
- สร้าง AI รีเซปชันนิสต์ ‘Axle’ แบบปรับแต่งเฉพาะ เพื่อแก้ปัญหาที่พี่ชายซึ่งเปิดอู่ซ่อมรถหรูต้องเผชิญ คือ สูญเสียรายได้หลายพันดอลลาร์ต่อเดือนจากการพลาดรับสาย
- ไม่ได้ออกแบบเป็นแค่แชตบอต แต่เป็น เอเจนต์แบบเสียงที่รับโทรศัพท์จริงได้ และตอบคำถามลูกค้าโดยอิงข้อมูลจริง เช่น ราคา เวลาทำการ และนโยบายต่าง ๆ
- โปรเจกต์แบ่งเป็น 3 ขั้น: สร้างฐานความรู้ (RAG pipeline) → เชื่อมต่อโทรศัพท์และเซิร์ฟเวอร์ → ปรับคุณภาพเสียงและโทนการสนทนา
Step 1: สร้างสมอง (RAG pipeline)
- ใช้วิธี Retrieval-Augmented Generation (RAG) เพื่อให้ออกแบบ AI ให้ตอบบนพื้นฐานของข้อมูลจริง
- หากใช้ LLM แบบตรง ๆ อาจมีความเสี่ยงเรื่อง ภาพหลอน (hallucination) เช่น ให้ราคาผิด จึงจำกัดให้ตอบได้จากข้อมูลจริงเท่านั้น
- สแครปข้อมูลจากเว็บไซต์ รวบรวมเอกสารมากกว่า 21 ชิ้น ครอบคลุมประเภทบริการ ราคา ระยะเวลา เวลาทำการ วิธีชำระเงิน การรับประกัน และนโยบายรถทดแทน
- จัดเก็บ knowledge base ไว้ใน MongoDB Atlas และสร้างเวกเตอร์เอมเบดดิ้งขนาด 1024 มิติด้วยโมเดล Voyage AI (voyage-3-large)
- ใช้ Atlas Vector Search index สำหรับการค้นหาเชิงความหมาย
- เมื่อมีคำถามจากลูกค้า ระบบจะแปลงคิวรีด้วยโมเดลเอมเบดดิ้งตัวเดียวกันเพื่อค้นหา เอกสาร 3 อันดับแรกที่ใกล้เคียงกันในเชิงความหมาย
- ใช้โมเดล Anthropic Claude (claude-sonnet-4-6) สร้างคำตอบโดยใช้เอกสารที่ค้นได้เป็นบริบท
- ใน system prompt มีการกำหนดกติกาไว้ว่า “ห้ามใช้ข้อมูลนอกฐานความรู้, ตอบให้กระชับและเป็นภาษาพูด, ถ้าไม่รู้ให้เสนอคอลแบ็ก”
- ผลลัพธ์คือในเทอร์มินัลสามารถตอบคำถามอย่าง “ค่าเปลี่ยนน้ำมันเครื่องเท่าไร?” ได้อย่างถูกต้องด้วยราคาจริงและรายละเอียดบริการ
Step 2: เชื่อมต่อกับหมายเลขโทรศัพท์จริง
- ใช้แพลตฟอร์ม Vapi เพื่อเชื่อมสมอง AI เข้ากับระบบโทรศัพท์จริง
- รองรับการซื้อหมายเลขโทรศัพท์, การรู้จำเสียงด้วย Deepgram, การสังเคราะห์เสียงด้วย ElevenLabs และฟังก์ชันเรียกใช้แบบเรียลไทม์
- สร้าง FastAPI webhook server
- Vapi จะส่งคำถามของลูกค้ามาที่เอ็นด์พอยต์
/webhook ในรูปคำขอ tool-calls
- เซิร์ฟเวอร์จะส่งต่อไปยัง RAG pipeline เพื่อรับคำตอบจาก Claude แล้วส่งกลับไปยัง Vapi
- จำเป็นต้อง ลด latency ให้ต่ำที่สุด เพื่อรักษาความเร็วการสนทนาให้เป็นธรรมชาติ
- ใช้ Ngrok เปิดเผยเซิร์ฟเวอร์ภายในเครื่องเป็น URL แบบ HTTPS จากภายนอก ทำให้ทดสอบแบบเรียลไทม์ได้ระหว่างพัฒนา
-
การตั้งค่า Vapi Assistant
- เชื่อมคำทักทายและเครื่องมือ 2 ตัว (
answerQuestion, saveCallback) เข้ากับ webhook
- สามารถตอบคำถาม หรือถ้าไม่รู้ก็รับชื่อและเบอร์โทรเพื่อบันทึกคอลแบ็ก
- ใช้ ฟีเจอร์หน่วยความจำบทสนทนา เพื่อคงบริบทจากการคุยก่อนหน้า
- รองรับคำถามต่อเนื่องแบบ “เปิดกี่โมง?” → “ถ้าอย่างนั้น เปลี่ยนยางราคาเท่าไร?”
-
บันทึกล็อกการโทรลง MongoDB
- บันทึกเบอร์ผู้โทร คำถาม คำตอบ การโอนไปให้พนักงานจริงหรือไม่ และเวลา
- คำขอคอลแบ็กถูกเก็บแยกในคอลเลกชัน
callbacks เพื่อให้ติดต่อกลับภายหลังได้
- ทำให้สามารถ วิเคราะห์รูปแบบคำถามของลูกค้าและปริมาณสายเข้า ได้
Step 3: ปรับคุณภาพเสียง
- คำนึงถึงความต่างระหว่างคำตอบแบบข้อความกับคำตอบแบบเสียง จึงต้อง ปรับให้เหมาะกับการสื่อสารด้วยเสียง
- ประโยคที่อ่านแล้วเป็นธรรมชาติ อาจฟังไม่เป็นธรรมชาติเมื่อพูดออกเสียง
-
การเลือกเสียงจาก ElevenLabs
- หลังทดสอบเสียงราว 20 แบบ พบว่าเสียง ‘Christopher’ ฟังเป็นธรรมชาติที่สุดและเหมาะกับบรรยากาศของอู่
- เสียงที่ฟังดูเป็นหุ่นยนต์เกินไปหรือสดใสเกินไปไม่เหมาะ
-
การปรับ system prompt
- ใช้ประโยคสั้น ลบ Markdown และตัดวลีที่ไม่จำเป็นอย่าง “เป็นคำถามที่ดีมาก!”
- ราคาให้อ่านออกเสียงเป็นภาษาธรรมชาติ (“forty-five dollars”)
- จำกัดคำตอบไว้ที่ 2–4 ประโยค
- เป้าหมายคือทำให้ได้ เสียงมนุษย์ที่เป็นมิตรและเป็นมืออาชีพ
-
ทดสอบโฟลว์การเอสคาเลต (คอลแบ็ก)
- หากเป็นคำถามที่ไม่มีในฐานความรู้ AI จะบอกว่าไม่ทราบ ขอชื่อและเบอร์โทร แล้วบันทึกลง MongoDB
- เจ้าของอู่สามารถติดต่อกลับลูกค้าได้โดยตรง
-
เขียนการทดสอบแบบบูรณาการ
- ตรวจสอบทั้ง RAG pipeline, การจัดการ webhook และฟลोว์โดยรวม
- รวมถึงการจัดการ edge case เช่น คำขอที่ไม่ถูกต้อง ไม่มีผลการค้นหา หรือไม่มีหมายเลขคอลแบ็ก
โครงสร้างเทคโนโลยีที่ใช้
- Vapi (ผสาน Deepgram & ElevenLabs) — หมายเลขโทรศัพท์, การรู้จำเสียง, การสังเคราะห์เสียง, การเรียกใช้ฟังก์ชัน
- Ngrok — HTTPS tunnel สำหรับการพัฒนาบนเครื่อง
- FastAPI + Uvicorn — webhook server
- MongoDB Atlas — knowledge base, vector search, ล็อกการโทร, คิวคอลแบ็ก
- Voyage AI (voyage-3-large) — text embedding สำหรับการค้นหาเชิงความหมาย
- Anthropic Claude (claude-sonnet-4-6) — สร้างคำตอบจากฐานความรู้
- Python — ใช้
pymongo, voyageai, anthropic, fastapi
- Copilot CLI — เครื่องมืออัตโนมัติสำหรับการบิลด์
ขั้นตอนถัดไป
- ขณะนี้ AI ทำงานได้ถึงขั้นตอบคำถามและเก็บข้อมูลคอลแบ็กแล้ว
- เป้าหมายถัดไปคือ เชื่อมปฏิทิน สำหรับการจองแบบเรียลไทม์, การแจ้งเตือนทาง SMS, แดชบอร์ดจัดการคอลแบ็ก, เสริมความปลอดภัย และ deploy บน Railway
- เมื่อเสร็จสมบูรณ์จะเปิดให้บริการได้ตลอด 24 ชั่วโมง และ ป้องกันการสูญเสียรายได้จากการพลาดรับสาย
- ส่วนที่ยากที่สุดไม่ใช่เรื่องโค้ด แต่คือ การทำโทนเสียงให้เหมาะกับอู่ซ่อมรถ
- บทเรียนสำคัญคือ อย่านำ LLM ดิบมาใช้ตรง ๆ กับ voice agent ที่เฉพาะทางต่อธุรกิจ
- ต้องอิงกับฐานความรู้จริง และต้องออกแบบ โฟลว์รับมือเมื่อไม่รู้คำตอบ (เอสคาเลต) ไว้เสมอ
- สิ่งนี้ไม่ใช่ข้อยกเว้น แต่เป็น ฟีเจอร์หลัก
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ฉันเคยทำงานเป็น service advisor (เจ้าหน้าที่รับรถ/รับงานซ่อม) มาก่อน ระบบที่บทความพูดถึงดูแล้วไม่น่าจะใช้งานได้จริง
การพัฒนาแบบนี้ไม่ใช่แค่ ความหยิ่งผยอง แต่ยังอันตรายด้วย ถ้าสร้างจากสมมติฐานโดยไม่มีการตรวจสอบ ก็เท่ากับทำให้ปากท้องของคนอื่นตกอยู่ในความเสี่ยง
ตัวแทนจำหน่าย Subaru แถวบ้านฉันเปิดให้เลือก AI assistant ตอนโทรไปนัดหมาย ลองใช้แล้วพบว่ามันทำงานได้แม่นและเร็วกว่าคนเสียอีก ส่วนระบบสั่งอาหารด้วย AI ของ Taco Bell ก็ยอดเยี่ยมเหมือนกัน ในกรณีแบบนี้ การไม่ต้องคุยกับคนก็ไม่ได้เสียหายอะไร และถ้าจำเป็นก็ยังต่อไปหาคนจริงได้ตลอด
โพสต์บล็อกแบบนี้เล่าแค่ครึ่งเดียว ฉันอยากรู้ว่า ยอดขายเพิ่มขึ้นจริงไหม, ลูกค้าสนใจไหมว่ากำลังคุยกับบอต, และ มีเคสที่ล้มเหลวบ้างหรือเปล่า
ช่วงนี้ฉันมอง ผู้ช่วยรับโทรศัพท์ที่ใช้ LLM ในแง่บวกพอสมควร ตอนโทรหาศูนย์บริการลูกค้า Mint Mobile, LLM เข้าใจได้เป็นธรรมชาติและแก้ปัญหาให้เสร็จใน 1 นาที ทั้งที่เมื่อก่อนอาจต้องรอสายเกิน 20 นาที
ตามบทความ อู่แห่งนี้กำลังเสียรายได้ หลายพันดอลลาร์ต่อเดือน เพราะรับโทรศัพท์ไม่ทัน ถ้าอย่างนั้นจ้าง receptionist แบบ outsourced เดือนละราว 500 ดอลลาร์น่าจะให้ ROI ดีกว่ามาก
ทุกวันนี้ถ้ารู้สึกว่าเป็นระบบหุ่นยนต์รับสาย ฉันจะวางสายทันที แต่ในไม่ช้า เสียง AI คงจะเหมือนคนจนแยกไม่ออก ถึงตอนนั้น ความน่าเชื่อถือ ของการโทรศัพท์อาจพังทลายลงไปเลย ตอนนี้อีเมลกับ LinkedIn ก็เต็มไปด้วยสแปมจาก AI จนคนหันมาที่โทรศัพท์ แต่ดูเหมือนสิ่งนั้นก็กำลังจะหายไปเหมือนกัน
เขาบอกว่า “นี่ไม่ใช่แชตบอตแบบทั่วไป” แต่เอาเข้าจริงมันก็แทบไม่ต่างจาก แชตบอตแบบทั่วไปฉบับปี 2026
ฉันไปดูหน้า “About” ของบล็อกแล้ว ผู้เขียนบอกว่าได้แรงบันดาลใจจากอินฟลูเอนเซอร์ที่ ร่ำรวยจากการเรียนเขียนโค้ด แต่ท่าทีแบบนี้มันห่างไกลจาก ทิศทางของวัฒนธรรมวิศวกรรม ที่ฉันอยากเห็น
รู้สึกหดหู่นิดหน่อยที่คนเริ่ม เขียนบล็อกส่วนตัวด้วย AI
ที่นี่จำเป็นต้องใช้ RAG จริงหรือ? ถ้ามีแค่ตารางราคาและเวลาทำการ มันก็ใส่ไว้ใน context window ได้หมด