Ở trong các phần trước tôi đã hướng dẫn các bạn tạo ra một chat bot tư vấn về sữa bột cho trẻ em, câu chuyện mới chỉ dừng lại ở việc tư vấn về giá cả hoặc địa chỉ bán sữa cho người dùng, trong phần này chúng ta sẽ tiếp tục nghiên cứu cách thu thập thông tin người dùng và chốt đơn hàng.
Để chat bot có thể nhận biết được khi nào người dùng cần mua sản phẩm thì trước tiên ta cần định nghĩa ra một Entity mới và đặt tên là eMuaHang.
eMuaHang
- mua : mua, cần mua, muốn mua
- bán : bán, bán cho tôi, bán tôi
- đặt hàng : đặt hàng, đặt trước, đặt mua
Tiếp theo ta cần tạo ra một Intent và dạy cho chat bot học những câu nói người dùng thường sử dụng để đặt mua hàng, đặt tên cho Intent này là iMuaHang.
Training phrases
- cho tôi đặt hàng 1 hộp
- bán cho tôi 1 hộp
- tôi muốn mua 1 hộp
Responses
- Đơn hàng của bạn đã được ghi nhận. Xin cảm ơn!
Tại mục Action and parameters hiện tại có 1 parameter emuahang đã được tạo sẵn tự động dựa trên Entity eMuaHang, để có thể thu thập được thông tin khách hàng ta cần định nghĩa thêm các parameters khác để hứng các thông tin mà người dùng nhập vào như: tên, số điện thoại, địa chỉ,…
- Tạo parameter tên name: entity ta chọn sys.any, sau đó chọn vào ô required (để yêu cầu người dùng nhập vào tên của họ khi Intent này được kích hoạt) và click vào Define promp … trong cửa sổ hiện ra ta nhập vào các câu hỏi để yêu cầu người dùng nhập họ tên vào như: “Tên bạn là gì?”
- Tiếp tục tạo parameter tên address: entity vẫn chọn sys.any, chọn required và nhập yêu cầu người dùng cung cấp địa chỉ
- Cuối cùng tạo parameter tên phone: entity ta chọn sys.phone-number, chọn required và nhập yêu cầu người dùng cung cấp số điện thoại
Lưu ý: các entity bắt đầu bằng “sys.” là những entity được định nghĩa sẵn bởi Dialogflow và nó có kiểm tra những gì người dùng nhập vào có đúng theo kiểu dữ liệu đã được định nghĩa không. Đó là lý do vì sau tôi chỉ chọn đúng kiểu sys.phone-number cho prameter phone vì chúng ta cần người dùng nhập đúng định dạng số điện thoại, còn đối với tên và địa chỉ thì Dialogflow vẫn có cung cấp entity tương ứng nhưng cách kiểm tra dữ liệu của Dialogflow không phù hợp với họ tên và địa chỉ tiếng Việt của mình nên tôi đã chọn kiểu any (cho phép người dùng nhập bất kỳ thông tin gì vô).
Cuối cùng trong phần cấu hình Intent này ta kéo xuống mục Fulfillment ở cuối trang và mở tuỳ chọn Enable webhook call for this intent sau đó nhấn Save Intent này lại. Tuỳ chọn này cho phép Dialogflow gửi một request có chứa các thông tin của người dùng nhập vào tới web server của chúng ta, việc còn lại là chỉ cần lấy thông tin đó để tạo đơn hàng trên website của mình thôi.
Các bạn cần tạo ra một đường dẫn đến webserver của bạn để hứng dữ liệu gửi về từ Dialogflow khi người dùng kích hoạt iMuaHang. Webserver bạn có thể sử dụng bất kỳ ngôn ngữ nào, ở đây tôi demo trên PHP và tôi tạo ra một file trigger.php trên webser của tôi với nội dung như sau:
1 |
|
Bây giờ bạn cần di chuyển sang mục Fulfillment trong menu bên phải và enable mục Webhook lên, tại ô URL các bạn điền đường dẫn đến file trigger.php trên webserver của bạn và nhấn Save lại. Hình bên dưới chính là nội dung mà ta nhận được từ Dialogflow khi người dùng kích hoạt Intent mua hàng.