№ 69
SanhXM là trợ lý AI cho tài xế công nghệ: hỏi đáp chính sách thưởng/phạt có trích nguồn và ngày hiệu lực, gợi ý khu vực chạy hiệu quả. Hỏi bằng chữ hoặc bằng giọng nói, sử dụng trên trình duyệt điện thoại/máy tính.
Tài xế xe công nghệ: Chính sách thưởng, phạt, chiết khấu, thuê pin, đồng phục, thuế nằm rải rác ở hàng chục bài thông báo, thường xuyên cập nhật và mỗi hợp đồng đăng ký, mỗi khu vực lại có chính sách khác nhau. Tài xế đang chạy ngoài đường thì rất khó để tra. Các câu hỏi lặp đi lặp lại mỗi ngày:
Không tự trả lời được thì tài xế gọi tổng đài, hoặc hỏi nhau trong nhóm chat rồi truyền tay nhau thông tin đã hết hiệu lực.
Phía hãng: Mỗi câu hỏi lặp là một cuộc gọi tổng đài. Mỗi lần nhân viên trả lời theo bản chính sách cũ là một khiếu nại. Tranh cãi về tiền là loại khiếu nại tốn thời gian nhất. Còn về vận hành, tài xế dồn về vài khu quen trong khi khu khác thiếu xe.
| Tính năng | Làm gì | Hàng rào bắt buộc |
|---|---|---|
| F1 — Đăng nhập | Đăng nhập tài xế và quản trị viên bằng JWT | Kiểm quyền ở server; không dò tài khoản; tài xế không được gọi route admin |
| F2 — Hỏi đáp chính sách | Tra kho chính sách tiếng Việt, trả lời kèm tên văn bản, trích dẫn và ngày hiệu lực | Lọc contract_scope/vùng/trạng thái/ngày trước khi trả lời; seed đi qua allowlist, tài liệu admin đi qua approve trước khi index |
| F3 — Thu nhập & đối soát | Xem ngày/tuần/tháng và chi tiết từng chuyến; tách khoản cộng/trừ, giải thích công thức | Tính bằng SQL và hàm đã kiểm thử; LLM chỉ hiểu câu hỏi, gọi tool và diễn giải. Xác định contract_type trước khi tính |
| F4 — Memory tài xế | Ghi nhớ các ưu tiên được tài xế cho phép và dùng lại ở lượt sau | Chỉ lưu khóa trong whitelist, xác nhận hai bước, cô lập theo đúng tài xế; không đưa raw state vào router |
| F5 — Tin cậy thấp & HITL | Phát hiện thiếu căn cứ, câu hỏi nhạy cảm hoặc ngoài phạm vi và chuyển người thật | Không có nguồn thì không khẳng định; câu về kỷ luật, khóa tài khoản, tai nạn hoặc dữ kiện chưa đủ sẽ có hướng dẫn tổng đài |
| F6 — Khu vực/khung giờ | Bảng khu × khung giờ, xếp theo thu nhập/giờ online (gồm thời gian chờ) |
Mọi số có n; dưới n=10 chuyến cá nhân hoặc n=8 yêu cầu cầu thành phố thì nói “chưa đủ dữ liệu” + HITL. EMPLOYEE_CAR là “không áp dụng”, không hiển thị 0 |
| F7 — Admin chính sách | Admin upload Markdown/PDF/DOCX, xem bản trích xuất, review/approve, re-index và xem hàng đợi câu chưa trả lời | File gốc và SHA-256 lưu PostgreSQL; chỉ sau approve mới index; index phiên bản mới lỗi thì bản cũ vẫn phục vụ |
| F8 — Giọng nói | Bấm một lần để ghi âm; tự dừng sau 3 giây im lặng; transcript hợp lệ tự gửi; có nút sửa khi nghe sai | Qua POST /api/v1/transcribe, multipart field file; production chỉ dùng Qwen3 ASR Flash qua OpenRouter, không fallback; lỗi trả 502 ASR_UNAVAILABLE và vẫn cho gõ tay |
Ba nguyên tắc chống bịa đặt :
PWA (React + Vite) ──► FastAPI (SSE, trả lời chảy dần)
│
LangGraph router — phân loại câu hỏi
│
┌────────────┬────────────┼────────────┬─────────────┐
RAG Income Zone Memory HITL
Qdrant engine khu vực / ghi nhớ chuyển
hybrid + Postgres khung giờ ưu tiên tổng đài
BM25+vector (SQL) tài xế
MVP hiện chạy được các luồng chính. Kết quả đã kiểm được:
Giới hạn hiện tại :