[Showcase] Bot Telegram tra cứu tồn kho bằng tiếng Việt cho cửa hàng vật liệu xây dựng
Chia sẻ dự án mình làm cho một cửa hàng vật liệu xây dựng của người quen: chủ cửa hàng và nhân viên bán hàng nhắn tin cho bot Telegram bằng tiếng Việt tự nhiên để hỏi tồn kho, giá, doanh số. Ví dụ: "xi măng Hà Tiên còn bao nhiêu bao?", "tuần này bán được bao nhiêu thép phi 10?", "khách Minh Phát còn nợ bao nhiêu?". BỐI CẢNH - Cửa hàng dùng một phần mềm bán hàng có database MySQL. - Chủ cửa hàng hay đi công trình, không mở được máy tính, mỗi lần cần số liệu lại gọi điện về hỏi nhân viên. CÁCH LÀM (TEXT-TO-SQL CÓ RÀO CHẮN) 1. Không cho AI truy cập thẳng các bảng gốc. Mình tạo 6 view đơn giản, tên cột rõ nghĩa: vtonkho, vbanhangngay, vcongnokhach... Mỗi cột có chú thích bằng tiếng Việt. 2. Tạo tài khoản database riêng chỉ có quyền SELECT trên 6 view này. Dù AI viết câu lệnh gì thì cũng không sửa hay xoá được dữ liệu. 3. Khi có câu hỏi, LLM nhận: mô tả các view, vài ví dụ câu hỏi kèm câu SQL đúng, bảng tên gọi khác của sản phẩm ("thép phi 10" = "Thép cuộn D10"). 4. Code kiểm tra câu SQL trước khi chạy: chỉ chấp nhận một câu SELECT, chỉ dùng các view được phép, tự thêm LIMIT, đặt thời gian chạy tối đa 5 giây. 5. Chạy câu SQL, đưa kết quả cho LLM viết câu trả lời ngắn gọn, kèm con số cụ thể. 6. Chỉ những người trong danh sách Telegram ID được phép mới dùng được bot. KHÓ KHĂN THỰC TẾ - Tên sản phẩm: khách và nhân viên gọi theo kiểu riêng ("xi Hà Tiên", "thép 10", "gạch ống"). Bảng tên gọi khác là phần tốn công nhất, phải hỏi nhân viên bán hàng lâu năm. - Câu hỏi về thời gian ("tuần này", "tháng trước", "hôm qua"): đưa ngày hôm nay vào prompt, và quy ước rõ tuần bắt đầu từ thứ 2. - Câu hỏi mơ hồ: bot được hướng dẫn hỏi lại thay vì đoán, ví dụ "Anh muốn xem thép cuộn D10 hay thép cây D10?". KẾT QUẢ SAU 6 TUẦN - Khoảng 40 câu hỏi mỗi ngày, chủ yếu là tồn kho và công nợ. - Mình kiểm tra lại 200 câu hỏi ngẫu nhiên: khoảng 92% trả lời đúng, phần sai chủ yếu do tên sản phẩm chưa có trong bảng tên gọi khác. Mỗi tuần mình bổ sung thêm vào bảng. - Chủ cửa hàng vui nhất là không phải gọi điện về hỏi nữa. - Chi phí API dưới 5 USD/tháng. BÀI HỌC - Rào chắn ở tầng database (quyền SELECT, view) quan trọng hơn mọi câu dặn dò trong prompt. - Thiết kế view tốt giúp AI viết SQL đúng hơn rất nhiều so với việc đổ nguyên cấu trúc database phức tạp vào. - Người dùng không quan tâm công nghệ, họ chỉ cần câu trả lời đúng và nhanh. Ai làm text-to-SQL cho doanh nghiệp nhỏ có kinh nghiệm gì thêm thì chia sẻ nhé.