Tôi đã phát triển chatbot trên Zalo như thế nào? Phần 1: Giới thiệu về chatbot

This entry is part 1 of 2 in the series Tôi đã phát triển Chatbot trên Zalo như thế nào?

Chatbot ra đời nhằm mục đích gì?

Giả sử bạn đang bán hàng điện tử thông qua các công cụ chat bot như Facebook Messenger hoặc phổ biến hơn ở Việt Nam là Zalo. Hằng ngày khách hàng vào hỏi một số câu hỏi lặp lại như: Giá iphone 7 32gb bao nhiêu tiền? Bảo hành samsung galaxy S8 thế nào? Vậy tại sao chúng ta không xây dựng một hệ thống trả lời tự động các câu hỏi của khách hàng? Xuất phát từ nhu cầu này, chatbot ra đời.

Trong loạt bài viết này, mình sẽ hướng dẫn các khái niệm cơ bản để bạn có thể tự build cho mình một chatbot hỗ trợ bán đồ điện tử trên Zalo. Nội dung series bao gồm:

Phần 1: Giới thiệu về chatbot (trang hiện tại)

Phần 2: Cấu hình Zalo OA và tạo chatbot “say hello”

Phần 3: Xây dựng bộ xử lí ngôn ngữ tự nhiên và deploy production cho người dùng cuối.

Demo:

Điểm qua một số tính năng demo cơ bản như sau:

  • Kiểm tra sản phẩm có hàng không: “Shop có bán samsung galaxy s8 không?”
  • Kiểm tra thông tin bảo hành: “Bảo hành của samsung galaxy note 8 ra sao?”
  • Hỏi giá : “Giá samsung galaxy note 8 là bao nhiêu?”

 

Hoặc bạn có thể chat thử với chatbot bằng cách quét mã QR code sau :

zalo.me/2546696898504745117

 

Webhook là gì?

Việc bạn phát triển chatbot cho bất kì nền tảng chat nào: Messenger, Skype,Slack hay Zalo thì nền tảng phải hỗ trợ webhook.

Webhooks là một HTTP callback dùng để kích hoạt một sự kiện khi có một sự kiện xảy ra. Ví dụ: trong ứng dụng chat, bạn cấu hình một webhook để khi có sự kiện người dùng gửi tin nhắn trong ứng dụng, thông qua webhook, chat server sẽ gửi một tin nhắn đến bot server của bạn. Khi tin nhắn gửi đến bot server thì bạn muốn xử lí chả được. Sau khi xử lí, tính toán gì đó xong, bạn sẽ gọi API gửi tin nhắn của nền tảng chat đó để hiện thị tin nhắn kết quả trên giao diện ứng dụng.

Các thứ cần có của một chatbot:

Bộ xử lí ngôn ngữ tự nhiên:

Đặc tính cơ bản của chatbot là phải đối đáp như người bình thường và hiểu được ý nghĩa lời nói. Ví dụ: bạn nói : “Giá iphone 6 là bao nhiêu” và câu “iphone 6 có giá bao nhiêu vậy” thì chatbot phải hiểu đây là cách xử lí như nhau. Làm sao để chatbot hiểu được ý nghĩa câu nói? Chúng ta cần một một bộ xử lí ngôn ngữ tự nhiên.

Một số bộ xử lí ngôn ngữ tự nhiên hỗ trợ tiếng Việt như: Wit.ai và Fpt.ai. Giữa 2 cái này, mình thích Wit.ai hơn do có các đặc điểm sau:

  • Miễn phí và tốc độ huấn luyện cực nhanh.
  • Có hỗ trợ thu thập tin nhắn từ người dùng. Do đó, cực kì tiện lợi trong việc huấn luyện khả năng xử lí ngôn ngữ.

Kịch bản:

Kịch bản là phần vô cùng quan trọng của một chatbot. Bạn phải dự đoán các tính huống mà người dùng có thể hỏi đến, từ đó có chiến lược trong việc xây dựng bộ xử lí ngôn ngữ tự nhiên. Trong chu trình phát triển của chatbot có một nghề mới đó là Conversational interface designer – Nhà thiết kế giao diện hội thoại.

Bot Server:

Bot server chính là nơi xử lí tin nhắn người dùng gửi đến. Ví dụ: người dụng gửi đến tin nhắn: “giá iphone 6 32gb là bao nhiêu” trong ứng dụng chat thì Bot Server sau khi nhận được tin nhắn này thông qua webhook, sẽ tiến hành truy xuất database để thấy ra thông tin giá sản phẩm.

Bot server hiểu đơn giản là một Restful web service. Bạn có thể sử dụng bất kì nền tảng nào để build một Restful web service: Spring Boot (java) , Net Core (C#) hoặc NodeJS (javascript). Miễn sau, nền tảng chat hiện tại của bạn hỗ trợ các API liên quan đến ngôn ngữ đó.

Kết:

Tạm kết thúc tại đây nhé. Qua bài viết này, chắc hẳn bạn đã hiểu sơ về xây dựng một chatbot cần có những gì: webhook, bộ xử lí ngôn ngữ tự nhiên, kịch bản, Restful web service. Trong phần tiếp theo mình sẽ hướng dẫn cách phát triển một chatbot đơn giản trên Zalo có chức năng là “say hello” 🙂

Series NavigationTôi đã phát triển chatbot trên Zalo như thế nào? Phần 2: Cấu hình Zalo OA và tạo chatbot “say hello” >>

Categories: