Khi người dùng đưa ra câu hỏi, Chatbot sẽ xử lý phân loại câu hỏi và phản hồi câu trả lời phù hợp với câu hỏi và yêu cầu đó. Rasa có thể xây dựng phản hồi cho Chatbot thông qua các hành động (action). Action này có thể cung cấp thông tin mong muốn cho người dùng dựa vào các ý định, slot và dữ liệu lấy từ cơ sở dữ
42 liệu thông qua kết nối API. Có 2 loại hành động để xử lý câu trả lời trong Chatbot Nhất Nam, loại hành động mặc định (default actions) và hành động tùy biến (custom actions).
3.3.3.1 Hành động mặc định
Là các hành động dự đoán và đưa ra câu trả lời dựa vào ý định và thực thể được trích chọn của người dùng, được xử lý ở thành phần Dialog management đã được Rasa cung cấp. Hành động tiếp theo được quyết định bởi các chính sách đó là chính sách dựa vào quy tắc (Rule policy), chính sách ghi nhớ (Memorization policy) và chính sách TED (TED policy).
-Khai báo chính sách dựa vào các quy tắc (Rule-based policy): Rule-
based policies được khai báo trong file rules.yml. Ví dụ mỗi khi người dùng nhập câu có ý định “chao_hoi” Chatbot luôn đưa ra câu trả lời “Kính chào quý khách! Rất vui lòng được hỗ trợ quý khách”.
Hình 3.8. Khai báo Rule policy trong file rules.yml
-Khai báo kịch bản cuộc hội thoại: Bằng cách thu thập các cuộc hội thoại
thực tế của hỗ trợ viên và người dùng, ta sẽ dựng được những kịch bản thông dụng nhất. Ví dụ trước khi hỏi giá sản phẩm, người dùng sẽ chào hỏi hỗ trợ viên, hỏi về thông tin các sản phẩm doanh nghiệp cung cấp, sau đó mới đến câu hỏi giá. Các kịch bản sẽ được khai báo trong file stories.yml. Kịch bản có thể được viết bằng tay hoặc thông qua học tương tác (interactive learning) khi đó ta có thể đánh giá và dạy Chatbot cách trả lời các ý định của người dùng thông qua giao diện lệnh CLI hoặc chương trình Rasa X. Hệ thống sẽ so sánh hội thoại đang diễn ra với kịch
43 bản có sẵn, nếu trùng khớp sẽ đưa ra phản hồi theo sự kiện tiếp theo trong kịch bản.
Hình 3.9. Khai báo kịch bản trong file stories.yml
3.3.3.2 Hành động tùy biến
Khi yêu cầu người dùng cần thực hiện truy xuất đến dữ liệu bên ngoài hoặc xử lý tính toán phức tạp cần sử dụng thuật toán mà các phương pháp Default action không thể thực hiện được thì có thể sử dụng Custom action để tùy biến hành động. Mỗi khi hành động tùy biến được gọi nó sẽ trỏ đến một hàm trong file actions.py. Custom action viết bằng ngôn ngữ python do vậy có thể dễ dàng xử lý logic phức tạp như tính toán, truy xuất thông tin từ hệ thống ngoài, ví dụ truy xuất giá sản phẩm, thời hạn bảo trì bảo hành của khách hàng, thông tin liên quan đến doanh nghiệp…
Giả sử sau khi người dùng nhập tên và số điện thoại ở form liên hệ, hệ thống sẽ lưu lại thông tin vào Google Drive để nhân viên hỗ trợ liên lạc và sau đó trả lại người dùng phản hồi. Để giải quyết bài toán này không thể sử dụng Default action do đó ta sẽ tạo một Custom action với tên hàm ActionSubmitSalesForm như hình ở dưới
44
Hình 3.10. Hàm xử lý sau khi hoàn thành nhập Form liên hệ