Intent được kích hoạt khi người dùng có những câu trả lời hay câu hỏi tương tự với training phrase trong intent. Không như các chatbot khác. Các training phrase thường chỉ rõ là từ khoá nằm ở đâu trong câu. VD từ khoá nằm đầu câu, hoặc phải xuất hiện từ khoá. Với cách này thì các chatbot này hoạt động theo nguyên lý so sánh chuỗi dữ liệu hơn là thông minh
Đối với Dialogflow thì bạn không cần chỉ định vị trí xuất hiện từ khoá. Mà với giải thuật riêng nó có thể tự hiểu từ khoá hay phần mở rộng. Để hiểu hơn về từ khoá trong dialogflow bạn tham khảo thêm phần Entity.
Kích hoạt intent thông qua visual console
Bạn tạo nhiều training phrase cho intent bằng các câu nói tương tự người dùng sẽ nhập vào. Càng nhiều câu mẫu thì độ chính xác càng cao. Trong câu mẫu luôn đảm bảo rằng các từ khoá sẽ được trích xuất đúng entity. Sau đây là các training phrases được cài đặt mặc định cho intent Default Welcome Intent
Kích hoạt intent thông qua Code Fulfillment
Đôi lúc chúng ta cần kích hoạt thông qua code, đây được xem như là cách kích hoạt chủ động. Tại sao gọi như vậy? Quay lại cách kích hoạt thông qua training phrase, chúng ta hoàn toàn bị động không biết người dùng sẽ hỏi gì. Hệ thống sẽ kích hoạt intent sau khi nhận 1 yêu cầu từ người dùng
Cách kích hoạt chủ động là chúng ta hoàn toàn có thể kích hoạt intent nào theo kịch bản riêng của mình mà không cần phụ thuộc vào tình huống người dùng. VD Khi khách hàng hỏi về thời tiết, thay vì bạn chờ khách nhập cụ thể thành phố nào thì bạn có thể hiển thị liệt kê các thành phố để khách chọn. Cách này rất phù hợp cho các vòng lặp rẽ nhánh If trong chương trình. Chúng ta sẽ kích hoạt intent thông qua Event của nó
VD sau đây khi khách hàng nói Hello, intent Default Welcome Intent sẽ kích hoạt và nó lại tiếp tục kích hoạt intent khác. Để thực hiện vd này bạn cần làm như sau
- Bật chế độ cho phép sử dụng Webhook trong Default Welcome Intent
- Tạo intent tên là Text và bạn có thể không cần phải sử dụng training phrase cho nó. Vì nó sẽ được gọi thông qua webhook.
- Do chúng ta kích hoạt thông qua Event nên tạo Event cho Intent này. Thêm dòng ‘The Test intent is triggered by Welcome intent‘ trong response để nó sẽ hiển thị khi bị kích hoạt
- Thêm đoạn code này vào hàm welcome trong Inline Editor và nhấn deploy
function welcome(agent) {
agent.add(`Welcome to my agent!`);
agent.setFollowupEvent('TestEvent');
}
Sau khi hoàn tất. Bạn có thể test bằng cách gõ Hello. Intent welcome sẽ được kích hoạt do nó có chứa training phrase này và hàm welcome trong fulfillment sẽ kích hoạt event TestEvent thuộc intent Test. Cuối cùng intent Test sẽ hiển thị dòng thông báo bạn đã cài sẵn trong response
Qua bài này bạn đã hiểu cách kích hoạt intent thụ động và chủ động thông qua Event thuộc intent. Mình sẽ hướng dẫn bài kích hoạt intent có truyền tham số arguments sau. Cái này rất cần vì intent sau cần các tham số để xử lý không chỉ kích hoạt không thôi