Kết nối Rasa AI Chatbot và Facebook
Messenger với data FAQ
Techcombank
Giảng viên hướng dẫn : ThS. Trần Sơn Hải
Sinh viên thực hiện: Võ Ngọc Quỳnh Mai (42.01.104.242)
Giới thiệu đề tài
Sử dụng Rasa để xây dựng trợ lý hỏi đáp FAQ Techcombank và kết nối với Facebook Messenger.
Về phần xây dựng trợ lý hỏi đáp FAQ Techcombank:
●
●
Cài đặt Rasa
Chuẩn bị dữ liệu FAQ Techcombank
Về phần kết nối với Facebook Messenger, thiết lập:
●
●
●
●
Facebook Fanpage
Facebook App
Rasa Credentials
Webhook (ngrok)
2
Nội dung chính
1.
2.
Giới thiệu về Rasa và ứng dụng
Xây dựng trợ lý hỏi đáp FAQ Techcombank với Rasa
1.
2.
3.
4.
3.
4.
5.
Cài đặt Rasa
Tạo project Rasa AI Chatbot đơn giản
Chuẩn bị dữ liệu FAQ Techcombank
Train data và chạy thử trên local
Kết nối Rasa AI Chatbot với Facebook Messenger
Demo
Tài liệu tham khảo
3
1. Giới thiệu về Rasa và ứng dụng
Rasa là framework về machine learning mã
nguồn mở hỗ trợ việc xây dựng chatbot , trợ lý
ảo AI.
Rasa có 2 modules chính:
●
NLU: hiểu nội dung tin nhắn của người
dùng
●
Core: duy trì hội thoại và ra quyết định
4
2. Xây dựng trợ lý hỏi đáp FAQ Techcombank với Rasa
2.1 - Cài đặt Rasa
2.2 - Tạo project Rasa AI Chatbot đơn giản
2.3 - Chuẩn bị dữ liệu FAQ Techcombank
2.4 - Train data và chạy thử trên local
5
2.1 Cài đặt Rasa
Cần cài đặt trước:
Microsoft VC++ Compiler
6
2.1 Cài đặt Rasa
Cài đặt NLU Pipeline Dependencies
Spacy |
Tensorflow |
MITIE |
2.2 Tạo project Rasa AI Chatbot đơn giản
Tạo mới project:
rasa init --no-prompt
8
2.3 Chuẩn bị dữ liệu FAQ Techcombank
9
NLU - Chọn Pipeline (config.yml)
Rasa cung cấp cho ta 2 phương pháp chính xây dựng dữ liệu trainning cho bot:
supervised_embeddings:
●
Không sử dụng dữ liệu pre-trained, chỉ sử
dụng data tự chuẩn bị.
pretrained_embeddings_spacy:
●
Sử dụng tập dữ liệu pre-trained có sẵn (spacy)
-ít có dữ liệu tiếng Việt.
10
NLU - Chọn Pipeline (config.yml)
11
NLU - Training data format (data/nlu.md)
●
Markdown Format
●
JSON Format
## intent:tên_nhóm_ý _định
- Mẫu tin nhắn 1
- Mẫu tin nhắn 2
…
Ý định của người dùng được nhận dạng bởi các
mẫu tin nhắn.
/>
12
NLU - Training data format (data/nlu.md)
13
Core - Stories (data/stories.md)
## tên_kịch_bản_n
* tên_nhóm_ý_định_1
Lên kịch bản (stories) hành động cho chatbot:
●
Mỗi stories gồm 1 hoặc nhiều cặp ý định người dùng - hành động
của bot (intent - action).
-
tên_hành_động_1
tên_hành_động_2
….
●
Mỗi ý đinh người dùng (intent) có thể có 1 hoặc nhiều hành động
của bot (action)
14
Core - Stories (data/stories.md)
15
Core - Domain (domain.yml)
intents:
intents:
----
●
●
●
tên_ý_định_1
tên_ý_định_1
tên_ý_định_2
tên_ý_định_2
...
...
Liệt kê các ý định người dùng (intents)
Liệt kê các hành động của bot (actions)
Định dạng các hành động bằng các mẫu tin
trả lời (templates)
actions:
actions:
----
tên_hành_động_1
tên_hành_động_1
tên_hành_động_2
tên_hành_động_2
...
...
templates:
templates:
tên_hành_động_1:
tên_hành_động_1:
----
text:
text:
text:
text:
...
...
“Mẫu
“Mẫu
“Mẫu
“Mẫu
tin
tin
tin
tin
bot
bot
bot
bot
trả
trả
trả
trả
lời
lời
lời
lời
1”
1”
2”
2”
16
Core - Domain (domain.yml)
17
2.4 Train data và chạy thử trên local
Train data:
Train data:
rasa train
rasa train
Chạy thử:
Chạy thử:
rasa shell
rasa shell
18
3. Kết nối Rasa AI Chatbot với
Facebook Messenger
Các bước tạo kết nối:
●
●
●
Tạo, thiết lập Facebook App và Rasa Credentials
Tạo local webhook ngrok và run chatbot
Kiểm thử chatbot trên facebook messenger
19
Tạo Facebook page
20
Tạo Facebook app
21
Kích hoạt Messenger
22
Tạo mã truy cập Facebook page
23
Đăng ký webhooks
24
Đăng ký webhooks
25