Giới thiệu
Chào mừng bạn đến với thế giới của AI giọng nói! Tôi sẽ hướng dẫn bạn cách sử dụng AI để dọn dẹp email, cuộc họp và tin nhắn Slack của bạn một cách dễ dàng và hiệu quả. Chúng ta sẽ khám phá cách mà tôi đã xây dựng một trợ lý AI sử dụng Composio, Vapi và OpenAI TTS, giúp bạn tóm tắt email, lên lịch cuộc họp và tìm kiếm tin nhắn Slack, biến buổi sáng của bạn thành một trải nghiệm không căng thẳng.
Vấn đề cần giải quyết
Mỗi sáng, việc kiểm tra Slack và Gmail trở thành một nghi thức mà tôi tuân theo. Tuy nhiên, việc hiểu từng tin nhắn trong khi vẫn còn buồn ngủ không hề dễ dàng. Các trợ lý giọng nói có thể giúp bạn tóm tắt thông tin quan trọng, giải thích những chủ đề khó hiểu, hoặc đi sâu vào các chi tiết cụ thể, trong khi bạn đang pha cà phê. Tình huống này không chỉ là của riêng tôi, mà còn là của nhiều người khác.
Phát triển ứng dụng
Tôi bắt đầu với một ứng dụng Next.js và ngay lập tức gặp phải vấn đề về độ trễ - một vấn đề phổ biến trong nhiều dự án giọng nói. Giọng nói yêu cầu một luồng giao tiếp mạch lạc - khác với giao diện văn bản, nơi người dùng có thể chờ đợi, trợ lý giọng nói cần phản hồi ngay lập tức. Cách tiếp cận ban đầu của tôi đã khá kém: STT (Speech To Text) → LLM (Large Language Model) → Gọi công cụ → TTS (Text To Speech). Việc xử lý tuần tự dẫn đến khoảng thời gian im lặng từ 3-5 giây sau mỗi lệnh.
Sau đó, tôi phát hiện ra Vapi, công cụ quản lý toàn bộ quy trình giọng nói một cách tinh tế - xử lý song song, hoán đổi mô hình và quản lý các thông báo tự động. Điều này đã biến nguyên mẫu lúng túng của tôi thành một trải nghiệm thật sự giống như giao tiếp tự nhiên.
Đối với tích hợp, Composio là lựa chọn rõ ràng - nó loại bỏ độ phức tạp của OAuth và cung cấp các kết nối sạch sẽ, đáng tin cậy đến Gmail, Lịch và Slack mà không cần phải viết mã lặp lại cho mỗi API.
Quy trình hoạt động của AI Giọng Nói
Dưới đây là quy trình hoạt động của trợ lý giọng nói:
- Người dùng → Vapi Widget: Người dùng nhấp vào “Nói chuyện với Trợ lý” để bắt đầu phiên giọng nói.
- Widget → LLM: Widget bắt đầu cuộc gọi, gửi hệ thống prompt, mô hình, giọng nói và danh mục công cụ từ vapiToolsConfig với URL máy chủ cụ thể.
- LLM → Widget: LLM phát stream giọng nói và bản ghi cuối cùng trở lại; widget cập nhật chỉ báo nghe/nói và giao diện bản ghi.
- LLM → API Route: Khi cần hành động (ví dụ: gửi email), LLM kích hoạt một cuộc gọi công cụ: một HTTP POST đến route /api/tools/... tương ứng.
- API tự làm việc (route-helpers): Route trích xuất toolCallId và các tham số, chạy thực thi trong vòng 30 giây và chuẩn hóa lỗi/thành công theo định dạng phản hồi mong đợi của Vapi.
- API → Composio: Route gọi wrapper phù hợp trong lib/composio.ts, kích hoạt composio.tools.execute(...).
- Composio → Nhà cung cấp: Composio giao tiếp với các API của Gmail/Lịch/Slack và trả về ComposioToolResult.
- API → LLM: API phản hồi với { results: [{ toolCallId, result }] }. LLM sử dụng dữ liệu này và tiếp tục cuộc trò chuyện với ngữ cảnh đã cập nhật.
- LLM/Widget → Người dùng: Widget phản ánh các tin nhắn/kết quả mới trong bản ghi và trạng thái giao diện.
Những thách thức gặp phải
Gần đây, hiệu suất của Claude Code đã khiến tôi cảm thấy thất vọng. Mặc dù tôi đã cung cấp cho nó tài liệu đầy đủ từ Composio và Vapi, nhưng nó vẫn liên tục quay lại các mẫu API cũ. Tôi đã chỉ cho nó cách thực hiện các route sử dụng các schema yêu cầu/đáp ứng cụ thể của Vapi, nhưng nó vẫn phản hồi rằng nó đã hiểu, sau đó lại tạo ra mã sử dụng các phương pháp đã lỗi thời. Quá trình gỡ lỗi của nó trở nên khá hài hước - sửa một lỗi, tạo ra ba lỗi mới, sau đó vẫn khẳng định rằng sửa lỗi ban đầu là hoàn hảo trong khi bỏ qua các sự cố mới.
Kết quả đạt được
Hiện tại, trợ lý này có thể xử lý chín hành động cốt lõi trên ba nền tảng: Gmail (lấy, gửi và soạn thảo), Slack (tạo kênh, liệt kê cuộc trò chuyện và gửi tin nhắn), và Google Calendar (tạo sự kiện và tìm xung đột). Mỗi hành động được thực hiện với độ trễ dưới 500ms - đủ nhanh để cuộc trò chuyện không bị gián đoạn.
Sức mạnh thực sự là khả năng mở rộng của Composio. Việc thêm công cụ mới chỉ cần một vài dòng cấu hình thay vì phải vật lộn với các luồng OAuth và các yêu cầu API. Bạn muốn tích hợp Notion để ghi chú cuộc họp? Linear cho việc tạo nhiệm vụ? Mỗi bổ sung lại làm cho trợ lý trở nên hữu ích hơn.
Mẹo và Lưu ý
- Mẹo: Đảm bảo cấu hình chính xác các API để tránh lỗi kết nối.
- Cảnh báo: Theo dõi độ trễ trong các cuộc gọi API để cải thiện trải nghiệm người dùng.
Các Thực Hành Tốt Nhất
- Sử dụng các mẫu mã có sẵn để tiết kiệm thời gian và công sức khi phát triển.
- Thực hiện kiểm thử liên tục để phát hiện sớm các lỗi tiềm ẩn.
Câu Hỏi Thường Gặp (FAQ)
- Tôi có thể tích hợp các ứng dụng khác không?
 Có, Composio cho phép tích hợp nhiều công cụ khác nhau một cách dễ dàng.
- Cần bao nhiêu thời gian để thiết lập?
 Thời gian thiết lập phụ thuộc vào độ phức tạp của tích hợp, nhưng thường nhanh chóng.
Kết luận
Trợ lý AI giọng nói của tôi không chỉ giúp giảm bớt khối lượng công việc mà còn làm cho quy trình làm việc hàng ngày trở nên thú vị hơn. Với sự hỗ trợ của Composio, Vapi và OpenAI TTS, tôi tin rằng bạn cũng có thể xây dựng một trợ lý như vậy cho riêng mình. Hãy bắt đầu hành trình của bạn và khám phá sức mạnh của AI trong việc quản lý công việc hàng ngày của bạn!