Chatbot AI trả lời khách bằng tài liệu của shop — không biết thì chuyển người thật
Chatbot gắn thẳng vào AI có một tật rất nguy hiểm với người bán hàng: hỏi gì nó cũng trả lời, kể cả khi nó không biết. Khách nhắn "sản phẩm này có hợp với người bị dị ứng da không" mà bot bịa ra một câu nghe rất thuyết phục — người chịu trách nhiệm câu đó là bạn, không phải AI.
Mình làm một con chatbot đảo ngược mặc định đó. Nó chỉ được nói những gì có trong tài liệu của chính cửa hàng bạn — chính sách giao hàng, đổi trả, bảo hành, thanh toán, giờ mở cửa. Câu nào tài liệu không nói tới thì nó không đoán: nó nhắn lại rằng shop sẽ có người trả lời, rồi ghi một phiếu vào danh sách chờ để bạn biết mà xử lý.
Ảnh đính kèm là một lượt chạy thật. Hai câu đầu bot tự trả lời, kèm luôn tên file mà nó lấy thông tin ra. Câu thứ ba nó từ chối trả lời, và ghi rõ lý do bằng số.
Chỗ khó nằm đúng ở câu thứ ba đó. Câu hỏi về dị ứng da khớp tới 0,44 với đoạn nói về điều kiện đổi trả — chỉ vì hai chữ "sản phẩm". Nếu chỉ nhìn điểm khớp thì bot đã trả lời rồi, và trả lời sai. Nên mình đo thêm một thứ thứ hai: bao nhiêu phần chủ đề của câu hỏi thật sự có mặt trong kho tài liệu. Chữ "dị ứng" và "da" không nằm ở đâu cả, nên chỉ số đó tụt xuống 42% và chặn bot lại. Bản đầu mình viết ngược logic này, và bot trả lời sạch cả sáu câu, kể cả câu đáng lẽ phải chuyển người — nói ra để bạn biết chỗ này không hiển nhiên chút nào.
Mình đo bằng 24 câu hỏi, chia ba đợt: một đợt dùng để chỉnh, một đợt viết sau khi chỉnh, một đợt viết sau khi đã chốt hết rồi chạy đúng một lần. Kết quả 19/24 quyết định đúng. Năm câu sai mình ghi thẳng vào bộ test chứ không giấu.
Một điểm mình muốn nói rõ vì nó là khác biệt lớn nhất: kể cả những câu bot quyết định sai, nó vẫn không bịa ra thông tin nào. Mọi câu bot nói đều nằm nguyên văn trong file của cửa hàng. Cái sai là trích nhầm đoạn, không phải nghĩ ra dữ kiện mới. Với người bán hàng thì hai loại sai này khác nhau một trời một vực.
Bạn tự sửa được mà không cần gọi mình: muốn đổi câu trả lời thì sửa file tài liệu; khách hay gõ tắt kiểu ship, bh, cod thì thêm vào bảng từ viết tắt; muốn bot dễ tính hay khó tính hơn thì chỉnh hai con số ngưỡng.
Python 3, chỉ dùng thư viện chuẩn, không cài thêm gì. 30 bài test tự động. Chạy được ngay cả khi không có API key — khi đó nó ghép thẳng các câu trong tài liệu; có key thì gọi model diễn đạt lại cho gọn và tự nhiên hơn, nhưng vẫn bị khoá trong đúng phần tài liệu đã lấy ra.
Con này ghép được vào Website, Facebook, Zalo hay Telegram — phần lõi giống nhau, chỉ khác chỗ nhận và gửi tin nhắn.