Meeting transcription API mã nguồn mở Vexa: đáng tự host?

ByNgọc Trai MKT04/09/2026in GitHub Tools 0
vexa

Vexa là một meeting transcription API mã nguồn mở cho Google Meet, Microsoft Teams và Zoom, phát hành theo giấy phép Apache-2.0. Thay vì chỉ tóm tắt file ghi âm sẵn có, Vexa vận hành một bot thật sự tham gia cuộc gọi và stream transcript theo thời gian thực. Bài viết dành cho kỹ sư muốn phân biệt nhanh phần nào đã production, phần nào còn trả 404, trước khi cài đặt.

Thank you for reading this post, don't forget to subscribe!

Vì sao bot Vexa phải tự vào Meet, Teams, Zoom như người tham dự?

Vì sao bot Vexa phải tự vào Meet, Teams, Zoom như người tham dự?
Vì sao bot Vexa phải tự vào Meet, Teams, Zoom như người tham dự?

Các công cụ ghi chú phổ biến thường bắt đầu sau khi transcript đã tồn tại; Vexa đặt mình ở phía trước, vào thẳng phòng họp. Bot nhận link Google Meet, Teams, Zoom hoặc Jitsi, lấy mã định danh native_meeting_id, rồi stream âm thanh về server. Theo README, đây chính là phần khó nhất và cũng là lợi thế: vận hành một hạm đội bot ổn định qua cơ chế xác thực của từng nền tảng không giống việc nối API ghi âm.

Với Google Meet, Teams và Zoom, khả năng bot tham gia được đánh dấu production. Jitsi mới ở mức built và offline-proven, live validation đang chờ. Transcript stream có gán người nói, xuất hiện ở dạng nháp rồi được xác nhận sau, nhưng nhà phát triển không hứa tuyệt đối: khoảng 4 đến 7 phần trăm dòng có thể để trống speaker khi nhiều người nói chồng tiếng. Vexa gọi transcript API là sản phẩm standalone, bạn có thể dùng riêng phần này và bỏ qua toàn bộ nhánh agent.

Bên trong Vexa: một runtime chạy cả meeting bot lẫn coding agent

Bên trong Vexa: một runtime chạy cả meeting bot lẫn coding agent
Bên trong Vexa: một runtime chạy cả meeting bot lẫn coding agent

Kiến trúc Vexa gộp hai mảng Meetings và Agents vào cùng một runtime. Cả bot họp lẫn coding agent đều là workload runtime.v1: mỗi lần dispatch được đặt trong container cô lập, không có egress trừ khi đi qua công cụ được phép, chỉ nhìn thấy workspace được cấp, và bị thu hồi khi hết việc.

README mô tả một gateway duy nhất với các cổng đáng nhớ: Terminal UI tại 13000, API gateway tại 18056, API key dạng vxa_. Phía sau là meeting-api phụ trách bot và transcript, agent-api làm nhiệm vụ điều phối agent, runtime chuyên sinh container, còn admin-api cùng Redis, PostgreSQL và MinIO lo khóa API, hàng đợi, metadata và object storage.

RUNTIME_BACKEND có ba lựa chọn: docker là mặc định, process chạy workload như tiến trình con, k8s tạo một Pod cho mỗi dispatch. Cùng một control plane nhưng cách tạo container thay đổi, do đó Vexa chạy được từ laptop cá nhân tới Kubernetes bên trong tường lửa. Agent làm việc trên workspace là git repo chứa Markdown, đóng gói theo định dạng OKF kg; mỗi cuộc họp được compile thành các trang entity về người, công ty, quyết định. README gọi đây là biến thể Karpathy LLM Wiki chạy như dịch vụ nhóm, không phải RAG thô trên tài liệu.

Ngoài REST, gateway còn phục vụ MCP server tại /mcp dành cho client AI agent. MCP server xuất hiện ngay trên tiêu đề repo và là một phần thu hút nhà phát triển muốn điều khiển workspace bằng chuẩn giao thức thay vì tự ghép REST call.

Cài Vexa bằng make all rồi gửi bot qua REST API thế nào?

Cài Vexa bằng make all rồi gửi bot qua REST API thế nào?
Cài Vexa bằng make all rồi gửi bot qua REST API thế nào?

Để chạy open-core trên một host, bạn cần make và Docker Engine từ v26 trở lên. Lệnh make all kéo các image đã phát hành, không biên dịch từ mã nguồn, nên máy Ubuntu 24.04 cấu hình khiêm tốn là đủ. Các bước trong README rất ngắn:

  1. git clone https://github.com/Vexa-ai/vexa.git
  2. cd vexa
  3. make all

Sau khi hoàn tất, make in ra Terminal UI tại 13000, API gateway tại 18056 và API key. Bản open-core không tự có transcription nếu thiếu credentials: make all cảnh báo khi block credentials trong .env để trống. Lúc đó POST /bots trả 503, trừ khi bạn chủ động gửi yêu cầu capture-only bằng cờ transcribe_enabled=false hoặc đặt biến môi trường TRANSCRIBE_ENABLED=false.

Để đọc transcript sau khi đã có bot trong phòng họp, gọi REST API theo đúng dạng README:

curl -H 'X-API-Key: vxa_cua_ban' http://localhost:18056/transcripts/google_meet/abc-defg-hij

Lệnh POST /bots cần body JSON chứa platform, native_meeting_id và bot_name. Nếu không muốn dùng curl, mở Terminal UI ở cổng 13000, dán link cuộc họp và để bot tự vào. Bản nhẹ hơn dùng make lite, một container duy nhất thay vì compose đầy đủ.

Vexa 0.12 trả 404 ở đâu? Đọc README kỹ trước khi cài

Vexa 0.12 trả 404 ở đâu? Đọc README kỹ trước khi cài
Vexa 0.12 trả 404 ở đâu? Đọc README kỹ trước khi cài

Nhìn tiêu đề GitHub, bạn dễ tưởng Vexa đã có WebSocket transcript, điều khiển bot giữa cuộc gọi và live meeting copilot. Nhưng README ghi rõ rằng một nhóm tính năng này chưa nối vào open-core stack và đang trả 404 tại nhánh 0.12. Sự khác biệt giữa định hướng trên README và code hiện tại nằm ngay ở mục v0.12 note.

Tính năng Trạng thái thực tế 0.12
Đổi ngôn ngữ hoặc task giữa cuộc gọi Trả 404, dự kiến ở bản sau
Bot nói vào cuộc họp bằng text to speech Trả 404
Live meeting copilot với thẻ về người, quyết định Roadmap, chưa có API
WebSocket transcript multiplex Planned; hiện chỉ đọc bằng poll
Mã hóa at-rest cho workspace và token Planned
Bot tham gia Jitsi Đã chạy offline, chưa xác nhận live

Những hạn chế này không làm mất giá trị phần transcript API vốn đã production, nhưng nếu bạn chọn Vexa vì chữ WebSocket trên tiêu đề GitHub thì nên kiểm tra lại. Điểm cộng là nhóm phát triển không giấu: họ đặt bảng Status với các ký hiệu production, in progress và planned ngay trong README.

So với hosted Meeting Bot API và Whisper tự cuộn, Vexa hơn gì?

So với hosted Meeting Bot API và Whisper tự cuộn, Vexa hơn gì?
So với hosted Meeting Bot API và Whisper tự cuộn, Vexa hơn gì?

Bảng dưới đây được lấy nguyên từ README nên mang góc nhìn của nhóm Vexa, chưa phải kết quả kiểm định độc lập. Mục đích là cho thấy Vexa đứng giữa các dịch vụ Meeting Bot API đám mây và hướng tự cuộn Whisper cộng bot riêng.

Khả năng Vexa Hosted Meeting Bot API Whisper + bot tự cuộn
Self-host, tự giữ dữ liệu Được thiết kế sẵn Không, dữ liệu qua cloud của họ Được, nếu bạn tự lo hạ tầng
API transcript realtime Đã có Đã có Phải tự xây
Bot tham gia Meet, Teams, Zoom, Jitsi Ba nền tảng production, Jitsi chờ xác nhận Tùy dịch vụ Tốn công rất lớn
Gán người nói Đã có sẵn Đã có sẵn Phải tự xây
Kiến thức dạng file Markdown Có, thành git repo Không Phải tự xây
Agent làm việc trên workspace Không Không
Giấy phép mở Apache-2.0 Không Tùy phần bạn dùng

Điểm Vexa kết hợp được mà một số nơi khác thiếu là self-host, realtime, đa nền tảng và đầu ra là file bạn sở hữu. Các công cụ document RAG vẫn dùng được Vexa như nguồn transcript sạch, nên Vexa không hẳn là kẻ thay thế mà là nguồn cấp phía thượng nguồn.

Chạy Vexa cần GPU không? Transcription và chi phí $0.30/giờ

Chạy Vexa cần GPU không? Transcription và chi phí $0.30/giờ
Chạy Vexa cần GPU không? Transcription và chi phí $0.30/giờ

Không bắt buộc. Toàn bộ Docker Compose có thể chạy GPU-free; phần transcription là một khối riêng biệt dùng faster-whisper, cần GPU nếu bạn tự dựng. Trong lúc thử nghiệm, README gợi ý dùng token STT miễn phí từ vexa.ai/account thay vì cắm GPU ngay.

Nếu build từ mã nguồn bằng make dev, máy cần 8 vCPU và 16 GB RAM. Còn make all chỉ kéo image phát hành nên một máy nhỏ hơn cũng chạy được. Mac với Docker Desktop đủ để chạy đánh giá local; production target là Linux. Chi phí vận hành gồm hạ tầng bạn tự trả, GPU hoặc token STT, và token model cho agent nếu bạn dùng Claude. README nói rõ: bản personal có thể chạy worker bằng tài khoản Claude Pro hoặc Max theo hình thức credit-metered; khi triển khai multiuser, các user khác phải dùng API key theo Commercial Terms, không dùng chung subscription cá nhân.

Cần nhớ rằng agent sandbox chỉ nằm ở bản self-host; bản hosted của vexa.ai không chạy toàn bộ nhánh knowledge. Bản hosted tính khoảng 0,30 USD mỗi giờ bot và tặng 5 USD credit, tương đương 16 giờ, không yêu cầu thẻ. Với doanh nghiệp cần air-gapped, Vexa cho phép tự dựng toàn bộ, không có egress ra ngoài VPC; đó là lý do dự án nhắm vào tổ chức tài chính, y tế và chính phủ.

Câu hỏi thường gặp

Vexa có miễn phí không?

Mã nguồn miễn phí theo Apache-2.0, nhưng tự host vẫn tốn hạ tầng, GPU hoặc token transcription, cùng chi phí model cho agent. Bản hosted có 5 USD credit miễn phí, đủ cho khoảng 16 giờ bot ở mức 0,30 USD mỗi giờ và không yêu cầu thẻ tín dụng.

Bot Vexa có tự vào lịch Google Meet không?

Có. README xếp lịch và auto-join ở trạng thái production: kết nối lịch ICS, cuộc họp đã lên lịch hiển thị kèm người tham dự, bot tự vào khi tới giờ. Agent còn được giao việc chuẩn bị brief trước buổi họp và xử lý transcript sau buổi họp.

Vexa ghi chú tiếng Việt có chính xác không?

README không công bố số liệu chất lượng riêng cho tiếng Việt. Phần transcription tự host dựng từ faster-whisper và có tham số language khi gửi bot, nhưng độ chính xác với tiếng Việt trong họp đông người phải tự kiểm chứng. Khi nhiều người nói chồng tiếng, speaker attribution có thể để trống khoảng 4 đến 7 phần trăm dòng.

WebSocket transcript có chạy trên bản self-host không?

Chưa. Cách đọc transcript hiện tại là poll REST API. WebSocket multiplex chỉ nằm trong kế hoạch, và nhóm endpoint liên quan chưa nối vào open-core stack ở nhánh 0.12. Nếu kiến trúc của bạn yêu cầu WebSocket ngay, Vexa chưa phải lựa chọn phù hợp.

MCP server trong Vexa để làm gì?

Gateway Vexa phục vụ endpoint MCP tại đường dẫn /mcp. Đây là chuẩn giao thức giúp các client AI agent gọi transcript và workspace thay vì tự ghép REST API. README không mô tả chi tiết danh sách tool MCP nên cần đọc tài liệu docs để rõ phạm vi.

Nguồn tham khảo

Từ laptop Ubuntu tới Kubernetes: lộ trình triển khai Vexa

Muốn thử Vexa, bắt đầu từ bản hosted với 5 USD credit, gửi bot vào một cuộc họp thật, kiểm tra độ trễ transcript và độ chính xác gán người nói trên nền tảng chính của bạn. Sau đó mới chạy make all trên Ubuntu 24.04 để làm quen với Terminal UI và API. Nếu cần multiuser, chuyển sang Helm chart trong deploy/helm với RUNTIME_BACKEND=k8s; mỗi bot hoặc agent thành một Pod riêng, capacity do scheduler cụm quyết định.

Trước khi mở rộng, hãy đối chiếu giấy phép khi dùng agent với model. Một người dùng cá nhân tái sử dụng subscription Claude là điều README mô tả là hợp lệ; nhiều người dùng trong một tổ chức phải đi qua API key thương mại. Vexa 0.12 vẫn đang chuyển động, nhưng riêng phần ghi âm và transcript đã đủ giá trị để thử nghiệm ngay hôm nay.

Related Posts