You are on page 1of 71

Đặng Minh Đạt

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG


KHOA CÔNG NGHỆ THÔNG TIN 1

-------------------------------------
*
XÂY DỤNG CHATBOT HỖ TRỢ BÁN QUẦN ÁO

ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC
ĐỀ TÀI:

THIẾT KẾ VÀ TRIỂN KHAI CHATBOT THÔNG MINH


HỖ TRỢ BÁN HÀNG TRỰC TUYẾN

Giảng viên hướng dẫn: TS. NGUYỄN THỊ MAI TRANG


Sinh viên thực hiện : ĐẶNG MINH ĐẠT
Mã sinh viên : B19DCCN169
*

Khóa : 2019-2024
Hệ : ĐẠI HỌC CHÍNH QUY
LỚP: D19CNPM04

Hà Nội – 2024
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA CÔNG NGHỆ THÔNG TIN 1

-------------------------------------

ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC
ĐỀ TÀI:

THIẾT KẾ VÀ TRIỂN KHAI CHATBOT THÔNG MINH HỖ TRỢ


BÁN HÀNG TRỰC TUYẾN

Giảng viên hướng dẫn: TS. NGUYỄN THỊ MAI TRANG


Sinh viên thực hiện : ĐẶNG MINH ĐẠT
Mã sinh viên : B19DCCN169
Khóa : 2019-2024
Hệ : ĐẠI HỌC CHÍNH QUY

Hà Nội – 2024
Đồ án tốt nghiệp Lời cảm ơn

LỜI CẢM ƠN
Đầu tiên, em xin em xin gửi lời cảm ơn chân thành tới các thầy cô trong Học viện
Công nghệ Bưu chính Viễn thông nói chung và các thầy cô trong khoa Công nghệ thông
tin nói riêng, những người đã cho em cơ hội được học tập, tích lũy kiến thức và tận tình
chỉ dẫn em trong những năm vừa qua cũng như cơ hội để làm đồ án tốt nghiệp này.
Đặc biệt, em xin gửi lời cảm ơn tới cô TS. Nguyễn Thị Mai Trang, người đã trực
tiếp hướng dẫn, chỉ bảo em thực hiện đồ án, củng cố thêm kiến thức về chuyên môn cũng
như thực tế và tạo điều kiện thuận lợi nhất để em thực hiện đồ án.
Cuối cùng, em xin gửi lời cảm ơn tới bố mẹ, người thân và bạn bè đã hỗ trợ và luôn
là chỗ dựa tinh thần trong quá trình học tập và làm đồ án tốt nghiệp.
Dù đã cố gắng rát nhiều trong quá trình thực hiện đồ án nhưng đồ án rất khó tránh
khỏi những thiếu sót, em rất mong nhận được sự góp ý, chỉ bảo của quý thầy cô.
Em xin chân thành cảm ơn!

Hà Nội, tháng 12 năm 2023

Đặng Minh Đạt

i
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Lời cam kết

LỜI CAM KẾT

Họ và tên sinh viên: Đặng Minh Đạt


Điện thoại: 0963632312
Mã sinh viên: B19DCCN169
Lớp: D19CNPM04
Hệ đào tạo: Đại học chính quy
Tôi – Đặng Minh Đạt – cam kết đồ án tốt nghiệp là công trình nghiên cứu của bản
thân dưới sự hướng dẫn của TS. Nguyễn Thị Mai Trang. Các kết quả nêu trong đồ án tốt
nghiệp là trung thực, là thành quả của riêng tôi, không sao chép bất kỳ công trình nào khác.
Tất cả những tham khảo trong đồ án tốt nghiệp đều được ghi rõ ràng và đầy đủ nguồn gốc
trong danh mục tài liệu tham khảo. Tôi xin hoàn toàn chịu trách nhiệm nếu vi phạm quy
chế của nhà trường.

Hà Nội, tháng 12 năm 2023


Tác giả

Đặng Minh Đạt

ii
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Nhận xét

NHẬN XÉT
(Của giảng viên phản biện)
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................

iii
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Nhận xét

NHẬN XÉT
(Của giảng viên hướng dẫn)
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
.....................................................................................................................................
Điểm:............................(bằng chữ:........................................................... . ........................)
Đồng ý/Không đồng ý cho sinh viên bảo vệ trước hội đồng chấm đồ án tốt nghiệp?

……, ngày…… tháng ……năm 2023


CÁN BỘ - GIẢNG VIÊN HƯỚNG DẪN
(ký, ghi rõ họ tên)

iv
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Mục lục

MỤC LỤC
DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT ................................................... viii
DANH MỤC CÁC BẢNG ............................................................................................... ix
DANH MỤC CÁC HÌNH VẼ........................................................................................... x
MỞ ĐẦU ............................................................................................................................ 1
CHƯƠNG I. TỔNG QUAN VỀ SỬ DỤNG CHATBOT HỖ TRỢ BÁN HÀNG TRỰC
TUYẾN ............................................................................................................................... 3
1.1. Giới thiệu đề tài.................................................................................................... 3
1.2. Chatbot và lịch sử phát triển của chatbot ......................................................... 3
1.2.1. Chatbot .......................................................................................................... 3
1.3. Phân loại chatbot ................................................................................................. 6
1.4. Các phương pháp xây dựng chatbot .................................................................. 7
1.5. Chatbot trong hỗ trợ bán hàng trực tuyến ........................................................ 8
1.6. Các nền tảng hỗ trợ xây dựng chatbot .............................................................. 9
1.7. Kết luận chương................................................................................................. 10
CHƯƠNG II. NỀN TẢNG PHÁT TRIỂN CHATBOT BÁN HÀNG VÀ CÁC THUẬT
TOÁN TÌM KIẾM SẢN PHẨM .................................................................................... 12
2.1. Nền tảng Rasa .................................................................................................... 12
2.1.1. Giới thiệu về nền tảng Rasa ....................................................................... 12
2.1.2. Ưu điểm khuyết điểm của Rasa trong xây dựng chatbot ........................ 12
2.1.3. Lựa chon Rasa trong xây dựng chatbot bán hàng ................................... 14
2.3. Các thành phần của Rasa ................................................................................. 15
2.3.1. Mô hình hiểu ngôn ngữ tự nhiêu Rasa NLU ............................................ 15
2.3.2. Quản lý hội thoại Rasa Core ...................................................................... 16
2.3.4. Các thành phần khác hệ thống Rasa ......................................................... 16
2.4. Phương pháp đánh giá hiệu suất của Rasa NLU, Rasa Core ........................ 17

v
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Mục lục

2.5. Thuật toán tìm kiếm sản phẩm từ cơ sở dữ liệu dựa trên văn bản người dùng
18
2.5.1. Các thuật toán tính sự tương đồng văn bản ............................................. 19
2.5.2. Lựa chọn thuật toán ................................................................................... 21
2.6. Kết luận chương................................................................................................. 22
CHƯƠNG III: XÂY DỰNG CHATBOT HỖ TRỢ BÁN QUẦN ÁO SỬ DỤNG NỀN
TẢNG RASA ................................................................................................................... 23
3.1. Mô tả hệ thống ................................................................................................... 23
3.2. Phân tích và xây dựng các chức năng .............................................................. 24
3.2.1. Chào hỏi cơ bản........................................................................................... 25
3.2.2. Hỏi thông tin shop, sản phẩm .................................................................... 26
3.2.3. Gợi ý mua hàng ........................................................................................... 26
3.2.4. Hỗ trợ đặt hàng ........................................................................................... 26
3.2.5. Hỗ trợ hủy đơn hàng .................................................................................. 27
3.3. Biểu đồ tuần tự ................................................................................................... 27
3.3.1. Chào hỏi cơ bản........................................................................................... 27
3.3.2. Hỏi thông tin shop, sản phẩm .................................................................... 29
3.3.3. Gợi ý mua hàng ........................................................................................... 31
3.3.4. Hỗ trợ đặt hàng ........................................................................................... 32
3.3.5. Hỗ trợ hủy đơn hàng .................................................................................. 32
3.4. Xây dựng Chương trình .................................................................................... 33
3.4.1. Nguồn dữ liệu .............................................................................................. 33
3.4.2. Xây dựng ý định .......................................................................................... 33
3.4.3. Xây dựng thực thể ....................................................................................... 36
3.4.4. Xây dựng câu trả lời ................................................................................... 37
3.4.5. Xây dựng kịch bản ...................................................................................... 40
3.4.6. Đào tạo chatbot ........................................................................................... 41

vi
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Mục lục

3.4.7. Kiểm tra chatbot ......................................................................................... 43


3.4.8. Kết nối chatbot với telegram...................................................................... 44
3.5. Kết luận chương................................................................................................. 45
CHƯƠNG IV. KẾT QUẢ THỰC NGHIỆM, ĐÁNH GIÁ CHATBOT ..................... 46
4.1. Môi trường thực nghiệm ................................................................................... 46
4.2. Kết quả thực nghiệm ......................................................................................... 46
4.2.1. Đánh giá mô hình Rasa NLU và Rasa Core ............................................. 46
4.2.2. Test trên giao diện người dùng cuối .......................................................... 49
4.3. Kết luận chương................................................................................................. 55
KẾT LUẬN ...................................................................................................................... 56
TÀI LIỆU THAM KHẢO .............................................................................................. 57

vii
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Danh mục các ký hiệu và chữ viết tắt

DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT

STT Từ viết tắt Tiếng Anh Tiếng Việt/Giải thích

1 AI Artificial intelligence Trí tuệ nhân tạo

2 NLP Natural Language Xử lý ngôn ngữ tự nhiên


Processing

3 NLU Natural Language Hệ thống hiểu ngôn ngữ tự nhiên


Understanding

4 DB Database Cơ sở dữ liệu

5 API Application Programming Giao diện lập trình ứng dụng


Interface

6 LCS Longest Common Chuỗi con chung dài nhất


Subsequence

viii
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Danh mục các bảng

DANH MỤC CÁC BẢNG

Bảng 1. So sánh ưu nhược điểm của Rasa và một số nền tảng khác……………………….13
Bảng 2. Bảng phân confusion matrix……………………...……………………………...17
Bảng 3. Xây dựng ý định…………………………………………………………………33
Bảng 4: Các Action của chatbot………………………………………………………….39
Bảng 5: Đánh giá trích chọn thông tin thực thể (entity)………………………………….47
Bảng 6: Đánh giá mô hình Rasa Core……………………………………………………47
Bảng 7: Test trên giao diện người dùng cuối……………………………………………..48

ix
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Danh mục các hình vẽ

DANH MỤC CÁC HÌNH VẼ

Hình 1.1. Chatbot trong Marketing và bán hàng…………….……………………………8


Hình 1.2. Nền tảng hỗ trợ xây dựng chatbot…………………………….……………….10
Hình 2.1. Mô tả quá trình xử lý thông tin qua Rasa NLU ………………………………..15
Hình 2.2. Các thành phần hệ thống RASA……………………………………………….16
Hình 3.1. Kiến trúc chatbot………………………..……………………………………...23
Hình 3.2. Các chức năng của chatbot………………………………………….………….25
Hình 3.3. Sơ đồ tuần tự của Giới thiệu chức năng……….…………………….…………27
Hình 3.4. Sơ đồ tuần tự của Chào hỏi………………………………………….…………28
Hình 3.5. Sơ đồ tuần tự Trả lời một số câu hỏi khác……………………………………..28
Hình 3.6. Sơ đồ tuần tự Hỏi thông tin shop…………………………………..…………..29
Hình 3.7. Sơ đồ tuần tự Hỏi về các loại sản phẩm……………………………..…………29
Hình 3.8. Sơ đồ tuần tự Hỏi theo giá cả……………………………………….…………30
Hình 3.9. Sơ đồ tuần tự Hỏi chi tiết sản phẩm theo tên……………………………………30
Hình 3.10. Sơ đồ tuần tự Hỏi chi tiết sản phẩm đã liệt kê trước đó………………………31
Hình 3.11. Sơ đồ tuần tự Gợi ý mua hàng…………………………………..…………….31
Hình 3.12. Sơ đồ tuần tự Hỗ trợ đặt hàng………………………………….……………..32
Hình 3.13. Sơ đồ tuần tự Hủy đơn hàng………………………………….………………32
Hình 3.14. Đào tạo một model…………………………………………….……………...41
Hình 3.15. Đào tạo cho chatbot dạng shell……………………………….………………42
Hình 3.16. Chế độ đào tạo cho chatbot bằng Interactive Learning……………………….42
Hình 3.17. Ví dụ về trực quan hoá cuộc hội thoại ……………………….………………43
Hình 3.18. End-to-end testing với Rasa………………………………….……………….44
Hình 4.1. Intent Confusion matrix…………………………………...…………………...46

x
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Mở đầu

MỞ ĐẦU
Trong thời đại số hóa ngày nay, khi mọi hoạt động kinh doanh đều chịu ảnh hưởng
sâu rộng bởi sự phát triển của công nghệ, chatbot đã nổi lên như một công cụ quan trọng
không thể thiếu trong ngành bán hàng và tiếp thị. Với khả năng tương tác tự động thông
qua giao diện trò chuyện, chatbot không chỉ đơn giản là một phần mềm mà còn là một
"người trợ giúp ảo" mạnh mẽ, mang lại sự tiện lợi và tối ưu hóa trải nghiệm của khách
hàng.
Việc sử dụng chatbot trong bán hàng đã không còn chỉ là xu hướng mà là một nhu
cầu thiết yếu. Đã từ lâu, việc phục vụ và tương tác trực tiếp với khách hàng là một trong
những yếu tố quan trọng nhất trong việc xây dựng mối quan hệ và tạo niềm tin. Tuy nhiên,
với sự gia tăng của lưu lượng thông tin và nhu cầu phục vụ ngày càng tăng, việc duy trì
một đội ngũ nhân viên hỗ trợ khách hàng 24/7 đã trở nên không khả thi đối với nhiều doanh
nghiệp.
Chính vì lý do này, chatbot đã nổi lên như một giải pháp hoàn hảo. Khả năng tự
động hóa việc trả lời câu hỏi cơ bản, hỗ trợ tìm kiếm thông tin sản phẩm, xử lý đơn hàng,
và thậm chí là cung cấp dịch vụ hỗ trợ sau bán hàng, chatbot đáp ứng được nhu cầu tương
tác của khách hàng một cách nhanh chóng và hiệu quả. Đây cũng chính là lý do đề tài “Xây
dựng chatbot bán quần áo” được lựa chọn để giúp các doanh nghiệp có thể làm hài lòng
khách hàng từ đó có thể tăng doanh thu giảm chi phí một cách hiệu quả.
Bên cạnh các ưu điểm của chatbot như hỗ trợ nhanh chóng, giảm chi phí vận hành,
hoạt động 24/7 các chatbot được thiết kế để hiểu ngôn ngữ tự nhiên như mục đích, yêu cầu,
thực thể được đề cập trong yêu cầu. Các chatbot dạng này giúp hiểu thông tin khách hàng
cung cấp chính xác hơn, mở rộng khả năng của chatbot và cũng nâng cao chất lượng trò
chuyện. Vì những ưu điểm kể trên đồ án này tập trung vào việc xây dựng một chatbot có
khả năng trò chuyện với khách hàng trong phạm vi bán hàng quần áo online. Chatbot này
được thiết kế phù hợp với mục đích đề ra và sẽ là trợ thủ đắc lực trong việc bán hàng online
hiện nay.
Đồ án gồm 5 chương và mục lục với nội dung như sau:
Chương I: Trình bày tổng quan về sử dụng chatbot hỗ trợ bán hàng trực tuyến, trong
đó giới thiệu về đề tài, tìm hiểu chatbot, phân loại chatbot và các framework để xây dựng
chatbot.

1
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Mở đầu

Chương II: Nền tảng phát triển chatbot bán hàng và các thuật toán tìm kiếm sản
phẩm, trong đó giới thiệu về nền tảng xây dựng chatbot Rasa, các thành phần của nó, đồng
thời giới thiệu thuật toán có sử dụng trong việc tìm kiếm sản phẩm.
Chương III: Xây dựng chatbot hỗ trợ bán quần áo sử dụng nền tảng Rasa, chương
này mô tả hệ thống của chatbot, các chức năng cần phát triển, cách để xây dựng các thành
phần của chatbot.
Chương IV: Kết quả thực nghiệm, đánh giá chatbot, trong đó thử nhiệm chatbot và
đánh giá lại dựa trên các tiêu chí của Rasa, ngoài ra sẽ thử nghiệm trên giao diện người
dùng cuối.
Chương V: Kết luận, chương cuối sẽ đánh giá lại đồ án, những công việc đã làm
được trong đồ án và kế hoạch phát triển tiếp trong tương lai.

2
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 1: Tổng quan về sử dụng chatbot trong
hỗ trợ bán hàng trực tuyến

CHƯƠNG I. TỔNG QUAN VỀ SỬ DỤNG CHATBOT HỖ TRỢ BÁN HÀNG


TRỰC TUYẾN
Trong chương 1, đồ án sẽ giới thiệu chi tiết về đề tài, chatbot, lịch sử phát triển của
chatbot, cách để phân loại chatbot, chatbot trong việc bán hang trực tuyến ngày nay như
thế nào, ngoài ra sẽ giới thiệu thêm về các nền tảng để phát triển chatbot.
1.1. Giới thiệu đề tài
Trong thời đại số hóa ngày nay, khi mọi hoạt động kinh doanh đều chịu ảnh hưởng
sâu rộng bởi sự phát triển của công nghệ, chatbot đã nổi lên như một công cụ quan trọng
không thể thiếu trong ngành bán hàng và tiếp thị. Với khả năng tương tác tự động thông
qua giao diện trò chuyện, chatbot không chỉ đơn giản là một phần mềm mà còn là một
"người trợ giúp ảo" mạnh mẽ, mang lại sự tiện lợi và tối ưu hóa trải nghiệm của khách
hàng.
Việc sử dụng chatbot trong bán hàng đã không còn chỉ là xu hướng mà là một nhu
cầu thiết yếu. Đã từ lâu, việc phục vụ và tương tác trực tiếp với khách hàng là một trong
những yếu tố quan trọng nhất trong việc xây dựng mối quan hệ và tạo niềm tin. Tuy nhiên,
với sự gia tăng của lưu lượng thông tin và nhu cầu phục vụ ngày càng tăng, việc duy trì
một đội ngũ nhân viên hỗ trợ khách hàng 24/7 đã trở nên không khả thi đối với nhiều doanh
nghiệp.
Chính vì lý do này, chatbot đã nổi lên như một giải pháp hoàn hảo. Khả năng tự
động hóa việc trả lời câu hỏi cơ bản, hỗ trợ tìm kiếm thông tin sản phẩm, xử lý đơn hàng,
và thậm chí là cung cấp dịch vụ hỗ trợ sau bán hàng, chatbot đáp ứng được nhu cầu tương
tác của khách hàng một cách nhanh chóng và hiệu quả. Đây cũng chính là lý do tôi chọn
đề tài “Xây dựng chatbot bán quần áo” để hỗ trợ trong việc bán hàng online.
1.2. Chatbot và lịch sử phát triển của chatbot
1.2.1. Chatbot
Chatbot được định nghĩa là một loại phần mềm hoặc chương trình máy tính được
thiết kế để tương tác với con người thông qua giao diện trò chuyện, thường là qua các ứng
dụng nhắn tin hoặc trang web. Chatbot có khả năng tự động phản hồi và đáp ứng các câu
hỏi, yêu cầu hoặc nhu cầu của người dùng dựa trên các quy tắc cụ thể hoặc thông qua trí
tuệ nhân tạo (Artificial Intelligient,AI). Mục tiêu chính của chatbot là cung cấp thông tin,
hỗ trợ trong việc giải quyết vấn đề, hoặc thực hiện các nhiệm vụ cơ bản mà không cần sự
can thiệp trực tiếp từ con người.

3
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 1: Tổng quan về sử dụng chatbot trong
hỗ trợ bán hàng trực tuyến

Các chatbot có thể được lập trình để thực hiện nhiều chức năng khác nhau, từ việc
cung cấp thông tin về sản phẩm và dịch vụ, hỗ trợ tư vấn mua hàng, trả lời câu hỏi tự động
đến việc thực hiện các nhiệm vụ như đặt hàng, đặt lịch hẹn hoặc hỗ trợ kỹ thuật cơ bản.
Được xây dựng dựa trên các thuật toán máy học và trí tuệ nhân tạo, một số chatbot
tiên tiến có khả năng học hỏi từ dữ liệu và tương tác người dùng để cung cấp trải nghiệm
tương tác tốt hơn và cá nhân hóa hơn. Các công nghệ như xử lý ngôn ngữ tự nhiên (NLP)
giúp chatbot hiểu và xử lý ngôn ngữ tự nhiên của con người để có thể tương tác một cách
tự nhiên và linh hoạt hơn.
1.2.2. Lịch sử phát triển
Chatbot đầu tiên ra đời năm 1960, tên là Eliza, và là một chương trình máy tính của
Joseph Weizenbaum (Viện Công nghệ Massachusetts, Mỹ). Chương trình được thiết kế
theo cách bắt chước cuộc trò chuyện của con người. Chatbot Eliza hoạt động bằng cách
chuyển các từ mà người dùng đã nhập vào máy tính và sau đó ghép nối chúng vào danh
sách các câu trả lời có kịch bản. Nó sử dụng một kịch bản mô phỏng một nhà tâm lý trị
liệu. Kịch bản được chứng minh là một tác động đáng kể đến việc xử lý ngôn ngữ tự nhiên
và trí thông minh nhân tạo và là một trong những chương trình đầu tiên có thể vượt qua bài
kiểm tra Turing.
Vào năm 1972 một bác sĩ tâm thần người Mỹ Kenneth Colby đã xây dựng 1 chatbot
với tên Parry. Chương trình bắt chước một bệnh nhân tâm thần phân liệt. Nó là một chương
trình ngôn ngữ tự nhiên tương tự như suy nghĩ của một cá nhân. Parry hoạt động thông qua
một hệ thống phức tạp các giả định, phân bổ và “phản ứng cảm xúc” được kích hoạt bằng
cách thay đổi trọng số được gán cho các đầu vào bằng lời nói. Trong cùng năm đó, Parry
và Eliza đã “gặp” và “nói chuyện” với nhau tại Hội nghị Quốc tế về Truyền thông Máy
tính ở Washington DC. Sau đó, Parry cũng đã vượt qua một phiên bản của Turing Test.
Những năm 1980 chatbot Jabberwacky được phát triển, nó được thiết kế để “mô
phỏng trò chuyện của con người tự nhiên theo cách thú vị và hài hước”. Mục đích ban đầu
của dự án Chatbot Jabberwacky là tạo ra một trí tuệ nhân tạo có khả năng vượt qua các
phép thử Turing. Nó được thiết kế để bắt chước tương tác của con người và thực hiện các
cuộc hội thoại với người dùng. Mục đích cuối cùng của chương trình là chuyển từ một hệ
thống dựa trên văn bản sang toàn bộ hoạt động bằng giọng nói. Tác giả của nó tin rằng nó
có thể được kết hợp vào các vật thể xung quanh nhà như robot, các thiết bị thông minh,
…Trong khi tất cả các chatbot trước đó dựa trên cơ sở dữ liệu tĩnh để trả lời và trò chuyện,
Jabberwacky thu thập cụm từ được sử dụng bởi những người tham gia trò chuyện với nó.

4
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 1: Tổng quan về sử dụng chatbot trong
hỗ trợ bán hàng trực tuyến

Nó tự thêm những câu trả lời vào cơ sở dữ liệu và tự động phát triển nội dung của riêng
mình. Trong năm 2008, Jabberwacky đã phát hành một phiên bản mới và đổi tên thành
Cleverbot.
Đến đầu những năm 1990, Creative Labs đã tạo ra Dr SBAITSO, Dr. SBAITSO “trò
chuyện” với người dùng như thể nó là một nhà tâm lý học. Mặc dù hầu hết các câu trả lời
của nó đều là “WHY DO YOU FEEL THAT WAY?” nghĩa là “Bạn cảm thấy như thế nào?”.
Thay vì bất kỳ loại tương tác phức tạp, khi đối mặt với một cụm từ mà nó không thể hiểu
được, nó thường trả lời là “THAT’S NOT MY PROBLEM” (Đó không phải là vấn đề của
tôi).
Sau Dr. SBAITSO vài năm ALICE được xây dựng trên cùng một kỹ thuật được sử
dụng để tạo nên ELIZA. ALICE ban đầu được sáng tạo bởi Richard Wallace, ra đời vào
ngày 23 tháng 11 năm 1995. Chương trình được viết lại bằng ngôn ngữ Java vào năm 1998.
ALICEBOT sử dụng một lược đồ XML có tên AIML (Artificial Intelligence Markup
Language - Ngôn ngữ đánh dấu trí thông minh nhân tạo) để xác định các quy tắc trò chuyện
heuristic. Tuy nhiên, nó lại không thể vượt qua Các phép thử Turing.
Năm 2001, SmarterChild được ra đời, SmarterChild là một Chatbot có sẵn trên
mạng AOL Instant Messenger và Windows Live Messenger (trước đây là MSN
Messenger). AOL Instant Messenger là một chương trình tin nhắn tức thời và hiện diện do
AOL tạo ra, sử dụng giao thức nhắn tin tức thời OSCAR độc quyền và giao thức TOC để
cho phép người dùng đăng ký giao tiếp trong thời gian thực. SmarterChild đóng vai trò giới
thiệu cho việc truy cập dữ liệu nhanh và cuộc trò chuyện được cá nhân hóa thú vị hơn. Hơn
nữa, khi kết hợp với các nhà mạng, chúng trở thành một kênh tiếp thị hiệu quả và miễn phí.
Chúng giúp người dùng giao tiếp nhanh chóng với hệ thống mạng bằng cách hiển thị các
thông tin ngắn gọn với các lựa chọn trên bàn phím điện thoại.
Sau đó 5 năm, IBM Watson được tạo ra với mục tiêu vượt lên và chiến thắng các thí
sinh tham dự cuộc thi Jeopardy! Với khả năng chạy hàng trăm thuật toán phân tích ngôn
ngữ cùng một lúc, IBM Watson sở hữu một sự thông minh ngôn ngữ đáng ngạc nhiên. IBM
thiết lập cho Watson có quyền truy cập vào cơ sở dữ liệu khổng lồ về thông tin. Watson có
thể nhanh chóng truy cập 200 triệu trang dữ liệu, làm cho nó trở thành một máy trả lời câu
hỏi lý tưởng (hoặc, trong trường hợp của Jeopardy, Watson trở thành máy tạo câu hỏi lý
tưởng). Rõ ràng, một hệ thống có thể nhanh chóng lấy thông tin dựa trên đầu vào đàm thoại
cũng có thể cung cấp nền tảng cho việc tạo các trợ lý ảo mạnh mẽ. Hiện nay, IBM Watson

5
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 1: Tổng quan về sử dụng chatbot trong
hỗ trợ bán hàng trực tuyến

phục vụ như là “bộ não” cho nhiều chatbots hoạt động trên nhiều ngành công nghiệp và
lĩnh vực trên khắp thế giới.
Từ năm 2011 đến năm 2016 là khoảng thời gian các ông lớn trong làng công nghệ
cho ra hàng loạt các chatbot. Siri, một trợ lý cá nhân thông minh, đã được ra mắt vào năm
2011 dưới dạng một ứng dụng iPhone và sau đó được tích hợp là một phần của iOS. Năm
2012, Google ra mắt chatbot Google Now. Năm 2016, Google đã giới thiệu trợ lý cá nhân
thông minh mới Google Assistant, là một sự tiến hóa của Google Now. Trợ lý này có thể
tham gia đối thoại hai chiều với người dùng. Trước đó vào năm 2014, Amazon phát hành
Alexa, Microsoft giới thiệu Cortana vào 2015. Với khả năng phân tích và xử lý ngôn ngữ
tự nhiên, các trợ lý ảo này kết nối với các dịch vụ web để trả lời các câu hỏi và đáp ứng
các yêu cầu của người dùng.
Vào ngày 12 tháng 4 năm 2016 Facebook - mạng xã hội lớn nhất thế giới giới thiệu
Messenger Platform. Một nền tảng thân thiện hơn và cho phép bất kỳ ai cũng có thể tạo
cho mình một chatbot. Ngay sau đó, các ứng dụng chat khác như LINE, WhatsApp,
Telegram hay Twitter cũng đưa ra các hỗ trợ hoặc các API cho phép người dùng tạo các
Chatbot trên ứng dụng nhắn tin. Nhưng WeChat của Trung Quốc mới chính là tiên phong
trong lĩnh vực này khi cho ra mắt Xiaoice - chatbot khá hoàn thiện từ năm 2013. Trong
cuộc đua của các nhà phát triển chatbots, Facebook đang nắm giữ thị phần toàn cầu lớn
nhất vì có đến hơn 1 tỷ người sử dụng ứng dụng Messenger hàng tháng. Còn riêng ở thị
trường Trung Quốc, WeChat lại là ứng dụng chat số 1 mà không ứng dụng chat nào có thể
cạnh tranh nổi.
1.3. Phân loại chatbot
Dựa vào một số các tiêu chí thì chatbot có thể phân làm nhiều loại. Dưới đây là một
số phân loại phổ biến của chatbot:
- Theo chế độ tương tác
+ Dựa trên văn bản(Text-Base): Chatbot sẽ giao tiếp với con người thông qua tin
nhắn
+ Dựa trên giọng nói(Voice-Base): Chatbot có thể giao tiếp thông qua giọng nói
- Theo cách hoạt động
+ Dựa trên quy tắc (Rule-based): Chatbot hoạt động dựa trên các quy tắc cụ thể
được lập trình trước để xử lý các yêu cầu của người dùng.

6
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 1: Tổng quan về sử dụng chatbot trong
hỗ trợ bán hàng trực tuyến

+ Dựa trên học máy (Machine Learning-based): Chatbot sử dụng trí tuệ nhân tạo
và học máy để học từ dữ liệu, cải thiện khả năng tương tác và đáp ứng người
dùng.
- Theo mục đích sử dụng
+ Dịch vụ/Cung cấp (Service/Offering): Chatbot được sử dụng để cung cấp thông
tin, hỗ trợ mua hàng, tư vấn sản phẩm/dịch vụ, và thực hiện các giao dịch.
+ Hỗ trợ (Support): Chatbot chủ yếu được sử dụng để hỗ trợ khách hàng, giải quyết
vấn đề kỹ thuật, cung cấp thông tin sau bán hàng, vv.
1.4. Các phương pháp xây dựng chatbot
Để tạo một chatbot, có nhiều phương pháp và công nghệ khác nhau sau đây là môt
số phương pháp phổ biến:
- Sử dụng nền tảng chatbot không cần code
Nền tảng này cung cấp môi trường trực quan để tạo các bot mà không cần viết code.
Chatfuel, ManyChat: Chúng cho phép người dùng tạo chatbot trên Facebook Messenger
bằng cách sử dụng công cụ kéo và thả.
Botsify, Chatbot.com: Cung cấp các công cụ dễ sử dụng để tạo bot mà không cần code, hỗ
trợ tích hợp trên nhiều nền tảng khác nhau.
- Xây dựng tự chủ từ đầu
Sử dụng Ngôn ngữ Lập trình và Nền tảng AI/NLP: Sử dụng Python hoặc Node.js và thư
viện như TensorFlow, PyTorch, hoặc các nền tảng AI khác để xây dựng các mô hình dựa
trên học máy và xử lý ngôn ngữ tự nhiên.
Tích hợp với API Trí tuệ nhân tạo: Sử dụng các API như Dialogflow (Google), LUIS
(Microsoft), hoặc Wit.ai (Facebook) để tích hợp khả năng hiểu ngôn ngữ tự nhiên vào bot
của bạn.
- Sử dụng công cụ và framework mã nguồn mở
Rasa: Một framework mã nguồn mở mạnh mẽ cho chatbots, cung cấp khả năng xử lý ngôn
ngữ tự nhiên, tương tác và học máy.
Botpress: Một nền tảng chatbot mã nguồn mở với khả năng tương tác và tích hợp cao.
- Sử dụng dịch vụ trí tuệ nhân tạo
Dialogflow (by Google): Cung cấp khả năng hiểu ngôn ngữ tự nhiên và tạo hội thoại dễ
dàng.
IBM Watson Assistant: Cho phép tạo các ứng dụng hội thoại thông minh sử dụng AI, học
máy và xử lý ngôn ngữ tự nhiên.

7
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 1: Tổng quan về sử dụng chatbot trong
hỗ trợ bán hàng trực tuyến

Amazon Lex: Dịch vụ xử lý ngôn ngữ tự nhiên từ Amazon Web Services, cung cấp khả
năng xây dựng bot với việc nhận diện giọng nói và xử lý văn bản.
- Xây dựng bot trên nền tảng cụ thể (Messenger hoặc Slack, …)
Nếu bạn muốn chatbot của mình hoạt động trên một nền tảng cụ thể như Facebook
Messenger, Slack hoặc WhatsApp, bạn có thể sử dụng API và SDK mà nền tảng đó cung
cấp.
Khi xây dựng chatbot cần xác định rõ mục tiêu, chức năng của chatbot dựa vào đó
sẽ chọn công nghệ và phương pháp cho phù hợp
1.5. Chatbot trong hỗ trợ bán hàng trực tuyến

Hình 1.1 Chatbot trong Marketing và bán hàng(Nguồn tuoitre.vn)


Ngày nay, mua sắm trực tuyến đang trở thành xu hướng phổ biến với sự phát triển
nhanh chóng của thương mại điện tử. Do đó, cửa hàng trực tuyến ngày càng phải đối mặt
với môi trường cạnh tranh gay gắt hơn bao giờ hết. Trước tình hình cạnh tranh khốc liệt
này, sự tích hợp của chatbot không chỉ trở nên quan trọng mà còn mang lại nhiều lợi ích to
lớn.
Chatbot đóng vai trò quan trọng trong việc tối ưu hóa trải nghiệm mua sắm trực
tuyến. Bằng cách cung cấp thông tin sản phẩm, hỗ trợ tư vấn trực tuyến, và xử lý các yêu

8
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 1: Tổng quan về sử dụng chatbot trong
hỗ trợ bán hàng trực tuyến

cầu mua hàng, chatbot giúp cung cấp dịch vụ mua sắm thân thiện và thuận tiện hơn cho
khách hàng. Ngoài ra, chatbot cũng có khả năng tạo và duy trì một mối quan hệ tiếp cận và
tương tác lâu dài với khách hàng, từ đó tăng cường sự trung thành và nâng cao trải nghiệm
của họ.
Một ưu điểm nổi bật khác của việc tích hợp chatbot là khả năng tự động hoá một số
tác vụ như hỗ trợ sau bán hàng, theo dõi đơn hàng và xử lý tình huống phàn nàn của khách
hàng. Điều này giúp giảm tải cho đội ngũ hỗ trợ khách hàng, giúp họ tập trung vào những
vấn đề cụ thể và phức tạp hơn.
Trên tất cả, việc tích hợp chatbot vào cửa hàng trực tuyến không chỉ giúp nâng cao
năng lực cạnh tranh mà còn tạo ra một môi trường mua sắm trực tuyến thông minh, hiệu
quả, và cá nhân hóa hơn đáng kể.
1.6. Các nền tảng hỗ trợ xây dựng chatbot
Chatbot đã phát triển rầm rộ vào năm 2016, kể từ đó cũng rất nhiều nền tảng hỗ trợ
để phát triển chatbot được ra đời, đến hiện tại có một số nền tảng phổ biến như:
- Dialogflow: (trước đây gọi là Api.ai) là một nền tảng phát triển chatbot dựa trên
cloud, cho phép bạn xây dựng giao diện giọng nói và văn bản có khả năng hiểu ngữ
cảnh và xử lý ngôn ngữ tự nhiên.
- Microsoft Bot Framework: Đây là một bộ công cụ từ Microsoft để xây dựng
chatbots có thể tích hợp với nhiều dịch vụ như Skype, Teams, Slack, và hỗ trợ trí
tuệ nhân tạo qua Cognitive Services.
- IBM Watson Assistant: Watson Assistant là một công cụ từ IBM, tận dụng khả năng
của Watson AI để tạo ra các chatbot. Nó có thể được tích hợp vào nhiều nền tảng
khác nhau và là lựa chọn mạnh mẽ để xử lý ngôn ngữ tự nhiên.
- Amazon Lex: là dịch vụ của AWS cho phép bạn xây dựng các ứng dụng giao tiếp
như chatbots hoặc voicebots, sử dụng cùng công nghệ nhận dạng giọng nói và nhận
thức ngôn ngữ như là Amazon Alexa.
- ManyChat và Chatfuel: Cả hai nền tảng này đều tập trung vào việc tạo chatbot cho
Facebook Messenger. Chúng được thiết kế để người dùng không cần kỹ năng lập
trình, với giao diện kéo và thả (drag-and-drop) dành cho việc thiết lập các luồng hội
thoại.
- Rasa: là một khung công cụ mã nguồn mở mạnh mẽ cho phép bạn xây dựng chatbots
với khả năng hiểu ngôn ngữ tự nhiên, và cung cấp một cơ sở vững chắc cho các hệ
thống phức tạp.

9
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 1: Tổng quan về sử dụng chatbot trong
hỗ trợ bán hàng trực tuyến

- Botpress: là một nền tảng mã nguồn mở khác, với một giao diện người dùng trực
quan và một hệ sinh thái plugin, cho phép mở rộng tính năng và tích hợp dễ dàng.
- Botsify: là một dịch vụ chatbot dành cho website và các nền tảng như Facebook
Messenger. Nó cung cấp các template hội thoại và giao diện kéo và thả, giúp việc
tạo bot trở nên đơn giản hơn.
- Wit.ai: là một nền tảng của Facebook cho phép người dùng tạo ra các ứng dụng có
thể hiểu và xử lý ngôn ngữ tự nhiên. Nó thường được dùng để tạo ra các voice
interface.

Hình 1.2. Nền tảng hỗ trợ xây dựng chatbot


1.7. Kết luận chương

Trong chương 1 đã giới thiệu tổng quan về chatbot hỗ trợ bán hàng trực tuyến thông
qua việc trình bày về nội dung đề tài, tìm hiểu về chatbotvà lịch sử phát triển của chatbot.
Bên cạnh đó cũng tìm hiểu các phương pháp xây dựng chatbot, trình bày chatbot trong hỗ
trợ bán hàng trực tuyến và các nền tảng để xây dựng các chatbot này. Ở chương này đã làm
rõ các ưu điểm mà một chatbot mang lại đối với việc kinh doanh online và đã làm rõ tính
cấp thiết của đề tài “Thiết kế và triển khai chatbot thông minh hỗ trợ bán hàng trực tuyến”.
Ở các chương tiếp theo sẽ trình bày về việc xây dựng chatbot phù hợp với đề tài đặt ra.

10
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 1: Tổng quan về sử dụng chatbot trong
hỗ trợ bán hàng trực tuyến

Các chương tiếp theo cần ghi kết luận tương tự, trình bày toàn bộ các mục đã được
xem xét liệt kê trong chương.

11
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 2: Nền tảng phát triển chatbot bán hàng
và các thuật toán tìm kiếm sản phẩm

CHƯƠNG II. NỀN TẢNG PHÁT TRIỂN CHATBOT BÁN HÀNG VÀ CÁC
THUẬT TOÁN TÌM KIẾM SẢN PHẨM
Trong chương 2, đồ án giới thiệu nền tảng phát triển chatbot Rasa, so sánh Rasa và
một số nền tảng phát triển chatbot phổ biến ngày nay, bên cạnh đó sẽ giới thiệu them về
thuật toán để tìm kiếm sản phẩm từ cơ sở dữ liệu dựa trên văn bản người dùng.
2.1. Nền tảng Rasa
2.1.1. Giới thiệu về nền tảng Rasa
"Chatbot" là một thuật ngữ quen thuộc trong lĩnh vực trí tuệ nhân tạo, đặc biệt là
trong lĩnh vực xử lý ngôn ngữ tự nhiên. Chatbot là một công cụ được lập trình để hiểu và
trả lời những lời nói và tin nhắn của con người. Để xây dựng một con chatbot từ đầu thì
tốn rất nhiều công sức và có nhiều rủi ro về hiệu suất và khả năng mở rộng, vì thế đã có rất
nhiều framework được phát triển để hỗ trợ việc tạo chatbot dễ dàng hơn, trong đó có Rasa.
Rasa là một framework mã nguồn mở mạnh mẽ cho việc xây dựng các ứng dụng trí
tuệ nhân tạo dựa trên trò chuyện (chatbot) và xử lý ngôn ngữ tự nhiên (NLP). Nó cung cấp
các công cụ để xử lý việc hiểu ý định của người dùng và quản lý logic của các hệ thống trò
chuyện, giúp chatbot hiểu và phản hồi một cách tự nhiên dựa trên dữ liệu đầu vào từ người
dùng.
Rasa bao gồm hai thành phần chính:
• Rasa NLU (Natural Language Understanding): Module này được sử dụng để hiểu ý
định (intent) và trích xuất thông tin quan trọng từ văn bản hoặc giọng nói. Rasa NLU
giúp chatbot hiểu ý định của người dùng và trích xuất thông tin như ngày tháng, địa
điểm, số lượng, …
• Rasa Core (Rasa Open Source): Module này quản lý logic của hệ thống trò chuyện,
quyết định hành động nào nên được thực hiện dựa trên thông tin từ Rasa NLU và
lịch sử trò chuyện.
Rasa được ra mắt lần đầu vào năm 2016 dưới dạng một dự án mã nguồn mở, sau đó
Rasa nhanh chóng nhận được sự quan tâm của cộng đồng lập trình viên nhờ vào tính linh
hoạt và khả năng tùy chỉnh của nó.
2.1.2. Ưu điểm khuyết điểm của Rasa trong xây dựng chatbot
Hiện tại các nền tảng hỗ trợ phát triển chatbot đẫ rất nhiều, tùy thuộc vào mục đích,
nguồn lực và khả năng tương thích, sau đây là so sánh một số các nền tảng phổ biến hiện
nay:

12
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 2: Nền tảng phát triển chatbot bán hàng
và các thuật toán tìm kiếm sản phẩm

Bảng 1. So sánh ưu nhược điểm của Rasa và một số nền tảng khác
Tiêu chí Rasa Wit.ai Microsoft Bot Dialogflow
Framework
Tính mở rộng Cao, dựa trên Thấp đến Trung Cao, có hỗ trợ Cao, tích hợp
(Scalability) Python và có bình, dựa vào mạnh mẽ từ tốt với các dịch
thể được tùy nền tảng của Azure khi cần vụ cloud của
chỉnh sâu Facebook Google
Tính linh hoạt Rất cao, mã Cao trong việc Cao, có khả Trung bình đến
(Flexibility) nguồn mở và có xử lý ngôn ngữ năng tích hợp cao, cung cấp
thể được tùy tự nhiên nhờ với nhiều dịch khả năng tùy
chỉnh rộng rãi vào Facebook vụ và nguồn dữ chỉnh thông qua
AI liệu Dialogflow CX
cho các trường
hợp phức tạp
Ngôn ngữ lập Python Không yêu cầu, C#, JavaScript, Không yêu cầu,
trình dùng giao diện Python, và dùng giao diện
Web để thiết nhiều ngôn ngữ Web để thiết
lập khác thông qua lập
SDK
Độ phức tạp Cao, đòi hỏi kỹ Thấp, dễ dàng Trung bình đến Trung bình, có
của triển khai năng kỹ thuật để bắt đầu và cao tùy theo giao diện trực
để tùy chỉnh và triển khai nhu cầu tùy quan nhưng
mở rộng chỉnh cũng hỗ trợ
triển khai nâng
cao
Tính cộng đồng Mạnh, cộng Trung bình, có Mạnh, với hỗ Mạnh, với hỗ
và hỗ trợ đồng nguồn mở hỗ trợ từ cộng trợ rộng rãi từ trợ từ Google
lớn đồng và Microsoft và và cộng đồng
Facebook cộng đồng lớn người dùng
rộng rãi

13
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 2: Nền tảng phát triển chatbot bán hàng
và các thuật toán tìm kiếm sản phẩm

Tài liệu và tài Rất đầy đủ và Thấp đến trung Rất đầy đủ và Chi tiết và rất
nguyên học chi tiết bình, nhưng có chi tiết cho các nhiều tài liệu
hướng dẫn để mức độ kỹ năng hướng dẫn sử
bắt đầu khác nhau dụng
Khả năng tích Cao với hệ Trung bình, dễ Cao, đặc biệt Cao, đặc biệt
hợp thống có sẵn do dàng tích hợp với các sản với Google
tính mảnh mai vào ứng dụng phẩm và dịch Assistant và các
và mã nguồn Facebook vụ của dịch vụ Google
mở Microsoft khác
Giá cả Miễn phí, mã Miễn phí đến Có thể miễn phí Có phiên bản
nguồn mở (chi một ngưỡng hoặc có chi phí miễn phí với
phí phát sinh từ nhất định, sau tùy theo dịch vụ hạn chế, phiên
phát triển và đó theo chi phí Azure sử dụng bản trả phí tùy
triển khai) dựa trên sử thuộc vào sử
dụng dụng
2.1.3. Lựa chon Rasa trong xây dựng chatbot bán hàng
Hiện nay Chatbot và AI đã phát triển rất mạnh, cho nên rất nhiều framework được
ra đời để hỗ trợ việc xây dựng chatbot dễ dàng hơn ví dụ như: AgentBot, Twyla, Live
Agent, wit.ai, manyChat,… Tuy nhiên Rasa vẫn có rất nhiều lý do để là 1 lựa chọn tốt cho
việc xây dựng chatbot như:
Đầu tiên, Rasa là một framework mã nguồn mở, mang lại sự linh hoạt và kiểm soát
cao đối với dữ liệu và mô hình, ngoài ra vì là mã nguồn mở nên không yêu cầu chi phí sử
dụng ban đầu, điều này giúp giảm chi phí cho dự án phát triển.
Thứ hai, Rasa cho phép tích hợp với nhiều nền tảng, API và ngôn ngữ lập trình khác
nhau.
Thứ ba, Với Rasa người dùng hoàn toàn có thể kiểm soát dữ liệu của mình, không
cần chia sẻ với bất kỳ bên thứ ba nào, đây là điều rất quan trọng trong việc bảo vệ thông
tin người dùng.
Ngoài ra Rasa có một cộng đồng người dùng lớn và nhiều tài liệu hữu ích, cung cấp
sự hỗ trợ đáng kể khi người dùng gặp vấn đề tropng quá trình phát triển.

14
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 2: Nền tảng phát triển chatbot bán hàng
và các thuật toán tìm kiếm sản phẩm

Cuối cùng, Rasa còn có các công cụ bổ trợ như Rasa X giúp quản lý và huấn luyện
mô hình một cách trực quan, và Rasa Enterprise dành cho doanh nghiệp với các tính năng
bảo mật và quản lý mở rộng.
2.3. Các thành phần của Rasa
2.3.1. Mô hình hiểu ngôn ngữ tự nhiêu Rasa NLU

Hình 2.1. Mô tả quá trình xử lý thông tin qua Rasa NLU


Đây là module đóng vai trò xử lý đầu vào câu hội thoại người dùng (tokenize, featurize),
xác định ý định người dùng (Intent Classification) và trích chọn thực thể (Entity
Extraction). Ngoài ra, RASA NLU còn có các tính năng khác như Regular Expression,
Synonyms, Lookup Table.
- Regular Expression: Trích chọn thực thể bằng Regex
VD: ngày tháng, từ khóa cụ thể
- Synonym: Từ đồng nghĩa
VD: "ub", "ubnd" và "Ủy ban nhân dân", khi gặp các từ "ub", "ubnd", hệ thống tự chuyển
thành "Ủy ban nhân dân"
- Lookup Table: Định nghĩa một tập giá trị cho một biến (RASA gọi là slot)
VD: Slot Province, ta định nghĩa Lookup Table gồm 64 tên tỉnh thành: "Hà Nội", "Hải
Phòng", "Hà Nam",... . Khi hệ thống phát hiện từ "Hải Phòng" trong câu hội thoại người

15
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 2: Nền tảng phát triển chatbot bán hàng
và các thuật toán tìm kiếm sản phẩm

dùng, hệ thống sẽ tự gán giá trị "Hải Phòng" cho biến Province trong bộ nhớ, điều này giúp
chatbot có thể nhận ra một số giá trị bổ trợ cho ngữ cảnh.
2.3.2. Quản lý hội thoại Rasa Core
Rasa Core có vai trò kiểm soát luồng hội thoại, quyết định hành động nào được thực
hiện để đáp lại câu hội thoại người dùng. Rasa Core bao gồm các chính sách (Policy) để
xử lý luồng hội thoại, gồm:
- RulePolicy: Sử dụng các luật (Rule) để xác định hành động tiếp theo
- MemoizationPolicy: Sử dụng các Story để xác định hành động tiếp theo
- TEDPolicy: Sử dụng học sâu để xác định hành động tiếp theo
Các Policy này cùng nhau hợp lại thành Dialog Policies.
2.3.4. Các thành phần khác hệ thống Rasa
Ngoài Rasa NLU và Rasa Core, hệ thống chatbot Rasa cần thêm các thành phần để
xử lý bộ nhớ, kết nối các thành phần lại với nhau để hoạt động hiệu quả:

Hình 2.2. Các thành phần hệ thống Rasa


- NLU Pipeline: Các module Rasa NLU
- Dialog Policies: Các policy của Rasa Core
- Action Server: Các action đáp lại người dùng được viết bằng python (action mặc
định là action dạng text)

16
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 2: Nền tảng phát triển chatbot bán hàng
và các thuật toán tìm kiếm sản phẩm

- Tracker Store: Module lưu trữ các slot, entity, câu hội thoại (Đây chính là module
bộ nhớ lưu trữ của chatbot)
- Lock Store: Module đảm bảo các câu hội thoại gửi đến chatbot được xử lý tuần tự,
không bị race condition
- Filesystem: Module lưu trữ và quản lý các tệp của chatbot
- Agent: Module xử lý chung và kết nối các thành phần khác
Trong các thành phần trên, chúng ta chủ yếu làm việc với NLU Pipeline, Dialog
Policies, Action Server và sử dụng Tracker để xử lý dữ liệu trong Action Server.
2.4. Phương pháp đánh giá hiệu suất của Rasa NLU, Rasa Core
Dưới đây là một số phương pháp đánh giá các mô hình phân loại của Rasa.
• Confusion matrix:
Là một phương pháp đánh giá kết quả của những bài toán phân loại với việc xem
xét cả những chỉ số về độ chính xác và độ bao quát của các dự đoán cho từng lớp. Confusion
matrix là một ma trận tổng quát thể hiện kết quả phân loại chính xác và quả phân loại sai
được tạo ra bởi một mô hình phân loại. Đây là một ma trận vuông với kích thước các chiều
bằng số lượng lớp dữ liệu. Giá trị tại hàng thứ i, cột thứ j là số lượng điểm lẽ ra thuộc vào
class i nhưng lại được dự đoán là thuộc vào class j.
• True/False Positive/Negative:
Xét một confusion matrix gồm 4 chỉ số sau đối với mỗi lớp phân loại:
Bảng 2. Bảng phân confusion matrix

Dự đoán (predicted)
True False
Thực tế (Actual) Positive True Positive False Negative
Negative False Positive True Negative

• TP (true positive) – mẫu mang nhãn dương được phân lớp đúng vào
lớp dương.
• FN (false negative) – mẫu mang nhãn dương bị phân lớp sai vào lớp
âm.
• FP (false positive) – mẫu mang nhãn âm bị phân lớp sai vào lớp dương.
• TN (true negative) – mẫu mang nhãn âm được phân lớp đúng vào lớp
âm.

17
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 2: Nền tảng phát triển chatbot bán hàng
và các thuật toán tìm kiếm sản phẩm

• Accuracy:
Cách đánh giá này đơn giản tính tỉ lệ các lớp đã phân loại đúng / tổng số dự đoán.
• Precision / Recall:
• Precision là tỉ lệ số điểm Positive mô hình dự đoán đúng (TP) trên tổng
số điểm mô hình dự đoán là Positive (TP+FP), theo công thức:
𝑇𝑃
𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 =
𝑇𝑃 + 𝐹𝑃
0< Precision <=1, Precision càng lớn có nghĩa là độ chính xác của
các điểm tìm được càng cao.
Precision = 1, tức là tất cả số điểm mô hình dự doán là Positive đều
đúng, hay không có điểm nào có nhãn là Negative mà mô hình dự đoán
nhầm là Positive.
• Recall là tỉ lệ số điểm Positive mô hình dự đoán đúng (TP) trên tổng
số điểm thật sự là Positive (hay tổng số điểm được gán nhãn là
Positive ban đầu TP+FN), chỉ số này được tính theo công thức:
𝑇𝑃
𝑅𝑒𝑐𝑎𝑙𝑙 =
𝑇𝑃 + 𝐹𝑁
Recall càng cao, tức là số điểm là positive bị bỏ sót càng ít. Recall = 1, tức là tất cả
số điểm có nhãn là Positive đều được mô hình nhận ra.
• F1- Score:
Chỉ sử dụng Precision hay chỉ có Recall thì không đánh giá được chất lượng mô
hình.
Khi đó F1-score được sử dụng. F1-score là trung bình điều hòa của precision và recall
(giả sử hai đại lượng này khác 0). F1-score được tính theo công thức:
2 ∗ 𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 ∗ 𝑅𝑒𝑐𝑎𝑙𝑙
𝐹1 =
𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 + 𝑅𝑒𝑐𝑎𝑙𝑙
F1-Score có giá trị nằm trong khoảng (0, 1], F1-Score càng cao thì mô hình phân
loại càng tốt.
2.5. Thuật toán tìm kiếm sản phẩm từ cơ sở dữ liệu dựa trên văn bản người dùng
Trong khi người dùng sử dụng chatbot để tìm kiếm sản phẩm hoặc nhắc tới 1 sản
phẩm nào đó thông qua tên sản phẩm, rất có khả năng người dùng ghi thiếu hoặc viết sai
chính tả. Vì vậy nên cần tính toán sự tương đồng giữa chuỗi người dùng nhập vào và tên
sản phẩm có trong Database để dựa vào đó và dự đoán sản phẩm khách hàng muốn nhắc
đến.

18
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 2: Nền tảng phát triển chatbot bán hàng
và các thuật toán tìm kiếm sản phẩm

2.5.1. Các thuật toán tính sự tương đồng văn bản


a, Levenshtein Distance (Edit Distance)
Thuật toán khoảng cách Levenshtein, hay còn gọi là Edit Distance, được sử dụng
để đo lường số lần các hoạt động chỉnh sửa (insertion, deletion, substitution) cần thiết để
chuyển đổi một chuỗi thành chuỗi khác. Python có thể thực hiện thuật toán này thông qua
một cách đơn giản và hiệu quả.
Các bước cơ bản để tính toán khoảng cách Levenshtein:
- Khởi tạo ma trận với các giá trị ban đầu:
+ Ô ở góc trái trên cùng (0, 0) sẽ có giá trị là 0.
+ Các ô ở hàng và cột đầu tiên sẽ chứa các số từ 0 đến độ dài tương ứng của chuỗi.
- Lặp qua từng ô trong ma trận, tính toán số lần biến đổi cần thiết để chuyển từ một chuỗi
con của chuỗi thứ nhất thành một chuỗi con của chuỗi thứ hai. Các phép biến đổi có thể
là chèn, xóa hoặc thay thế.
- Tính toán giá trị của mỗi ô dựa trên các giá trị ở các ô xung quanh (trên, trái và đường
chéo trên bên trái). Các bước này có thể được thực hiện như sau:
+ Nếu ký tự ở vị trí i trong chuỗi thứ nhất bằng ký tự ở vị trí j trong chuỗi thứ hai, ô
tại vị trí (i, j) sẽ có giá trị bằng giá trị của ô (i-1, j-1).
+ Ngược lại, ô tại vị trí (i, j) sẽ có giá trị bằng giá trị của ô (i-1, j-1) + 1 (để thực hiện
thay thế), hoặc ô (i, j-1) + 1 (để thực hiện chèn), hoặc ô (i-1, j) + 1 (để thực hiện
xóa).
- Giá trị cuối cùng ở ô góc dưới cùng (m, n) sẽ là khoảng cách Levenshtein giữa hai chuỗi
ban đầu.
b, Jaccard Similarity
Thuật toán Jaccard Similarity được sử dụng để đo đạc sự tương đồng giữa hai tập
hợp dựa trên số lượng phần tử chung và tỷ lệ giữa số lượng phần tử chung và tổng số phần
tử.
Công thức tính Jaccard Similarity giữa hai tập hợp A và B được biểu diễn như sau:
J(A, B) = |A ∩ B| / |A ∪ B|
Trong đó:
• |A ∩ B| là số lượng phần tử chung giữa tập hợp A và B.
• |A ∪ B| là số lượng phần tử trong tập hợp A hoặc B hoặc cả hai.
Các bước cơ bản để tính Jaccard Similarity:
• Xác định các phần tử trong hai tập hợp A và B.
• Tính số lượng phần tử chung giữa A và B.
• Tính tổng số phần tử trong A và B (bao gồm cả các phần tử không trùng nhau).

19
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 2: Nền tảng phát triển chatbot bán hàng
và các thuật toán tìm kiếm sản phẩm

• Sử dụng công thức Jaccard Similarity để tính toán giá trị tương đồng giữa hai tập
hợp.
Ví dụ:
Cho hai tập hợp A = {1, 2, 3, 4} và B = {3, 4, 5, 6}, ta có:
|A ∩ B| = {3, 4} (2 phần tử chung)
|A ∪ B| = {1, 2, 3, 4, 5, 6} (tổng cộng 6 phần tử)
J(A, B) = 2 / 6 = 0.3333 (khoảng 0 đến 1)
Điều này chỉ ra rằng tập hợp A và B có một độ tương đồng Jaccard khoảng 0.3333,
tức là khoảng 33.33%.
c, Cosine Similarity
Thuật toán Cosine Similarity được sử dụng để đo đạc sự tương đồng giữa hai vector
trong không gian nhiều chiều (đa chiều). Trong ngữ cảnh xử lý ngôn ngữ tự nhiên, các từ
thường được biểu diễn bằng các vector trong không gian vector hóa từ (word embeddings).
Tuy nhiên, thuật toán cũng có thể được áp dụng cho các vector biểu diễn cho chuỗi văn
bản khác nhau.
Công thức tính Cosine Similarity giữa hai vector A và B được biểu diễn như sau:

Trong đó:
• A⋅B là tích vô hướng (dot product) giữa hai vector A và B.
• ∥A∥ và ∥B∥ lần lượt là độ dài (norm) của các vector A và B.
Các bước cơ bản để tính toán Cosine Similarity giữa hai chuỗi văn bản:
• Biểu diễn hai chuỗi văn bản dưới dạng các vector trong không gian vector hóa từ,
chẳng hạn như sử dụng word embeddings.
• Tính toán tích vô hướng (dot product) giữa hai vector biểu diễn cho hai chuỗi văn
bản.
• Tính toán độ dài (norm) của mỗi vector.
• Sử dụng công thức Cosine Similarity để tính toán giá trị tương đồng giữa hai chuỗi
văn bản.
d, N-gram Similarity
Thuật toán N-gram Similarity được sử dụng để đo đạc sự tương đồng giữa hai chuỗi
văn bản bằng cách xem xét các phân đoạn gồm n phần tử liên tiếp (gọi là n-gram) trong
mỗi chuỗi và đếm số lượng các n-gram chung giữa chúng.

20
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 2: Nền tảng phát triển chatbot bán hàng
và các thuật toán tìm kiếm sản phẩm

Công thức tính toán N-gram Similarity không khó, nhưng cần thực hiện một số bước cơ
bản:
• Chia các chuỗi thành các n-gram: Đầu tiên, bạn cần chia các chuỗi văn bản thành
các phân đoạn có kích thước n phần tử liên tiếp (n-gram).
• Đếm số lượng n-gram chung: Tiếp theo, bạn đếm số lượng các n-gram chung giữa
hai chuỗi văn bản.
• Tính toán N-gram Similarity: Sử dụng số lượng n-gram chung để tính toán giá trị
tương đồng giữa hai chuỗi.
e, Ratcliff/Obershelp Similarity
Thuật toán Ratcliff/Obershelp Similarity (RO) được sử dụng để tính toán độ tương
đồng giữa hai chuỗi bằng cách tìm chuỗi con chung dài nhất (longest common subsequence
- LCS) và tính tỷ lệ giữa độ dài của chuỗi con chung và tổng độ dài của hai chuỗi.
Công thức tính toán Ratcliff/Obershelp Similarity:
• Tìm chuỗi con chung dài nhất (LCS) giữa hai chuỗi văn bản.
• Tính tỷ lệ giữa độ dài của chuỗi con chung và tổng độ dài của hai chuỗi.
Ví dụ:
Cho hai chuỗi văn bản: "kitten" và "sitting"
• Chuỗi con chung dài nhất (LCS) là "ittn" (độ dài là 4).
• Tổng độ dài của hai chuỗi là 7 ("kitten" có độ dài là 6 và "sitting" có độ dài là 7).
Ratcliff/Obershelp Similarity giữa "kitten" và "sitting" là 4/7 = 0.5714.
Đây chỉ là một ví dụ đơn giản để minh họa cách tính toán RO Similarity. Trong thực tế, có
thể cần sử dụng các thuật toán tìm chuỗi con chung hiệu quả như thuật toán tìm kiếm LCS
thông qua lập bảng quy hoạch động để giải quyết vấn đề này.
2.5.2. Lựa chọn thuật toán
Bài toán ta cần sử dụng là tính sự tương đồng của tên sản phẩm và sản phẩm khách
nhập vào( có thể là khách ghi nhiếu, sai sót hoặc gõ sai chính tả) nên tôi quyết định chọn
thuật toán khoảng cách Levenshtein. Khi khách hàng nhập tên không chính xác thì ta sẽ
tính khoảng giữa tên sản phẩm và tên do khách hàng nhập, nếu sản phẩm nào có khoảng
cách ngắn nhất thì đó là sản phẩm khách hàng muốn nói đến.
Đến đây đã xảy ra vấn đề do độ dài tên sản phẩm khác nhau
Ví dụ:
Tên sản phẩm 1: “váy công sở dự tiệc sang trọng bigsize amyra”
Tên sản phẩm 2: “váy ren tiểu thư”
Tên khách hàng nhập: “váy công sở dự”

21
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 2: Nền tảng phát triển chatbot bán hàng
và các thuật toán tìm kiếm sản phẩm

ð Khoảng cách với sản phẩm 1: 29


ð Khoảng cách với sản phẩm 2: 12
Rõ ràng là sản phẩm 2 có khoảng cách gần hơn nhưng chúng ta có thể thấy rõ khách hàng
muốn nhắc đến sản phẩm 1
ð Để giải quyết vấn đề ta sẽ tính khoảng cách dựa trên độ dài của tên sản phẩm(
khoảng cách/ độ dài)
Với ví dụ trên:
ð Khoảng cách dựa trên độ dài sp1: 29/44 = 0.65
ð Khoảng cách dựa trên độ dài sp2: 12/16 = 0.75
è Chọn sản phẩm 1
2.6. Kết luận chương

Trong chương này, đồ án đã trình bày về nền tảng phát triển chatbot Rasa, được
chọn lựa bởi khả năng tùy biến cao và khả năng xử lý ngôn ngữ mạnh mẽ, phù hợp cho
việc triển khai các giải pháp chatbot thông minh và an toàn. Bên cạnh đó cũng giới thiệu
các thuật toán hiện đại để tính toán sự tương đồng của hai chuỗi ký tự, như Levenshtein
Distance, Jaccard Similarity, và Cosine Similarity, giúp chatbot hiểu rõ hơn ý định của
người dùng

22
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 3: Xây dựng chatbot hỗ trợ bán quần áo sử
dụng nền tảng Rasa

CHƯƠNG III: XÂY DỰNG CHATBOT HỖ TRỢ BÁN QUẦN ÁO SỬ DỤNG NỀN
TẢNG RASA
Trong chương 3, đồ án sẽ phân tích và thiết kế hệ thống, phân tích các chức năng
của chatbot, ngoài ra sẽ giới thiệu các bước để xây dựng chatbot dựa trên nền tảng Rasa
framework.
3.1. Mô tả hệ thống
Trên hình 2 trình bày tổng quan về kiến trúc hệ thống của chatbot bán hàng bao
gồm: SQLite DB, Tracker Store, Lock Store, Filesystem, Action Server, Dialoge Policies
và NLU Pipeline

Hình 3.1. Kiến trúc chatbot

23
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 3: Xây dựng chatbot hỗ trợ bán quần áo sử
dụng nền tảng Rasa

Hệ thống bao gồm các thành phần:


• SQLite DB: là database dùng để lưu thông tin người dùng, thông tin các sản phẩm
của shop
• Tracker Store: Tracker Store là nơi lưu trữ cuộc hội thoại giữa người dùng và
chatbot, Rasa cung cấp nhiều kiểu lưu trữ khác nhau hoặc nhà phát triển có thể tự
tùy chỉnh lại theo ý.
• Lock Store: Rasa sử dụng cơ chế khóa vé(Ticket Lock Mechanism) để đảm bảo
rằng các tin nhắn đến cho một ID của cuộc trò chuyện nhất định sẽ được xử lý theo
đúng thứ tự.
• Filesystem: Bao gồm các file NLU, stories, rules và domain. Các file này là dữ liệu
đưa vào, các cách trả lời và các đoạn hội thoại để huấn luyện mô hình.
• Action Server: Đây là một server để xử lý các hành động, sự kiện bên ngoài mà dữ
liệu huấn luyện không thể thực hiện được, các hành động ở đây thường sẽ giao tiếp
với database hoặc một bên thứ 3 nào đó, server này chạy riêng(mặc định của rasa là
chạy trên port 5055).
• Dialogue Policies: Dialogue Policies (hay Chính sách trò chuyện) quyết định cách
mà hệ thống trò chuyện (chatbot) sẽ phản hồi với người dùng dựa trên ngữ cảnh
hiện tại. Chính sách trò chuyện quyết định hành động cụ thể nên được thực hiện khi
nhận được thông điệp từ người dùng. Các policies này có thể được cấu hình, kết hợp
hoặc thay thế nhau để tạo ra một chiến lược tối ưu cho việc quyết định hành động
trong mỗi tình huống trò chuyện. Điều này giúp cải thiện khả năng phản hồi tự nhiên
và chính xác của chatbot.
• NLU Pipeline: NLU Pipeline là viết tắt của Natural Language Understanding
Pipeline định nghĩa các bước xử lý dữ liệu văn bản đầu vào từ người dùng để hiểu
ý định (intent) và trích xuất thông tin (entity). Nó là một chuỗi các thành phần hoặc
bước xử lý dữ liệu để chuyển đổi văn bản đầu vào thành thông tin có ý nghĩa.
3.2. Phân tích và xây dựng các chức năng
Trong hình bên dưới trình bày về các chức năng chính của chatbot bao gồm: chào
hỏi cơ bản, hỏi thông tin shop, sản phẩm, gợi ý mua hàng, hỗ trợ đặt hàng, hỗ trợ hủy đơn
hàng, ngoài ra còn một số chức năng con trong các chức năng chính đó.

24
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 3: Xây dựng chatbot hỗ trợ bán quần áo sử
dụng nền tảng Rasa

Hình 3.2. Các chức năng của chatbot


3.2.1. Chào hỏi cơ bản
a, Chức năng giới thiệu chức năng
Khách hàng hỏi về các chức năng của chatbot :
- Trả lời bằng dữ liệu có sẵn khi huấn luyện chatbot
b, Chức năng chào hỏi
Khi khách hàng chào chatbot, gọi chatbot :
- Chatbot sẽ chào lại người dùng
- Có thể đưa tên người dùng vào câu chào để tăng mức độ thân thiết(đối với khách
hàng cũ đã lưu tên trong database)\
c, Chức năng trả lời một số câu hỏi khác
Khi khách hàng hỏi về tên, tuổi, giới tính cảu chatbot, đưa ra lời cảm ơn hoặc tạm biệt…:
- chatbot đưa ra câu trả lời theo data sẵn được huấn luyện
Khi khách hàng hỏi mọt số câu hỏi ngoài phạm vi hoặc không hiểu:

25
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 3: Xây dựng chatbot hỗ trợ bán quần áo sử
dụng nền tảng Rasa

- chatbot cần hỏi lại người dùng hoặc yêu cầu người dùng hỏi trong phạm vi của
chatbot.
3.2.2. Hỏi thông tin shop, sản phẩm
a, Chức năng hỏi thông tin shop
Khi khách hàng hỏi về thông tin shop như địa chỉ, hotline,…:
- Chatbot đưa ra câu trả lời theo những dữ liệu của shop đã có sẵn
b, Chức năng hỏi về loại sản phẩm
Khi khách hàng hỏi xem sản phẩm:
- Cần đưa ra các loại sản phẩm của cửa hàng
- Cần đưa ra đúng loại sản phẩm(Váy, Quần, Áo)
c, Chức năng hỏi theo giá cả
Khách hàng hỏi theo giá cả:
• Cần trích xuất được giá bắt đầu và giá kết thúc muốn tìm kiếm
• Hoặc nếu không có giá bắt đầu thì cần cho bằng 0
• Hoặc nếu không có giá kết thúc thì cần cho giá kết thúc lớn hơn giá cao nhất (để
đảm bảo tìm đúng theo yêu cầu)
• Cần tìm kiến theo giá trong DB và lấy list sản phẩm hiển thị cho khách
d, Chức năng hỏi chi tiết sản phẩm theo tên
Khách hàng yêu cầu xem chi tiết 1 sản phẩm theo tên:
• Cần trích xuất được tên khách hàng muốn xem
• Trong trường hợp khách hàng viết thiếu tên hoặc gõ sai ký tự phải tìm kiếm sản
phẩm có tên giống nhất
• Truy cập DB lấy sản phẩm theo tên và hiển thị cho khách
e, Chức năng hỏi chi tiết sản phẩm đã liệt kê trước đó
Khách hàng yêu cầu xem chi tiết 1 sản phẩm vừa liệt kê trước đó:
• Cần xác định xem là sản phẩm nào
• Xác định xong cần truy cập DB và lấy sản phẩm và hiển thị cho khách hàng
3.2.3. Gợi ý mua hàng
Khách hàng có 1 sự kiện nào đó cần gợi ý trang phục:
• Cần xác định được sự kiện khách hàng thăm gia(đi tiệc, đi chơi, đi đám cưới…)
• Cần lấy data cho trang phục phù hợp tùy theo sự kiện để huấn luyện
3.2.4. Hỗ trợ đặt hàng
Khi khách hàng muốn đặt hàng:

26
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 3: Xây dựng chatbot hỗ trợ bán quần áo sử
dụng nền tảng Rasa

• Cần lấy được tên sản phẩm


• Cần lấy được số lượng sản phẩm
• Cần lấy được tên khách hàng
• Cần lấy được đại chỉ khách hàng
• Cần lấy được phương thức liên lạc(số điện thoại)
• Tiến hành đặt hàng và thông báo thành công với khách hàng
3.2.5. Hỗ trợ hủy đơn hàng
Khách hàng muốn hủy đơn hàng đã đặt:
• Cần xác định được đơn hàng của khách
• Cần xác minh xem có hủy được hay không
• Tiến hành hủy và thông báo
3.3. Biểu đồ tuần tự
3.3.1. Chào hỏi cơ bản

a, Chức năng Giới thiệu chức năng của chatbot

Hình 3.3. Sơ đồ tuần tự của Giới thiệu chức năng

27
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 3: Xây dựng chatbot hỗ trợ bán quần áo sử
dụng nền tảng Rasa

b, Chức năng chào hỏi

Hình 3.4. Sơ đồ tuần tự của Chào hỏi

c, Chức năng trả lời một số câu hỏi khác

Hình 3.5. Sơ đồ tuần tự Trả lời một số câu hỏi khác

28
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 3: Xây dựng chatbot hỗ trợ bán quần áo sử
dụng nền tảng Rasa

3.3.2. Hỏi thông tin shop, sản phẩm

a, Hỏi thông tin shop

Hình 3.6. Sơ đồ tuần tự Hỏi thông tin shop


b, Hỏi về các loại sản phẩm

Hình 3.7. Sơ đồ tuần tự Hỏi về các loại sản phẩm

29
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 3: Xây dựng chatbot hỗ trợ bán quần áo sử
dụng nền tảng Rasa

c, Hỏi theo giá cả

Hình 3.8. Sơ đồ tuần tự Hỏi theo giá cả


d, Hỏi chi tiết sản phẩm theo tên

Hình 3.9. Sơ đồ tuần tự Hỏi chi tiết sản phẩm theo tên

30
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 3: Xây dựng chatbot hỗ trợ bán quần áo sử
dụng nền tảng Rasa

e, Hỏi chi tiết sản phẩm đã liệt kê trước đó

Hình 3.10. Sơ đồ tuần tự Hỏi chi tiết sản phẩm đã liệt kê trước đó
3.3.3. Gợi ý mua hàng

Hình 3.11. Sơ đồ tuần tự Gợi ý mua hàng

31
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 3: Xây dựng chatbot hỗ trợ bán quần áo sử
dụng nền tảng Rasa

3.3.4. Hỗ trợ đặt hàng

Hình 3.12. Sơ đồ tuần tự Hỗ trợ đặt hàng


3.3.5. Hỗ trợ hủy đơn hàng

Hình 3.13. Sơ đồ tuần tự Hủy đơn hàng

32
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 3: Xây dựng chatbot hỗ trợ bán quần áo sử
dụng nền tảng Rasa

3.4. Xây dựng Chương trình


3.4.1. Nguồn dữ liệu
Nguồn dữ liệu thực nghiệm, tác giả đã thu thập dữ liệu từ những cuộc hội thoại
thường gặp khi mua hàng
Để làm giàu cho tập dữ liệu huấn luyện, tác giả bổ sung thêm các câu hỏi mới trong
mỗi Intent, đảm bảo các Intent quan trọng mang tính hỏi đáp nhiều có ít nhất 10 câu hỏi,
các intent khác cũng có tối thiểu 5 câu hỏi, mỗi câu hỏi là một các cách diễn đạt khác nhau
với cùng mục đích với câu hỏi (ban đầu). Các câu hỏi này đã được gán nhãn cùng với Intent
của câu hỏi ban đầu.
3.4.2. Xây dựng ý định

Xây dựng các tập ý định theo nguyên tắc là sử dụng các câu hỏi, câu nói mà người
dùng có khả năng sử dụng nhất có thể. Cần định nghĩa các ý định khớp với ngôn ngữ tự
nhiên nhất, trong hệ thống này tác giả định nghĩa như sau với nguồn dữ liệu thực nghiệm.
Bảng 3. Xây dựng ý định

Tên ý định Mô tả Số lượng câu Số lượng câu


hỏi trả lời

greet Chào hỏi 18 3

goodbye Tặm biệt 12 7

introduce Hỏi chức năng của 10 3


chatbot

thanks Cảm ơn 11 5

ask_about_shop_location Hỏi địa chỉ shop 8 4

ask_shop_product Hỏi các sản phẩm shop 7 5


bán

33
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 3: Xây dựng chatbot hỗ trợ bán quần áo sử
dụng nền tảng Rasa

ask_products_price Hỏi các sản phẩm giá 23 7


trong một khoảng nhất
định

ask_dress_price Hỏi những chiếc váy với 37 7


giá trong một khoảng
nhất định

ask_shirts_price Hỏi những chiếc áo với 50 7


giá trong một khoảng
nhất định

ask_trousers_price Hỏi những chiếc quần 17 4


với giá trong một khoảng
nhất định

ask_dress_type Hỏi về các kiểu, loại váy 30 4


đang có

ask_shirt_type Hỏi về các kiểu, loại áo 21 4


đang có

ask_trousers_type Hỏi về các kiểu, loại 12 4


quần đang có

ask_price Hỏi giá chung chung 5 3

ask_previous_product Hỏi chi tiết sản phẩm đã 91 2


liệt kê trước đó

give_name Đưa tên người dùng 5 1

give_phone Đưa số điện thoại người 5 1


dùng

34
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 3: Xây dựng chatbot hỗ trợ bán quần áo sử
dụng nền tảng Rasa

give_address Đưa địa chỉ người dùng 7 1

buy_product_intent Mua sản phẩm 8 3

cancle_buy_product Hủy mua sản phẩm 6 2

ask_product_detail Hỏi chi tiết sản phẩm 20 2


theo tên

ask_size Hỏi kích thước sản phẩm 22 3

sing_poem Hỏi chatbot có biết hát, 6 3


làm thơ

non_vietnammese Hỏi bằng tiếng nước 51 3


ngoài

out_scope_other Hỏi các câu hỏi ngoài 115 4


phạm vi của chatbot

Ví dụ về muốn hỏi các loại váy đang bán ở shop như sau:

- intent: ask_dress_type
examples: |
- Có những kiểu váy nào
- Có những kiểu đầm nào
- có nhưng loại váy gì
- có những loại đầm gì
- váy có những loại nào
- đầm có những loại nào
- váy có những mẫu nào
- có những mẫu váy nào
- vay co nhung kieu nao
- vay co nhung loai nao

35
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 3: Xây dựng chatbot hỗ trợ bán quần áo sử
dụng nền tảng Rasa

- co nhung kieu vay nao


- cửa hàng có những kiểu váy nào
3.4.3. Xây dựng thực thể
Entities là các thực thể thông tin đặc trưng quan trọng được trích xuất theo các ý
định người dùng. Slots là các thông tin được trích chọn trong câu nói của người dùng được
hệ thống lưu lại trong bộ nhớ hệ thông để dùng trong các hành động hoặc để đưa ra các câu
trở lời phù hợp theo ngữ cảnh, tránh việc phải hỏi lại những thông tin mà người dùng đã
cung cấp từ trước. Các Entities sẽ được định nghĩa trong dấu ngoặc tròn “()” phía trước nó
là 1 cặp ngoặc vuông “[]” để chỉ giá trị của entities.
- intent: ask_shirts_price
examples: |
- Áo loại [200k](start_price) đến [500k](end_price) có những mẫu nào
- Áo từ [200k](start_price) đến [500k](end_price) có những mẫu nào
- Áo từ [200k](start_price)-[500k](end_price) có loại nào
- Áo [200k](start_price) - [500k](end_price) có những loại nào
- Áo [200k](start_price) đến [500k](end_price) có những mẫu nào
- Giá từ [200k](start_price) đến [500k](end_price) có những mẫu Áo nào
- Áo loại [200](start_price) đến [500](end_price) có những mẫu nào
- Áo từ [200](start_price) đến [500](end_price) có những mẫu nào
- Áo từ [200](start_price)-[500](end_price) có loại nào
- Áo [200](start_price) - [500](end_price) có những loại nào
- Áo [200](start_price) đến [500](end_price) có những mẫu nào

entities:
- first_name
- start_price
- end_price
- buy_product
- product_detail
- cancle_product

36
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 3: Xây dựng chatbot hỗ trợ bán quần áo sử
dụng nền tảng Rasa

- date
- product_order
- phone
- address
- weight
slots:
first_name:
type: text
mappings:
- type: from_entity
entity: first_name
start_price:
type: text
mappings:
- type: from_entity
entity: start_price
3.4.4. Xây dựng câu trả lời
Khi người dùng đưa ra các câu hỏi, yêu cầu thì Chatbot phải có nhiệm vụ đưa ra
được câu trả lời đáp ứng được các câu hỏi và yêu cầu đó.
Để tạo tính tự nhiên và phù hợp với độ tuổi trong cuộc hội thoại thì ta có thể xây
dựng nhiều tập mẫu câu trả lời để Chatbot lựa phù hợp với lứa tuổi, giới tính khi có được
thông tin về khách hàng hoặc nếu không thì sẽ chọn ngẫu nhiên các mẫu câu trả lời để tạo
cảm giác không bị nhàm chán.
Có thể xây dựng các phản hồi cho Chatbot thông qua action. Khi có yêu cầu đầu
vào của người dùng thì Chatbot có thể lựa chọn các hành động phù hợp để đáp ứng nhu
cầu đó. Hành động 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ừ hệ thống cơ sở dữ liệu thông qua các API kết nối. Bên cạnh
đó action của rasa còn hỗ trợ tùy biến qua ngôn ngữ python nên ta có thể điều hướng các
action tiếp theo dựa vào dialog state tracker, policy và dispatcher của rasa. Có các loại hành
động trong Rasa Core:
Utterance Actions:

37
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 3: Xây dựng chatbot hỗ trợ bán quần áo sử
dụng nền tảng Rasa

Để xác định một hành động phát biểu (ActionUtterTemplate), ta thêm một phản hồi
của chatbot vào domain.yml bắt đầu bằng utter_:
utter_ask_sale_product:
- text: Bên mình bán áo phông, áo sơ mi, quần váy và các loại đầm của chị em nhé
- text: Cửa hàng mình có áo phông, cáo sơ mi, váy, đầm và các loại chân váy nhé
- text: Bên mình chuyên các loại váy và chân váy ngoài ra thì còn có áo sơ mi và áo
phông để phối cùng ạ
- text: Bên mình có bán áo, bán quần và các loại váy của chị em phụ nữ nhé
utter_ask_products_price:
- text: "Với tầm giá này bên mình có một số sản phẩm như:"
- text: Tầm giá này hiện tại bên mình đang có
- text: Bạn xem một số sản phẩm sau sau nhé
- text: Với mức giá này bên mình có một số sản phẩm tiêu biểu như
Thông thường, bắt đầu tên của một hành động phát biểu bằng utter_. Nếu tiền tố
này bị thiếu, ta vẫn có thể sử dụng phản hồi (response) trong các hành động tùy chỉnh của
mình (custom actions), nhưng phản hồi không thể dự đoán trực tiếp như hành động của
chính nó.
Default Actions:
Các hành động default như lắng nghe người dùng, restart lại hội thoại hoặc trả lời
mặc định khi không phân loại được ý định người dùng.
utter_default:
- text: Bạn nói cái gì tui hỏng có hỉu
- text: Tôi không hiểu bạn nói gì, bạn có thể hỏi câu khác được không
- text: Alio là bot hỗ trợ khách hàng của shop
- text: Xin lỗi tôi chưa hiểu bạn nói gì
- text: Xin lỗi tôi không hiểu bạn nói gì, tôi sẽ cố gắng học giỏi hơn để có thể trả lời
bạn trong tương lai
• Custom actions:
Khi các tập câu trả lời mẫu không áp dụng được với các câu trả lời cần có kết quả
lấy từ một nguồn dữ liệu khác thì action tùy biến được sử dụng, nó sẽ trỏ đến một hàm

38
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 3: Xây dựng chatbot hỗ trợ bán quần áo sử
dụng nền tảng Rasa

trong lớp action (python). Trong đây sẽ tùy biến câu trả lời như lấy dữ liệu qua API rồi điền
vào tham số trong câu trả lời. Ở đây thực hiện việc tương tác đặt phòng với chatbot qua
API bằng cách xây dựng custom actions trong actions.py
Bảng 4. Các Action của chatbot

Action Chức năng

ActionProductPrice Liệt kê các sản phẩm theo giá

ActionDressPrice Liệt kê các mẫu váy theo giá

ActionShirtsPrice Liệt kê các mẫu áo theo giá

ActionTrousersPrice Liệt kê các mẫu quần theo giá

ActionDressType Liệt kê các kiểu váy

ActionShirtType Liệt kê các kiểu áo

ActionTrousersType Liệt kê các kiểu quần

ActionAskProductOrder Xem chi tiết sản phẩm đã liệt kê trước đó

ActionBuyProduct Mua sản phẩm

ActionProductDetail Xem chi tiết sản phẩm theo tên

ActionCancleBuyProduct Hủy mua sản phẩm

ActionAskSize Hỏi kích cỡ chi tiết sản phẩm

ActionAskOtherProduct Hỏi các sản phẩm khác chưa liệt kê nếu có

ActionSaveUserName Lưu tên người dùng

ActionSavePhone Lưu số điện thoại người dùng

ActionSaveAddress Lưu địa chỉ người dùng

39
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 3: Xây dựng chatbot hỗ trợ bán quần áo sử
dụng nền tảng Rasa

3.4.5. Xây dựng kịch bản


Với mỗi một ý định của người dùng thì tương ứng với một tập các mẫu câu trả lời
đã được xây dựng sẵn, ta xây dựng các khung kịch bản cho Chatbot dựa trên việc sắp xếp
thành đoạn đối thoại.
- story: what_name path
steps:
- intent: what_name
- action: utter_what_name
- story: ask about location path
steps:
- intent: ask_about_shop_location
- action: utter_ask_shop_location
- story: ask about product path
steps:
- intent: ask_shop_product
- action: utter_ask_shop_product
- story: ask sale product
steps:
- intent: ask_sale_product
- action: utter_ask_sale_product
- story: ask product price
steps:
- intent: ask_products_price
- action: action_product_price
- intent: ask_previous_product
- action: action_ask_product_order
- story: ask dress price
steps:
- intent: ask_dress_price

40
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 3: Xây dựng chatbot hỗ trợ bán quần áo sử
dụng nền tảng Rasa

- action: action_dress_price
- intent: ask_previous_product
- action: action_ask_product_order
- story: ask shirt price
steps:
- intent: ask_shirts_price
- action: action_shirts_price
- intent: ask_previous_product
- action: action_ask_product_order
3.4.6. Đào tạo chatbot
Tiến hành train cho một model sử dụng NLU data và các kịch bản (stories), mô hình
được đào tạo sẽ được lưu dưới dạng thư mục /models.
$ rasa train

Hình 3.14. Đào tạo một model


Việc xây dựng đoạn hội thoại này có thể viết bằng tay. Thông qua cửa sổ dòng lệnh
người dùng có thể sử dụng để đào tạo cho chatbot.

41
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 3: Xây dựng chatbot hỗ trợ bán quần áo sử
dụng nền tảng Rasa

Hình 3.15. Đào tạo cho chatbot dạng shell


Việc xây dựng đoạn hội thoại này có thể viết bằng tay hoặc thông qua việc học tương
tác (Interactive Learning) với Chatbot: Đây là một cách khác để xây dựng khung câu truyện
là việc học tương tác với bot. Chế độ này cho phép người dùng tự động tạo ra các hội thoại
sau khi chat trực tiếp với bot. Nếu bot nhận định các intent hay slot sai thì người dùng có
huấn luyện lại cho bot đúng.

Hình 3.16. Chế độ đào tạo cho chatbot bằng Interactive Learning
Trong ví dụ trên đây, khi người dùng gõ vào từ “xin chào”, NLU sẽ phân loại ý định
đây là dạng “greet” (chào hỏi), và hỏi xem có đúng không (Yes/No). Xác định ý định hợp
lý thì chúng ta xác nhận đúng (Yes) để tiếp tục giúp đào tạo cho chatbot đưa ra câu phản
hồi cho người dùng tương ứng (utter_greet).
Trong quá trình học tập tương tác, Rasa sẽ vẽ sơ đồ cuộc hội thoại hiện tại và một
vài cuộc hội thoại tương tự từ dữ liệu đào tạo. Ta có thể xem trực quan hóa cuộc hội thoai
ngay sau khi bắt đầu học tương tác.

42
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 3: Xây dựng chatbot hỗ trợ bán quần áo sử
dụng nền tảng Rasa

Hình 3.17. Ví dụ về trực quan hoá cuộc hội thoại


3.4.7. Kiểm tra chatbot

Rasa Open Source cho phép ta kiểm tra các cuộc hội thoại từ đầu đến cuối bằng
cách chạy các cuộc hội thoại kiểm tra để đảm bảo rằng cả NLU và Core đều đưa ra dự đoán
chính xác.
Để làm điều này, ta cần một số stories ở định dạng end-to-end, bao gồm cả đầu ra
của NLU và văn bản gốc. Theo mặc định, Rasa lưu các bài hội thoại kiểm tra vào
tests/test_stories.yml. Ta có thể kiểm tra chatbot của mình bằng cách chạy lệnh:
$ rasa test

43
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 3: Xây dựng chatbot hỗ trợ bán quần áo sử
dụng nền tảng Rasa

Hình 3.18. End-to-end testing với Rasa


3.4.8. Kết nối chatbot với telegram

Rasa không cung cấp trực tiếp các tính năng kết nối với các nền tảng như
Telegram, nhưng có thể sử dụng các tích hợp của Rasa với các nền tảng khác nhau để tạo
ra ứng dụng chatbot có khả năng làm việc trên Telegram.
Để kết nối một ứng dụng chatbot Rasa với Telegram, cần thực hiện các bước:
• Tạo một bot trên Telegram: Đầu tiên, cần tạo một bot trên Telegram và lấy mã
token của bot đó từ BotFather (công cụ của Telegram cho phép tạo và quản lý
bot).
• Cấu hình ứng dụng Rasa để kết nối với Telegram: Cấu hình ứng dụng Rasa của
mình để sử dụng token của bot Telegram đã tạo. Điều này có thể được thực hiện
thông qua việc cấu hình kênh trò chuyện trong Rasa, hoặc thông qua việc sử dụng
một adapter hoặc webhook để kết nối với Telegram API.
• Triển khai ứng dụng Rasa: Sau khi cấu hình xong, triển khai ứng dụng Rasa. Điều
này có thể là trên máy chủ riêng hoặc trên các dịch vụ đám mây như Heroku,
AWS, hoặc các nền tảng triển khai khác.
• Kết nối bot với Telegram API: Cung cấp thông tin cần thiết cho Telegram API để
kết nối bot của mình với Telegram. Điều này bao gồm việc thiết lập webhook hoặc
gửi các yêu cầu API đến Telegram API từ ứng dụng Rasa.

44
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 3: Xây dựng chatbot hỗ trợ bán quần áo sử
dụng nền tảng Rasa

Cấu hình chatbot kết nối với telegram


3.5. Kết luận chương

Chương này đã cung cấp một cái nhìn tổng quan về hệ thống chatbot, phân tích các
chức năng chính của chatbot. Ngoài ra đồ án đã trình bày từng giai đoạn quan trọng trong
quá trình xây dựng một chatbot, từ sự thiết kế ban đầu đến phát triển và cuối cùng là triển
khai, mọi bước đều được thực hiện thông qua nền tảng Rasa.

45
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 4: Kết quả thực nghiệm, đánh giá chatbot

CHƯƠNG IV. KẾT QUẢ THỰC NGHIỆM, ĐÁNH GIÁ CHATBOT


Trong chương 5 này, đồ án sẽ tập trung trình bày kết quả thực nghiệm của chatbot,
đánh giá về mô hình Rasa NLU và Rasa Core,bên cạnh đó cũng trình bày kết quả thực tế
sau khi triển khai chatbot lên nền tảng Telegram.
4.1. Môi trường thực nghiệm

Chương trình thử nghiệm được thiết kế, xây dựng và thực hiện trên môi trường hệ
điều hành Windows với nền tảng framework Rasa 3.6.12, dựa trên ngôn ngữ lập trình
python 3.9.6. Giao điện người dùng sử dụng nền tảng web/ứng dụng chat Telegram.
4.2. Kết quả thực nghiệm
4.2.1. Đánh giá mô hình Rasa NLU và Rasa Core

Kết quả đánh giá NLU model và Rasa Core sau khi thực hiện đào tạo chatbot và
kiểm tra trên dữ liệu test có 86 câu dữ liệu người dùng nhập vào:

46
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 4: Kết quả thực nghiệm, đánh giá chatbot

Hình 4.1. Intent Confusion matrix

47
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 4: Kết quả thực nghiệm, đánh giá chatbot

Bảng 5: Đánh giá trích chọn thông tin thực thể (entity)

precision recall f1-score Support


product_detail 1.00 0.94 0.97 2267
cancle_product 1.00 0.95 0.97 678
buy_product 1.00 1.00 1.00 904
end_price 0.99 1.00 0.99 91
start_price 1.0 0.85 0.92 105
address 1.0 1.0 1.0 16
product_order 1.0 1.0 1.0 92
first_name 1.0 1.0 1.0 177
phone 0.83 1.0 0.91 59

Bảng 6: Đánh giá mô hình Rasa Core

precision recall f1-score support


utter_ask_shop_location 1.00 1.00 1.00 3
action_product_price 1.00 1.00 1.00 3
utter_out_scope_other 1.00 1.00 1.00 4
utter_thanks 1.00 1.00 1.00 4
utter_sing_poem 1.00 1.00 1.00 3
action_save_user_name 1.00 1.00 1.00 2
action_shirts_price 1.00 1.00 1.00 3
utter_goodbye 1.00 0.75 0.86 4
action_buy_product 1.00 1.00 1.00 3
action_save_address 1.00 1.00 1.00 2
utter_greet 1.00 1.00 1.00 5
utter_ask_price 1.00 1.00 1.00 3
utter_non_vietnammese 1.00 1.00 1.00 3
action_trousers_price 1.00 1.00 1.00 3

48
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 4: Kết quả thực nghiệm, đánh giá chatbot

utter_introduce 1.00 1.00 1.00 4


action_product_detail 1.00 1.00 1.00 4
action_trousers_type 1.00 1.00 1.00 4
action_save_phone 1.00 1.00 1.00 4
action_dress_price 1.00 1.00 1.00 4
action_shirt_type 1.00 0,5 0.66 12
4.2.2. Test trên giao diện người dùng cuối

Bảng 7. Test giao diện người dùng cuối


Chức năng Hình ảnh
Giới thiệu chức năng,
Chào hỏi
Một số câu hỏi khác

49
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 4: Kết quả thực nghiệm, đánh giá chatbot

Hỏi thông tin shop

50
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 4: Kết quả thực nghiệm, đánh giá chatbot

Hỏi về các loại sản


phẩm

51
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 4: Kết quả thực nghiệm, đánh giá chatbot

Hỏi theo giá cả

52
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 4: Kết quả thực nghiệm, đánh giá chatbot

Hỏi chi tiết sản phẩm


theo tên

Hỏi chi tiết sản phẩm


đã liệt kê trước đó

53
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 4: Kết quả thực nghiệm, đánh giá chatbot

Gợi ý mua hàng theo


sự kiện

54
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Chương 4: Kết quả thực nghiệm, đánh giá chatbot

Hỗ trợ đặt hàng

4.3. Kết luận chương

Trong chương 5 này đồ án đã trình bày về các kết quả mà chatbot đặt được thông
qua các đánh giá về mô hình Rasa NLU, Rasa Core, ngoài ra chương cũng đã trình bày kết
quả thực nghiệm sau khi triển chatbot thông qua nền tảng telegram theo từng chức năng đã
được xác định từ đầu

55
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Kết luận

KẾT LUẬN
Đề tài thực hiện tìm hiểu một số kiến thức về kiến trúc và nhiệm vụn của các thành
phần chatbot, một số thuật toán cơ bản áp dụng vào việc xây dựng chatbot để giải quyết
các bài toán theo hướng tiếp cận miền đóng, cụ thể là lĩnh vực bán thời trang phụ nữ. Dựa
vào đó ta có thể áp dụng xây dựng chatbot giải quyết các bài toán hỗ trợ người dùng trong
nhiều lĩnh vực thực tế
Các kết quả mà đồ án đã đạt được:
- Giới thiệu đề tài, trình bày tổng quan về chatbot, lịch sử phát triển của chatbot.
- Trình bày về cách phân loại các chabot, các phương pháp xây dựng chatbot. Nghiên
cứu tìm hiểu chatbot trong bán hàng và các nền tảng để xây dựng chatbot.
- Trình bày và tìm hiểu nền tảng RASA áp dụng xây dựng chatbot trong bán hàng có
khả năng hiểu ngôn ngữ tự nhiên.
- Thử nghiệm và đánh giá mô hình RASA trên bộ dữ liệu xây dựng cho kết quả độ
chính xác khá cao (khoảng 89%). Chatbot hỗ trợ tương đối nhiều ý định (43 intents)
và cũng đã có kịch bản minh họa hỗ trợ đa ý định (multi-intent).
- Xây dựng hệ thống chatbot gồm các thành phần: hiểu văn bản và ý định người dùng
Rasa NLU, quản lý hội thội Rasa Core, cơ sở dữ liệu bán hàng, các hành động tuỳ
chỉnh (custom action).
- Cài đặt và triển khai ứng dụng trên môi trường hệ điều hành Windows với nền tảng
Rasa framework 3.6.2, ngôn ngữ lập trình python 3.9.6, sử dụng chat client dạng
web hoặc telegram.
Sản phẩm demo có được sẽ làm tiền đề cho việc phát triển, hoàn thiện sản phẩm
trong thời gian tới. Sản phẩm cũng cho thấy khả năng xây dựng chatbot ứng dụng AI trong
các lĩnh vực khác là hoàn toàn khả thi.
Định hướng nghiên cứu tiếp theo:
- Xây dựng thêm đa dạng hóa các câu trả lời ngẫu nhiên theo các ý định
- Tích hợp speech to text và text to speech cho chatbot để hỗ trợ voice.
- Xây dựng bot có khả năng xử lý các vấn đề phức tạp hơn

56
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Tài liệu tham khảo

TÀI LIỆU THAM KHẢO

[1] "Testing Your Assistant," 14 11 2023. [Online]. Available:


https://rasa.com/docs/rasa/testing-your-assistant/.
[2] "Introduction to Rasa Open Source & Rasa Pro," 15 10 2023. [Online]. Available:
https://rasa.com/docs/rasa/.
[3] B. T. Tung, "Xây dựng chatbot Messenger cập nhật thời khóa biểu cho sinh viên (Phần
1) - Phân tích thiết kế hệ thống," 20 10 2023. [Online]. Available:
https://viblo.asia/p/xay-dung-chatbot-messenger-cap-nhat-thoi-khoa-bieu-cho-sinh-
vien-phan-1-phan-tich-thiet-ke-he-thong-OeVKBW8QZkW.
[4] B. T. Tung, "Xây dựng chatbot Messenger cập nhật thời khóa biểu cho sinh viên (Phần
4) - Xử lí logic chatbot khi được hỏi các thông tin về học phần," 21 10 2023. [Online].
Available: https://viblo.asia/p/xay-dung-chatbot-messenger-cap-nhat-thoi-khoa-bieu-
cho-sinh-vien-phan-4-xu-li-logic-chatbot-khi-duoc-hoi-cac-thong-tin-ve-hoc-phan-
Qbq5Q0jJlD8.
[5] B. T. Tung, "Xây dựng chatbot Messenger cập nhật thời khóa biểu cho sinh viên (Phần
2) - Chatbot đơn giản và kết nối messenger," 20 10 2023. [Online]. Available:
https://viblo.asia/p/xay-dung-chatbot-messenger-cap-nhat-thoi-khoa-bieu-cho-sinh-
vien-phan-2-chatbot-don-gian-va-ket-noi-messenger-L4x5xL4m5BM.
[6] B. T. Tung, "Xây dựng chatbot Messenger cập nhật thời khóa biểu cho sinh viên (Phần
3) - Xử lí logic chatbot khi được hỏi về thông tin lịch học," 21 10 2023. [Online].
Available: https://viblo.asia/p/xay-dung-chatbot-messenger-cap-nhat-thoi-khoa-bieu-
cho-sinh-vien-phan-3-xu-li-logic-chatbot-khi-duoc-hoi-ve-thong-tin-lich-hoc-
oOVlYzoQ58W.
[7] "Telegram," 09 11 2023. [Online]. Available:
https://rasa.com/docs/rasa/connectors/telegram/.
[8] G. W. Xiaoquan Kong, Conversational AI with Rasa: Build, test, and deploy AI-
powered, enterprise-grade virtual assistants and chatbots, Packt Publishing, 2021.
[9] O. Muldowney, Chatbots: An Introduction And Easy Guide To Making Your Own,
2017.
[10] M. AI, Director, [RASA series #1] Ai cũng có thể làm chatbot "siêu ngon khổng lồ".
[Film]. 2019.

57
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Tài liệu tham khảo

[11] N. C. Thắng, "[RASA series #1] Ai cũng có thể làm RASA chatbot “siêu ngon khổng
lồ”," [Online]. Available: https://miai.vn/2019/09/03/rasa-series-1-ai-cung-co-the-
lam-chatbot-sieu-ngon-khong-lo/.
[12] P. Q. N. Minh, Các bài toán xử lý ngôn ngữ tự nhiên trong, Viện nghiên cứu công nghệ
FPT (FTRI), 2017.
[13] N. T. Thủy, Ứng dụng thuật toán học có giám sát multi-class, 2018.

[14] A. C. a. D. H.-T. Yun-Nung (Vivian) Chen, Deep Learning for Dialogue Systems.
Association for Computational Linguistics, 2018.
[15] T. Bocklisch, Conversational AI with Rasa NLU & Rasa Core, 2018.

[16] S. Raj, Building Chatbots with Python Using Natural Language Processing and
Machine Learning, Apress, 2019.
[17] G. B, Chatbot Components and Architectures. In: Developing Enterprise Chatbots.
Springer, Cham, 2019.
[18] J. M. Daniel Jurafsky, Speech and Language Processing: An Introduction to Natural
Language Processing, Computational Linguistics, and Speech Recognition, 2008.
[19] Ina, "AI-chatbot software for complex requirements," [Online]. Available:
https://onlim.com/en/the-history-of-chatbots/. [Accessed 7 11 2023].
[20] Codecademy, "History of chatbots," [Online]. Available:
https://www.codecademy.com/article/history-of-chatbots. [Accessed 11 2023].
[21] A. &. R. K. &. S. S. Singh, Building an Enterprise Chatbot: Work with Protected
Enterprise Data Using Open Source Frameworks, 2019.
[22] P. H. Quang, "Rasa chatbot: Tăng khả năng chatbot với custom component và custom
tokenization(tiếng Việt + tiếng Nhật)," 3 2020. [Online]. Available:
https://viblo.asia/p/rasa-chatbot-tang-kha-nang-chatbot-voi-custom-component-va-
custom-tokenizationtieng-viet-tieng-nhat-Qbq5QN4mKD8. [Accessed 11 2023].
[23] "Rasa Community in Vietnam," 2018. [Online]. Available:
https://forum.rasa.com/t/rasa-community-in-vietnam/2993. [Accessed 11 2023].
[24] heraclex12, "vietnamese-chat-with-rasa," 2019. [Online]. Available:
https://github.com/heraclex12/vietnamese-chat-with-rasa. [Accessed 10 2023].
[25] N. C. Thắng, "Cài đặt RASA theo cách mới siêu nhanh, siêu gọn nhẹ," 03 2020.
[Online]. Available: https://miai.vn/2020/03/19/rasa-series-4-cai-dat-rasa-theo-cach-
moi-sieu-nhanh-sieu-gon-nhe/. [Accessed 10 2023].

58
Đặng Minh Đạt – B19DCCN169 – D19CNPM04
Đồ án tốt nghiệp Tài liệu tham khảo

[26] M. S. Trang Nguyen, "Enhancing Rasa NLU model for Vietnamese chatbot," 1 2021.
[Online]. Available:
https://www.researchgate.net/publication/348390901_Enhancing_Rasa_NLU_model
_for_Vietnamese_chatbot. [Accessed 11 2023].
[27] "Tổng quan về Rasa," 14 5 2023. [Online]. Available:
https://ailab.siu.edu.vn/article/23/tong-quan-ve-rasa. [Accessed 11 2023].
[28] T. D. Thanh, "Cài đặt platform Trí tuệ nhân tạo Rasa trên Windows," 8 2021. [Online].
Available: https://duythanhcse.wordpress.com/2021/08/23/cai-dat-platform-tri-tue-
nhan-tao-rasa-tren-windows/. [Accessed 11 2023].
[29] hunghv, "So sánh 25 framework chatbot phổ biến nhất," 05 02 2018. [Online].
Available: https://hanhtranglaptrinh.net/sanh-25-framework-chatbot-pho-bien-nhat/.
[Accessed 10 2023].
[30] "TOP 7 Nền Tảng Chatbot Uy Tín Trên Thị Trường," [Online]. Available:
https://dinos.vn/review-chatbot/. [Accessed 11 2023].
[31] Chatbot.team<Linkedin>, "28 Best Chatbot Platforms To Build A Chatbot In 2023
[Complete Guide]," [Online]. Available: https://www.linkedin.com/pulse/28-best-
chatbot-platforms-build-2023-complete-guide-chatbot-team. [Accessed 10 2023].

59
Đặng Minh Đạt – B19DCCN169 – D19CNPM04

You might also like