Tải bản đầy đủ (.docx) (124 trang)

Đồ án tìm hiểu chatbot framework và xây dựng ứng dụng minh họa

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.82 MB, 124 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

NGUYỄN NGỌC ĐĂNG

BÁO CÁO ĐỒ ÁN

TÌM HIỂU VỀ CHATBOT FRAMEWORK VÀ XÂY
DỰNG ỨNG DỤNG MINH HỌA

ĐỒ ÁN 1 – SE121.L21


TP. HỒ CHÍ MINH, 2021

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THƠNG TIN
KHOA CƠNG NGHỆ PHẦN MỀM

NGUYỄN NGỌC ĐĂNG - 18520557

BÁO CÁO ĐỒ ÁN

TÌM HIỂU VỀ CHATBOT FRAMEWORK VÀ XÂY
DỰNG ỨNG DỤNG MINH HỌA

ĐỒ ÁN 1 – SE121.L21


GIẢNG VIÊN HƯỚNG DẪN
THS. PHAN TRUNG HIẾU
THS. TRẤN ANH DŨNG

2


TP. HỒ CHÍ MINH, 2021

3


ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ

CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT

MINH

NAM

TRƯỜNG ĐẠI HỌC

Độc Lập - Tự Do - Hạnh Phúc

CÔNG NGHỆ THÔNG TIN

TP. HCM, ngày 30 tháng 03 năm 2021

ĐỀ CƯƠNG CHI TIẾT
Tên đề tài: Tìm hiểu ChatBot framework và xây dựng ứng dụng minh họa

Cán bộ hướng dẫn: THS. PHAN TRUNG HIẾU, THS. TRẦN ANH DŨNG
Thời gian thực hiện: từ ngày 12/03/2021 đến ngày 23/06/2021
Sinh viên thực hiện:
1. NGUYỄN NGỌC ĐĂNG - 18520557
Nội dung đề tài:
Mục tiêu đề tài
Thực hiện tìm hiểu về ChatBot framework và xây dựng ứng dụng minh họa đạt được
các mục đích sau:
Tìm hiểu về ChatBot nói chung và các ChatBot framework, xác định được ưu điểm,
nhược điểm giữa các ChatBot framework với nhau và giữa hướng tiếp cận sử dụng
ChatBot framework với các hướng tiếp cận khác để xây dựng ChatBot
Nghiên cứu sâu hơn 1 ChatBot framework (Wit.ai) và các công nghệ liên quan
(Node.js, Express.js, React, Javascript) để xây dựng một ứng dụng minh họa
Xây dựng ứng dụng minh họa có tính thực tiễn trong cuộc sống, giúp ích người dùng
trong việc tiếp cận thơng tin
Nhóm hi vọng với nền tảng lý thuyết đã được truyền đạt trong quá trình học tập trên
giảng đường cũng như khả năng tự tìm hiểu thơng tin, sẽ có thể hồn thiện được các
mục tiêu đã đề ra
Phương pháp thực hiện: Dự án cá nhân, sinh viên đảm nhiệm tất cả các vai trị trong
việc tìm hiểu, thiết kế và xây dựng ứng dụng minh họa cũng như biên soạn báo cáo
phục vụ cho đồ án này
Kết quả mong đợi: Sau khi xác định đề tài và định hướng nghiên cứu, nhóm hi vọng
có thể xây dựng được ứng dụng minh họa đạt được những mục tiêu sau

4


Về mặt chức năng, ứng dụng có thể thực hiện trả lời các câu hỏi của người dùng về
một số các vấn đề khác nhau mà người dùng muốn biết
Đối với nhà phát triển, ứng dụng trở thành cơ hội để áp dụng các công nghệ khác nhau

đã được nghiên cứu, tìm hiểu trong quá trình thực hiện đồ án, với trung tâm là
ChatBot framework
Về mặt thẩm mỹ, xây dựng một giao diện giao tiếp với ChatBot thân thiện, đơn giản
và dễ nhìn, tạo thiện cảm cho người sử dụng
Về mặt logic, tạo được liên kết giữa kết quả xử lý yêu cầu người dùng của ChatBot
framework và logic ứng dụng để trả về người dùng thông tin mà người dùng muốn
thấy
Về mặt bảo mật, thực hiện bảo mật các API key được sử dụng trong quá trình phát
triển hệ thống, tránh trường hợp hệ thống bị lạm dụng cho các mục đích khác
Kế hoạch thực hiện:
Với thời gian thực hiện từ 12/03/2021 đến 26/06/2021, nhóm chia khung thời gian này
ra thành các giai đoạn lớn với các phần việc nhỏ hơn có thể thực hiện theo thứ tự bất
kì miễn là nằm trong giới hạn cho phép của giai đoạn đó, các giai đoạn này như sau:
Giai đoạn 1: Khảo sát hiện trạng, tìm hiểu sơ bộ về ChatBot cũng như các ChatBot
framework được sử dụng rộng rãi hiện nay
Giai đoạn 2: Tìm hiểu sâu hơn về các ChatBot framework, nhận biết các ưu nhược
điểm giữa các framework với nhau, xác định hướng xây dựng ứng dụng minh họa và
chọn ra ChatBot framework phù hợp cũng như các công nghệ liên quan để hỗ trợ xây
dựng ứng dụng này
Giai đoạn 3: Thiết kế hệ thống bao gồm kiến trúc, kịch bản, đặc tả các API được dùng
trong ứng dụng
Giai đoạn 4: Xây dựng giao diện cho ứng dụng minh họa, huấn luyện cho ChatBot xử
lý yêu cầu của người dùng và xây dựng server lấy dữ liệu cho việc trả lời câu hỏi của
ChatBot
Giai đoạn 5: Hoàn thiện hệ thống bằng việc liên kết giao diện với ChatBot framework
và hệ thống lấy dữ liệu trả lời, đưa vào thử nghiệm, hoàn thiện báo cáo đồ án
Giai đoạn (Thời gian
dự kiến)
Giai đoạn 1
(12/03/2021 26/03/2021)


Công việc
-

Khảo sát nhu cầu sử dụng ChatBot trong đời sống
hằng ngày
Khảo sát nhu cầu tra cứu thơng tin nói chung trên
internet

5


-

Tìm hiểu chung về ChatBot
Tìm hiểu sơ bộ về các ChatBot framework đang
được sử dụng rộng rãi hiện tại

Giai đoạn 2
(26/03/2021 –
09/04/2021)

-

Tìm hiểu sâu hơn giữa các ChatBot framework
So sánh các hướng tiếp cận xây dựng ChatBot
Xác định phương án xây dựng ứng dụng minh họa
Tìm hiểu các cơng nghệ liên quan để xây dựng
ứng dụng minh họa


Giai đoạn 3
(09/04/2021 –
14/05/2021

-

Thiết kế kiến trúc hệ thống
Thiết kế giao diện
Thiết kế kịch bản giao tiếp
Thiết kế API truy vấn thơng tin
Hồn thiện đặc tả thiết kế hệ thống

Giai đoạn 4
(14/05/2021 –
3/06/2021)

-

Cài đặt giao diện
Huấn luyện ChatBot xử lý yêu cầu
Cài đặt hệ thống truy vấn thơng tin

Giai đoạn 5 (3/06/2021
– 23/06/2021)

-

Hồn thiện hệ thống
Vận hành thử nghiệm


Xác nhận của CBHD

TP. HCM, ngày 30 tháng 03 năm 2021

(Ký tên và ghi rõ họ tên)

Sinh viên
(Ký tên và ghi rõ họ tên)

PHAN TRUNG HIẾU

NGUYỄN NGỌC ĐĂNG

6


MỤC LỤC
1

TỔNG QUAN VỀ ĐỀ TÀI..................................................................................16
1.1

1.1.1

Chatbot là gì............................................................................................16

1.1.2

Cái nhìn chung về nhu cầu tra cứu thông tin...........................................17


1.1.3

Lý do lựa chọn đề tài...............................................................................18

1.2

2

Giới thiệu về đề tài.........................................................................................16

Khảo sát hiện trạng........................................................................................18

1.2.1

CleverBot – Chatbot trò chuyện nổi tiếng nhất thế giới..........................21

1.2.2

Google – Nền tảng tra cứu thông tin lớn nhất thế giới............................22

1.3

Đối tượng nghiên cứu....................................................................................22

1.4

Phạm vi nghiên cứu.......................................................................................23

1.5


Phương pháp nghiên cứu...............................................................................23

1.6

Nhiệm vụ của đề tài.......................................................................................23

CƠ SỞ LÝ THUYẾT..........................................................................................24
2.1

Tổng quan về ECMAScript...........................................................................24

2.1.1

Khái niệm................................................................................................24

2.1.2

Cấu trúc...................................................................................................25

2.1.3

Ưu điểm..................................................................................................25

2.2

Tổng quan về Node.js....................................................................................26

2.2.1

Khái niệm................................................................................................26


7


2.2.2

Cấu trúc...................................................................................................27

2.2.3

Ưu điểm..................................................................................................29

2.3

2.3.1

Khái niệm................................................................................................29

2.3.2

Cấu trúc...................................................................................................30

2.3.3

Ưu điểm..................................................................................................31

2.4

Tổng quan về React.......................................................................................32


2.4.1

Khái niệm................................................................................................32

2.4.2

Cấu trúc...................................................................................................32

2.4.3

Ưu điểm..................................................................................................33

2.5

3

Tổng quan về Express.js................................................................................29

Tổng quan về MongoDB...............................................................................35

2.5.1

Khái niệm................................................................................................35

2.5.2

Cấu trúc...................................................................................................35

2.5.3


Ưu điểm..................................................................................................36

KẾT QUẢ TÌM HIỂU.........................................................................................36
3.1

Kết quả tìm hiểu về Chatbot..........................................................................36

3.1.1

Cách xây dựng một Chatbot....................................................................36

3.1.2

Ứng dụng của Chatbot............................................................................45

3.2

Kết quả tìm hiểu về Chatbot Framework.......................................................46

3.2.1

Khái niệm Chatbot Framework...............................................................46

3.2.2

Bảng mô tả sơ lược các Chatbot Framework thơng dụng........................47

3.3

Kết quả tìm hiểu về Wit.ai.............................................................................54


3.3.1

Giới thiệu về Wit.ai.................................................................................54

3.3.2

Ưu điểm của Wit.ai.................................................................................54

3.3.3

Các khái niệm cơ bản trong Wit.ai..........................................................55
8


3.3.4
4

Mô tả sơ lược cách sử dụng Wit.ai..........................................................65

THIẾT KẾ HỆ THỐNG ỨNG DỤNG MINH HỌA...........................................76
4.1

Xác định yêu cầu...........................................................................................76

4.1.1

Sơ đồ ca sử dụng.....................................................................................76

4.1.2


Đặc tả ca sử dụng....................................................................................76

4.2

Thiết kế kiến trúc hệ thống............................................................................91

4.3

Thiết kế mơ hình dữ liệu................................................................................93

4.3.1

Sơ đồ lớp.................................................................................................93

4.3.2

Đặc tả lớp dữ liệu....................................................................................93

4.4

Thiết kế luồng xử lý.....................................................................................105

4.4.1

Luồng xử lý chức năng đăng nhập........................................................105

4.4.2

Luồng xử lý chức năng đăng kí.............................................................106


4.4.3

Luồng xử lý chức năng thu phí..............................................................107

4.4.4

Luồng xử lý chức năng giao tiếp với Chatbot.......................................108

4.5

Thiết kế module truy vấn thông tin..............................................................108

4.5.1

Truy vấn thông tin thời tiết....................................................................108

4.5.2

Truy vấn thông tin tỉ giá tiền tệ.............................................................109

4.5.3

Truy vấn thông tin dịch thuật................................................................110

4.5.4

Truy vấn giá cổ phiếu............................................................................111

4.5.5


Truy vấn thơng tin dịch COVID-19.......................................................112

4.6

Thiết kế giao diện.........................................................................................113

4.6.1

Màn hình chính.....................................................................................116

4.6.2

Màn hình đăng nhập..............................................................................118

4.6.3

Màn hình đăng kí..................................................................................119

4.6.4

Màn hình liệt kê giá dịch vụ..................................................................120
9


5

4.6.5

Màn hình giao tiếp với Chatbot.............................................................121


4.6.6

Màn hình nhập thơng tin thanh tốn......................................................122

4.6.7

Màn hình xem lịch sử thanh tốn..........................................................123

4.6.8

Màn hình xem thơng tin người dùng.....................................................124

4.6.9

Màn hình danh sách bài viết..................................................................125

CÀI ĐẶT HỆ THỐNG......................................................................................126
5.1

5.1.1

Phương thức huấn luyện Chatbot..........................................................126

5.1.2

Quá trình huấn luyện Chatbot...............................................................126

5.2


Phương thức cài đặt giao diện...............................................................127

5.2.2

Quá trình cài đặt giao diện....................................................................127

Quy trình cài đặt hệ thống xử lý...................................................................128

5.3.1

Phương thức cài đặt hệ thống xử lý.......................................................128

5.3.2

Quá trình cài đặt hệ thống xử lý............................................................129

5.4

7

Quy trình cài đặt giao diện...........................................................................127

5.2.1

5.3

6

Quy trình huấn luyện Chatbot......................................................................126


Quy trình cài đặt cơ sở dữ liệu.....................................................................129

5.4.1

Phương thức cài đặt cơ sở dữ liệu.........................................................129

5.4.2

Quá trình cài đặt cơ sở dữ liệu..............................................................130

KẾT QUẢ CÀI ĐẶT HỆ THỐNG....................................................................130
6.1

Giới thiệu hệ thống......................................................................................130

6.2

Sơ lược tính năng hệ thống..........................................................................131

6.3

Đánh giá độ hồn thiện hệ thống.................................................................134

KẾT LUẬN.......................................................................................................135
7.1

Đánh giá kết quả làm việc............................................................................135

7.1.1


Thuận lợi...............................................................................................135
10


7.1.2
7.2

Kết quả đạt được..........................................................................................136

7.2.1

Ưu điểm................................................................................................136

7.2.2

Nhược điểm...........................................................................................136

7.3
8

Khó khăn...............................................................................................136

Hướng phát triển..........................................................................................137

PHỤ LỤC..........................................................................................................137
8.1

Tài liệu tham khảo.......................................................................................137

8.2


Danh mục công nghệ được sử dụng.............................................................138

DANH MỤC HÌNH
Hình 1.1 Dữ liệu Google Trend cho cụm từ "chatbot" trong vịng 5 năm trở lại đây. .19
Hình 1.2 Một giao diện của Cleverbot........................................................................21
Hình 1.3 Giao diện tra cứu thơng tin của Google........................................................22
Hình 2.1 Hình mơ tả cách mà Node.js phân bố cơng việc cho các tiểu trình trong hệ
thống........................................................................................................................... 28
Hình 3.1 Cấu trúc đầy đủ của một Chatbot.................................................................43
Hình 3.2 Màn hình tạo ứng dụng mới của Wit.AI.......................................................66
Hình 3.3 Màn hình Understanding, nơi khởi đầu của việc thiết kế Chatbot................66
Hình 3.4 Cách thức chọn Intent...................................................................................67
Hình 3.5 Chọn Intent sau khi đã tạo mới.....................................................................67
Hình 3.6 Chọn đoạn văn bản làm Entity.....................................................................68
Hình 3.7 Chọn loại Entity cho đoạn văn bản...............................................................68
Hình 3.8 Màn hình chọn Trait.....................................................................................69
Hình 3.9 Tạo giá trị mới cho Trait vừa tạo..................................................................69
Hình 3.10 Một Utterance được cài một cách hồn chỉnh, sẵn sàng để train................70
11


Hình 3.11 Màn hình quản lý Intent..............................................................................70
Hình 3.12 Màn hình quản lý Entity.............................................................................71
Hình 3.13 Màn hình quản lý Trait...............................................................................71
Hình 3.14 Màn hình quản lý Utterance.......................................................................72
Hình 3.15 Màn hình cài đặt cấu hình hệ thống............................................................72
Hình 3.16 Ví dụ gửi u cầu đến Wit.AI bằng Postman..............................................73
Hình 3.17 Màn hình xem thống kê lưu lượng truy cập................................................75
Hình 3.18 Màn hình Live Utterance............................................................................75

Hình 4.1 Sơ đồ ca sử dụng..........................................................................................76
Hình 4.2 Sơ đồ kiến trúc hệ thống...............................................................................91
Hình 4.3 Sơ đồ lớp của hệ thống.................................................................................93
Hình 4.4 Sơ đồ luồng xử lý chức năng đăng nhập.....................................................105
Hình 4.5 Sơ đồ luồng xử lý chức năng đăng ký........................................................106
Hình 4.6 Sơ đồ luồng xử lý chức năng thu phí..........................................................108
Hình 4.7 Sơ đồ luồng xử lý chức năng giao tiếp với Chatbot....................................108
Hình 4.8 Sơ đồ luồng xử lý truy vấn thơng tin thời tiết.............................................109
Hình 4.9 Sơ đồ luồng xử lý truy vấn thơng tin tỉ giá ngoại tệ....................................110
Hình 4.10 Sơ đồ luồng xử lý dịch thuật.....................................................................111
Hình 4.11 Sơ đồ luồng xử lý truy vấn giá cổ phiếu...................................................112
Hình 4.12 Sơ đồ luồng xử lý truy vấn thơng tin dịch COVID-19..............................113
Hình 4.13 Sơ đồ màn hình.........................................................................................114
Hình 4.14 Giao diện màn hình chính (Chưa đăng nhập)...........................................116
Hình 4.15 Giao diện màn hình chính (Đã đăng nhập)...............................................117
Hình 4.16 Giao diện màn hình đăng nhập.................................................................118
Hình 4.17 Giao diện màn hình đăng ký.....................................................................119
12


Hình 4.18 Giao diện màn hình liệt kê giá dịch vụ.....................................................120
Hình 4.19 Giao diện màn hình giao tiếp với Chatbot................................................121
Hình 4.20 Giao diện màn hình nhập thơng tin thanh tốn.........................................122
Hình 4.21 Giao diện màn hình xem lịch sử thanh tốn.............................................123
Hình 4.22 Giao diện màn hình xem thơng tin người dùng........................................124
Hình 4.23 Giao diện màn hình danh sách bài viết.....................................................125
Hình 6.1 Chức năng cơ bản của Chatbot...................................................................131
Hình 6.2 Các chức năng khác của Chatbot................................................................132
Hình 6.3 Hỏi Chatbot về tinhg dịch COVID-19........................................................132
Hình 6.4 Chức năng đổi giọng nói thành tin nhắn.....................................................133

Hình 6.5 Chức năng tra cứu thơng tin sử dụng Wikidata...........................................133
Hình 6.6 Màn hình đăng nhập...................................................................................134

DANH MỤC BẢNG
Bảng 2.1 Bảng danh sách các thành phần Middleware được tích hợp vào Express.JS 30
Bảng 3.1 Bảng danh sách các thành phần trong một Chatbot......................................43
Bảng 3.2 Bảng so sánh 10 Chatbot Framework được dùng nhiều nhất hiện tại..........47
Bảng 3.3 Bảng danh sách thuộc tính trong một Entity................................................55
Bảng 3.4 Bảng danh sách thuộc tính trong một Intent.................................................55
Bảng 3.5 Bảng Intent được xây dựng sẵn trong Wit.AI...............................................56
Bảng 3.6 Bảng danh sách thuộc tính của một Entity Parameter..................................60
Bảng 3.7 Bảng Entity được xây dựng sẵn trong Wit.AI..............................................60
Bảng 3.8 Bảng danh sách thuộc tính của Trait............................................................64
Bảng 3.9 Bảng Trait được xây dựng sẵn trong Wit.AI................................................64

13


Bảng 4.1 Bảng mơ tả thành phần chính trong hệ thống...............................................92
Bảng 4.2 Bảng thuộc tính lớp User.............................................................................94
Bảng 4.3 Bảng phương thức lớp User.........................................................................94
Bảng 4.4 Bảng thuộc tính lớp Service.........................................................................94
Bảng 4.5 Bảng phương thức lớp Service.....................................................................95
Bảng 4.6 Bảng thuộc tính lớp Session.........................................................................95
Bảng 4.7 Bảng phương thức lớp Session.....................................................................95
Bảng 4.8 Bảng thuộc tính lớp Bill...............................................................................96
Bảng 4.9 Bảng phương thức lớp Bill...........................................................................96
Bảng 4.10 Bảng thuộc tính lớp PendingBill................................................................96
Bảng 4.11 Bảng phương thức lớp PendingBill............................................................97
Bảng 4.12 Bảng thuộc tính lớp ConfirmBill...............................................................97

Bảng 4.13 Bảng phương thức lớp ConfirmBill...........................................................98
Bảng 4.14 Bảng thuộc tính lớp Context......................................................................98
Bảng 4.15 Bảng phương thức lớp Context..................................................................99
Bảng 4.16 Bảng thuộc tính lớp ActiveContext............................................................99
Bảng 4.17 Bảng phương thức lớp ActiveContext........................................................99
Bảng 4.18 Bảng thuộc tính lớp Message...................................................................100
Bảng 4.19 Bảng phương thức lớp Message...............................................................100
Bảng 4.20 Bảng thuộc tính lớp Option......................................................................100
Bảng 4.21 Bảng phương thức lớp Option..................................................................101
Bảng 4.22 Bảng thuộc tính lớp InformationKey.......................................................101
Bảng 4.23 Bảng phương thức lớp InformationKey...................................................101
Bảng 4.24 Bảng thuộc tính lớp Utterance.................................................................102
Bảng 4.25 Bảng phương thức lớp Utterance.............................................................102
14


Bảng 4.26 Bảng thuộc tính lớp Intent........................................................................102
Bảng 4.27 Bảng phương thức lớp Intent...................................................................103
Bảng 4.28 Bảng thuộc tính lớp Entity.......................................................................103
Bảng 4.29 Bảng phương thức lớp Entity...................................................................103
Bảng 4.30 Bảng thuộc tính lớp Trait.........................................................................104
Bảng 4.31 Bảng phương thức lớp Trait.....................................................................104
Bảng 4.32 Bảng danh sách màn hình trong hệ thống.................................................114
Bảng 4.33 Bảng danh sách các thành phần trong màn hình chính.............................117
Bảng 4.34 Bảng danh sách thành phần trong màn hình đăng nhập............................118
Bảng 4.35 Bảng danh sách thành phần trong màn hình đăng ký...............................119
Bảng 4.36 Bảng danh sách thành phần trong màn hình liệt kê giá dịch vụ...............120
Bảng 4.37 Bảng danh sách thành phần trong màn hình giao tiếp với Chatbot..........121
Bảng 4.38 Bảng danh sách thành phần trong màn hình nhập thơng tin thanh tốn. . .122
Bảng 4.39 Bảng danh sách thành phần trong màn hình lịch sử thanh tốn................123

Bảng 4.40 Bảng danh sách thành phần trong màn hình xem thơng tin người dùng...124
Bảng 4.41 Bảng danh sách thành phần trong màn hình danh sách bài viết...............125
Bảng 5.1 Bảng tác vụ huấn luyện Chatbot................................................................126
Bảng 5.2 Bảng tác vụ cài đặt giao diện.....................................................................127
Bảng 5.3 Bảng tác vụ cài đặt hệ thống xử lý.............................................................129
Bảng 5.4 Bảng tác vụ cài đặt cơ sở dữ liệu...............................................................130
Bảng 6.1 Bảng đánh giá độ hoàn thiện hệ thống.......................................................134
Bảng 8.1 Bảng danh sách công nghệ được sử dụng trong đồ án...............................138

15


1 TỔNG QUAN VỀ ĐỀ TÀI
1.1 Giới thiệu về đề tài
1.1.1

Chatbot là gì

Chatbot (hay cịn gọi là Chatterbot) là một dạng phần mềm ứng dụng được dùng để
chủ động thiết lập một cuộc trị chuyện thơng qua tin nhắn văn bản hoặc tin nhắn thoại
(Text-to-speech). Thay cho việc phải kết nối trực tiếp tới một người khác. Chatbot
thường được thiết kế để mô phỏng lại hành vi của một con người trong một cuộc trị
chuyện thơng thường. Tuy nhiên đa số các chatbot hiện nay thường yêu cầu sự tu
chỉnh và kiểm tra liên tục, đa số chúng thường không thể giao tiếp một cách thuyết
phục như con người hay có thể vượt qua được bài kiểm tra Turing (sẽ được giải thích
chi tiết hơn trong phần sau). Tuy vậy so với các chatbot đời đầu được thiết kế thuần
túy cho mục đích nghiên cứu (ELIZA, ALICE, …). Các chatbot hiện nay được sử
dụng trong hệ thống trao đổi thông tin với đa dạng các mục đích như chăm sóc khách
hàng, yêu cầu hướng dẫn hoặc thu thập thông tin. Chatbot có thể được dựng nên nhờ
việc sử dụng các cơng cụ xử lý ngơn ngữ tự nhiên cực kì hiện đại, các cơng cụ trí tuệ

nhân tạo tối tân. Chúng cũng có thể được tạo nên chỉ bằng việc quét và chọn ra các từ
khóa được đưa vào và đưa ra các câu trả lời chung dựa trên việc so khớp từ khóa đó
với một cơ sở dữ liệu có sẵn. Sự linh hoạt trong cách thức cài đặt này chính là một
trong những lý do mà chatbot trở nên phổ biến trong mơi trường điện tốn hiện nay.
Đa số các chatbot được hiện thực hóa dưới dạng một cửa số nhắn tin hoặc một trợ lý
ảo truy cập được thơng qua mạng máy tính. Chúng có thể được phân loại dựa vào lĩnh
vực sử dụng như sau:







Thương mại (Chatbot gợi ý sản phẩm, chăm sóc khách hàng, …)
Giáo dục (Chatbot cung cấp thông tin, thông báo, kiến thức, …)
Giải trí (Chatbot gợi ý hình thức, nội dung giải trí, kể chuyện vui, …)
Tài chính (Chatbot cung cấp thơng tin chứng khoán, tỉ giá, thị trường)
Tin tức (Chatbot cung cấp thông tin thời sự, thông tin nội bộ, …)
Hỗ trợ làm việc (Chatbot quản lý thơng báo, lịch trình làm việc, thơng tin liên
quan đến cơng việc, …)

Nhìn chung thì Chatbot vẫn cịn là một loại hình ứng dụng cịn rất nhiều tiềm năng để
khai phá mặc dù khơng u cầu cao về trình độ để có thể khởi đầu

16


1.1.2


Cái nhìn chung về nhu cầu tra cứu thơng tin

Chúng ta không thể phủ nhận rằng một trong những lợi thế của mạng Internet là khả
năng tiếp cận thông tin nhanh và chính xác. Trong các nguồn lực phát triển xã hội,
thông tin được coi là nguồn tài nguyên quan trọng nhất. Thông tin là tri thức, là sức
mạnh và là bí quyết góp phần định hướng đúng, giúp lãnh đạo quản lý ra các quyết
định chính xác hơn. Mọi hoạt động kinh tế - xã hội đều liên quan tới thơng tin.
Nhu cầu tra cứu thơng tin là địi hỏi khách quan của con người (cá nhân, nhóm, xã
hội) đối với việc tiếp nhận và sử dụng thông tin để duy trì hoạt động sống. Khi địi hỏi
về thơng tin trở lên cấp thiết thì nhu cầu tra cứu thông tin xuất hiện. Thông tin trở
thành nhu cầu của con người, là một dạng của nhu cầu tinh thần, nhu cầu bậc cao của
con người. Nhu cầu nảy sinh trong quá trinh thực hiện các loại hoạt động khác của con
người, thông tin về đối tượng hoạt động, về môi trường và các phương tiện hoạt động
là yếu tố quan trọng tạo nên hiệu quả hoạt động của con người. Bất kỳ hoạt động nào
muốn có kết quả tốt thì cũng cần phải có thơng tin. Mọi người càng tham gia nhiều
hoạt động khác nhau thì nhu cầu tin của con người càng phong phú hơn, tham gia hoạt
động phức tạp thì nhu cầu tin càng trở lên sâu sắc hơn.
Ta lấy ví dụ về việc tra cứu thơng tin như sau: Buổi tối một ngày, A đang nghĩ về việc
chạy bộ buổi sáng hơm sau. A sẽ có nhu cầu tra cứu thời tiết của ngày hôm sau và A
biết được rằng thời tiết ngày mai khả năng cao sẽ mưa. A đổi kế hoạch của mình cho
sáng hôm sau sang việc uống cà phê và đọc tin tức. Sáng hôm sau, A đang đọc tin tức
trên một trang mạng. Có một thơng tin quan trọng hiện lên: Theo chỉ đạo của thủ
tướng chính phủ, người dân được khuyến khích ở nhà để phịng chống đại dịch C. Vậy
là A nghĩ về việc thay vì ra ngồi đường để chạy bộ, có thể mua một máy chạy bộ
khơng phải là một ý tưởng tồi. Vì thế A lại tìm kiếm thơng tin về một máy chạy bộ giá
vừa phải và có thể được chuyển đến trong thời gian ngắn. Như ta có thể thấy, chỉ với
một cơng việc ban đầu đó là chạy bộ, A đã thực hiện tra cứu từ thông tin thời tiết, đến
thông tin thời sự, rồi lại đến thông tin sản phẩm máy chạy bộ. Những thơng tin này có
thể khơng thật sự cần thiết cho A trong việc có chạy bộ hay khơng. Nhưng ở đây ta
cũng có thể thấy, với việc sử dụng mạng Internet mà việc tiếp cận thông tin cũng trở

nên cực kì dễ dàng và nó giúp ích cho A trong việc lựa chọn cách thức chạy bộ cho

17


bản thân mà không gây ra bất tiện cho bản thân hay những người xung quanh. Bởi vậy
nhu cầu tra cứu thông tin, đặc biệt là thông qua mạng Internet là một nhu cầu khơng
thể thiếu trong q trình làm việc cũng như giải trí của con người
1.1.3

Lý do lựa chọn đề tài

Như đã được đề cập trong các phần trước, nhu cầu tra cứu thông tin của con người
đang ngày một gia tăng. Cũng như nền tảng công nghệ Chatbot đang dần được hoàn
thiện, dẫn đến sự ra đời của các Chatbot Framework (sẽ được đề cập kĩ hơn trong
phần sau). Nhóm đã đi tới việc tìm hiểu về các Chatbot Framework và xây dựng ứng
dụng minh họa với mục tiêu là sử dụng một Chatbot Framework để xây dựng một hệ
thống trả lời tự động, cung cấp thông tin cho người sử dụng. Lý do cụ thể bao gồm:
 Đưa người dùng ra khỏi sự phụ thuộc của các cơng cụ tìm kiếm trong việc tra
cứu thơng tin
 Tạo ra một môi trường thân thiện hơn với người dùng trong việc tra cứu thông
tin
 Áp dụng các kiến thức đã được học về thiết kế một hệ thống phần mềm với đầy
đủ các thành phần
 Tạo điều kiện để tìm hiểu về các Chatbot Framework thơng dụng trong việc cài
đặt một hệ thống Chatbot
 Đặt ra nền tảng cho hướng phát triển của hệ thống trong tương lai

1.2 Khảo sát hiện trạng
Hiện nay, Chatbot là một ứng dụng được sử dụng rộng rãi dưới đủ quy mô cũng như

độ phức tạp. Dưới đây là một số sô liệu cụ thể để khẳng định điều này

Hình 1.1 Dữ liệu Google Trend cho cụm từ "chatbot" trong vòng 5 năm trở lại đây

18


Dữ liệu Google Trend cho cụm từ “Chat bot” có xu hướng tăng dần theo từng năm và
hiện tại đang ở mức khá ổn định
 1.4 tỷ người đang sử dụng Chatbot (theo như Chatbot.Net)
 56% doanh nghiệp tin rằng chatbot là một trong những nhân tố đột phá trong
việc kinh doanh của họ (theo như Accenture)
 Gần 6 trên 10 điều hành doanh nghiệp nói rằng Chatbot có thể cải thiện khả
năng của tổ chức trong việc xử lý yêu cầu của khách hàng bằng mạng lưới liên
kết với những con bot khác. Chúng có thể đem lại sự chăm chút đến từng cá
nhân đối với từng đối tượng tiếp xúc với trang web (theo như Accenture)

Về mặt trải nghiệm, ta có những số liệu sau
 265 tỷ yêu cầu từ khách hàng được đưa ra, tiêu tốn 1,3 nghìn tỷ USD mỗi năm
(theo như Chatbots Journal)
 30% khách hàng sẽ rời bỏ một nhãn hàng và không bao giờ trở lại vì trải
nghiệm khơng tốt (theo như OpenText)
 1 trong 5 yêu cầu trò chuyện trực tiếp từ khách hàng không bao giờ được trả lời
(theo như SuperOffice)
 Tới năm 2022, các ngân hàng sẽ từ động hóa lên tới 90% giao tiếp với khách
hàng của họ sử dụng Chatbot (theo như Lauren Foye of Juniper Research, via
Chatbots Magazine)
Vể ảnh hưởng đến nhân viên chăm sóc khách hàng truyền thống, ta có những số liệu
sau
 64% thời gian AI Chatbot giao tiếp với khách hàng sẽ dùng để giải quyết các

vấn đề phức tạp (theo như Salesforce 2)
 Khả năng định hình lại hệ thống nhân sự của một cơng ty là ảnh hưởng ít được
nhắc đến nhất của Chatbot (about one in 10)
Về ý thích của người dùng, ta có những số liệu sau
 54% khàch hàng cho rằng công ty cần phải chuyển đổi cách mà họ tiếp cận
khách hàng (theo như Salesforce)
 Chỉ 38% người tiêu dùng có nhu cầu trị chuyện trực tiếp với người thật khi
tiếp xúc với một nhãn hàng (theo như Drift)
19


 77% người tiêu dùng cho rằng Chatbot thay đổi kì vọng của họ lên cơng ty
trong 5 năm tới (theo như Salesforce)
 70% khách hàng thuộc thế hệ milinials (8x, 9x) có trải nghiệm tích cực với
Chatbot (theo như Forbes)
 Số khách hàng sử dụng nắn tin trực tuyến thay vì thơng qua điện thoại hay thư
điện từ đã tăng 50% kể từ năm 2012 (theo như Forrester)
 Hơn 64% người dùng Facebook tại Brazil, Ấn Độ, Anh, Mỹ nói rằng họ muốn
giao tiếp với một thực thể kinh doanh thông qua Facebook Messenger bởi khả
năng mà họ được hồi âm là cao hơn so với những phương thức khác (theo như
Facebook Business)
Về tiềm năng phát triển của Chatbot, ta có những số liệu sau:
 Thị trường Chatbot được dự báo sẽ tăng trưởng từ 2.6 tỷ USD trong năm 2019
lên 9.4 tỷ USD vào năm 2024 với với tỉ lệ tăng trưởng hàng năm là 29.7%
(theo như Business Insider)
 Tới năm 2023, 30% dịch vụ chăm sóc khách hàng của các tổ chức sẽ được thực
hiện một cách chủ động bởi các hệ thống được điều hành bởi AI và các hệ
thống tích hợp thơng minh khác (theo như Gartner)
Như vậy ta có thể thấy rằng Chatbot là một trong những nhân tố nổi bật trong quá
trình phát triển của các doanh nghiệp và tiềm năng của nó trong tương lai là rất lớn

Để khảo sát rõ hơn tình trạng thực tiễn của Chatbot cũng như nhu cầu tra cứu thông
tin, ta khảo sát hai đối tượng sau

20


1.2.1

CleverBot – Chatbot trị chuyện nổi tiếng nhất thế giới

Hình 1.2 Một giao diện của Cleverbot

Cleverbot là một phần mềm chatbot sử dụng thuật tốn trí tuệ nhân tạo để thiết lập
một cuộc trị chuyện với con người. Nó được tạo ra bởi nhà khoa học nghiên cứu về
AI tên là Rollo Carpenter. Người tiền nhiệm của nó là Jabberwacky. Dự án được bắt
đầu vào năm 1996 và chính thức được đưa lên mạng vào năm 1997. Trong khoảng
thập kỉ đầu tiên trong sự tồn tại của nó, Cleverbot học cách giao tiếp thơng qua việc
lắng nghe hàng nghìn cuộc trị chuyện giữa ơng Carpenter với những người đồng sự
của ông. Sau khi phiên bản web của Cleverbot được ra mắt, con số này đến nay đã lên
tới 150 triệu
Một số thành tích nổi bật của Cleverbot bao gồm: Trong bài thử Turing được tổ chức
chính thức tại ngày hội Techniche 2011 tại Học viện công nghệ Guwahati Ấn Độ.
Cleverbot đạt được điểm tỉ lệ 59.3% số người tham gia đồng ý đây là con người, đạt
được với 1334 phiếu bầu, so với tỉ lệ 63.3% mà người thật. Số điểm trên 50.5% được
xét là đạt bài kiểm tra này
Thay vì sử dụng một kịch bản hoặc các quy định cho trước, Cleverbot sử dụng logic
mở để tìm kiếm một cách phản hồi phù hợp từ dữ liệu chính là các cuộc trị chuyện
trước đó của Cleverbot với người dùng

21



1.2.2

Google – Nền tảng tra cứu thông tin lớn nhất thế giới

Hình 1.3 Giao diện tra cứu thơng tin của Google

Google là nền tảng cơng cụ tìm kiếm lớn nhất thế giới hiện tại, với 92% lưu lượng yêu
cầu tìm kiếm diễn ra tại đây và cũng biến Google trở thành trang web được truy cập
nhiều nhất thế giới. Tuy nhiên cái ta quan tâm ở đây là Google Knowledge Graph.
Đây là dịch vụ giúp Google thu thập thông tin từ nhiều nguồn khác nhau và cung cấp
thơng tin đó cho người dùng ngay tại trang hiện kết quả tìm kiếm. Thơng tin đó có thể
là về một cá nhân, tập thể, thời tiết, chứng khốn, v.v. Và nó cũng trở thành nền tảng
để các trợ lý ảo như Google Home có thể trả lời câu hỏi của người dùng
1.3 Đối tượng nghiên cứu
Đồ án này hướng đến nghiên cứu các đối tượng sau
 Các công nghệ
o MongoDB
o Express.js
o React.js
o Node.js
o Javascript (ECMAScript 6)
o Visual Studio Code
o Wit.ai

22


 Đối tượng phạm vi đề tài hướng đến

o Người có nhu cầu tra cứu thơng tin
o Người có nhu cầu trò chuyện với một phong cách giống người
1.4 Phạm vi nghiên cứu
Ứng dụng YourChatStarter được viết chủ yếu bằng ngơn ngữ lập trình Javascript
(Chuẩn ECMAScript 6). Ngồi ra nhóm phát triển sẽ tiến hành xây dựng hệ thống
frontend để tạo môi trường giao tiếp với người dùng sử dụng React, phần chatbot cũng
một số tính năng khác sẽ được phát triển chạy trên Node.js và giao tiếp với frontend
sử dụng Express.js, Dữ liệu được quản lý bằng MongoDB. Hệ thống được cài đặt
bằng Visual Studio Code
1.5 Phương pháp nghiên cứu
Nhóm đã sử dụng các phương pháp nghiên cứu:





Đọc tài liệu thiết kế các cơng nghệ sử dụng
Phân tích các ứng dụng gần giống với mục tiêu của đồ án
Đọc các tài liệu hướng dẫn thêm
Phân tích mã nguồn các dự án tương tự

1.6 Nhiệm vụ của đề tài
Đề tài: “Tìm hiểu ChatBot framework và xây dựng ứng dụng minh họa” sẽ bao gồm 2
nhiệm vụ chính
 Tìm hiểu về Chatbot Framework
o Tìm hiểu chung về Chatbot và cách thức giải quyết các vấn đề trong
việc thiết kế một Chatbot
o Tìm hiểu về các Chatbot Framework phổ biến, phân tích được điểm
mạnh cũng như điểm yếu của chúng, từ đó chon ra Framework phù hợp
để nghiên cứu kĩ hơn

o Tìm hiểu sâu hơn về một Chatbot Framework, cụ thể về các thành phấn
chính cấu tạo nên Framework, cách cài đặt, sử dụng
o Trình bày kết quả tìm hiểu trong báo cáo này
 Xây dựng ứng dụng minh họa (YourChatStarter) có những chức năng sau đây.
o Đăng kí: Đăng kí tài khoản để sử dụng trong hệ thống
o Đăng nhập: Đăng nhập vào tài khoản để sử dụng hệ thống
o Xem thơng tin người dùng
o Mua gói cao cấp của hệ thống (Bao gồm tính năng thanh tốn online)
23


o Quản lý đơn hàng
o Màn hình giao tiếp với Chatbot (mô phỏng một cửa sổ chat)
 Xây dựng Chatbot giao tiếp với người dùng thông qua YourChatStarter với khả
năng
o
o
o
o
o
o
o
o

Chào hỏi
Cung cấp thông tin về thời tiết
Cung cấp thông tin về tỉ giá
Thực hiện phép toán
Dịch thuật theo yêu cầu
Thu thập thơng tin để cá nhân hóa phản hồi

Phản hồi để xây dựng một chuỗi hội thoại
Phản hồi các trường hợp đầu vào không như dự định

2 CƠ SỞ LÝ THUYẾT
2.1 Tổng quan về ECMAScript
2.1.1

Khái niệm

ECMAScript là một chuẩn hóa của các ngôn ngữ client side cho Jscript, Javascript,
Actionscript. Và nó đã được cấp bản quyển bởi tổ chức ECMA International.
Vào cuối năm 1995 trên thế giới xuất hiện một ngôn ngữ kịch bản được phát triển bởi
Brendan Eich (nhân viên của Netscapce) có tên là Mocha và chỉ ngay sau đó một thời
gian nó lại được đổi tên thành LiveScript và cuối cùng là Javascript (tên hiện tại). Và
tiếp đó vào tháng 3 năm 1996 trình duyệt Netscape Navigator 2.0 ra đời và đã hỗ trợ
Javascript. Sau đó Microsoft cũng cho ra đời một ngơn ngữ tương tự có tên là JScript
để cạnh tranh với Netscape và nó đã bắt đầu được hỗ trợ từ internet Explorer 3.0 (8 1996).
Sau đó Netscape đã chuyển Javascript đến ECMA International để làm cơng tác chuẩn
hóa và viết đặc tả... Cái tên ECMAScript đã được hình thành từ đây.
Về cơ bản thì ECMAScript chính là chuẩn của ngơn ngữ Javascript ta sẽ sử dụng
trong dự án này
2.1.2

Cấu trúc

ECMAScript là một ngôn ngữ lập trình hướng đối tượng để thực hiện các tác vụ tính
tốn cũng như thao tác với các đối tượng điện tốn trong một mơi trường vật chủ.

24



ECMAScript được định nghĩa ở đây khơng có ý định trở nên tự chủ về mặt thực hiện
tác vụ tính tốn. Và đúng là như vậy, khơng có một yếu tố nào trong đặc tả này liên
quan đến việc xử lý dữ liệu đầu ra hoặc đầu vào của tác vụ tính tốn. Thay vào đó, nó
được kì vọng rằng mơi trường điện tốn chứa chương trình ECMAScript sẽ khơng chỉ
cung cấp đối tượng tính tốn và các cơ sở hạ tầng được miêu tả trong đặc tả của
ECMAScript (Ví dụ các kiểu dữ liệu, chuẩn đầu ra, đầu vào, v.v.) mà cịn cung cấp
một số đối tượng điện tốn đặc trưng của mơi trường vật chủ đó, với mơ tả và hành vi
vượt quá định nghĩa của ngôn ngữ này ngoại trừ mục đích thể hiện rằng chúng có thể
cung cấp một số tính chất nhất định có thể được truy cập hoặc một số hàm có thể được
gọi bởi chương trình viết bằng ECMAScript
2.1.3

Ưu điểm

ECMAScript là bố quy chuẩn ngơn ngữ scripting trên trình duyệt web và Javascript
chính là hiện thân của ECMAScript. Lợi ích của việc dùng ECMAScript tương đương
với sử dụng Javascript, bao gồm:
 Xử lý logic bên phía máy khách đem lại trải nghiệm người dùng nhanh hơn.
Bắt nguồn từ việc bớt đi nhu cầu phải gọi từ mày chủ. Ngay cả với sự tồn tại
cảu máy chủ thì với bản chất của Javascript là bất động bộ thì việc liên lạc với
máy chủ sẽ diễn ra đằng sau trình duyệt và khơng làm ảnh hưởng tới việc người
dùng tương tác với trang web
 Ngay từ ban đầu thì mục tiêu của Javascript chính là đem lại tương tác người
dùng lên các trang web. Giờ đây nó đang làm điều đó với nhiều loại ứng dụng
hơn cả. Ngày nay những framework như Vue.js, Angular hay React đã đem trải
nghiệm người dùng lên tầm cao mới.
 JavaScript đứng đằng sau bất kì thiết kế web responsive nào. Trong bối cảnh
càng ngày nhà phát triển phải thiết kế ứng dụng của mình phù hợp với nhiều
loại thiết bị với nhiều kích thước khác nhau. Kết hợp HTML5, CSS3 cũng

Javascript cho phép nhà phát triển đạt được điều đó chỉ với một tập mã nguồn.
 Javascript dễ học và có thể được đưa ngày vào quy trình phát triển. Cú pháp
của Javascript dễ hiểu vầ linh hoạt cho người mới bắt đầu. Đơn giản hóa quy
trình phát triển các phần mềm phức tạp hơn bằng cách cho phép nhà phát triển

25


×