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

Tìm hiểu về Microsoft Bot 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 (1.5 MB, 45 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

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

ĐỒ ÁN 1

Tìm hiểu về Microsoft Bot Framework và xây dựng ứng
dụng minh họa

Đồ án 1 – SE121.L11.PMCL – VN
Giảng viên hướng dẫn: Thầy TRẦN ANH DŨNG
Sinh viên thực hiện:

Lê Đức Vinh

1

-17521262

TP HỒ CHÍ MINH, 18/01/2021


ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

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

Lê Đức Vinh

-17521262



ĐỒ ÁN 1

Tìm hiểu về Microsoft Bot Framework và xây dựng ứng
dụng minh họa

KỸ SƯ/ CỬ NHÂN NGÀNH KĨ THUẬT PHẦN MỀM

GIẢNG VIÊN HƯỚNG DẪN
Thầy TRẦN ANH DŨNG

TP HỒ CHÍ MINH, 2021

2


LỜI CẢM ƠN

Lời đầu tiên, em xin bày tỏ lòng biết ơn sâu sắc đến thầy Trần Anh Dũng – Giảng
viên hướng dẫn chúng em thực hiện Đồ án 1, thầy đã cùng đồng hành và tận tình hướng
dẫn cho chúng em qua từng giai đoạn của đồ án. Nhờ có sự giúp đỡ nhiệt tình của thầy
mà chúng em có thể hoàn thành được được đồ án này một cách tốt nhất.
Vì kiến thức của chúng em vẫn cịn hạn hẹp nên không thể tránh khỏi những thiếu
sót trong quá trình thực hiện đồ án. Tuy nhiên, chúng em đã cố gắng hoàn thành đúng hạn
và hạn chế các lỗi nhiều nhất có thể. Nhóm chúng em luôn mong đợi nhận được những ý
kiến đóng góp quý báu từ thầy và qua đó có thể rút kinh nghiệm, tự sửa chữa, hồn thiện
bản thân mình trên tinh thần nghiêm túc, tự giác học hỏi.
Trong quá trình làm đề tài báo cáo, sẽ không thể tránh khỏi các thiếu sót, rất mong
nhận được phản hồi từ thầy và các bạn để góp phần làm cho bản báo cáo thêm hoàn thiện
hơn.

Chân thành cảm ơn thầy!

3


LỜI NHẬN XÉT CỦA GIẢNG VIÊN

…..
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………
………………………………………………………………………………………

………………………………………………………………………………….
4


Mục lục
Chương 1 . Mở đầu..........................................................................................................7
1.1

Lý do chọn đề tài.................................................................................................7

1.2

Mục tiêu nghiên cứu...........................................................................................7

1.3

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

1.4

Đối tượng hướng đến..........................................................................................7

Chương 2 . Giới thiệu hệ thống mã nguồn mở và Microsoft Bot Framework............8
2.1

Giới thiệu về phần mềm mã nguồn mở.............................................................8

2.1.1

Lợi ích của việc sử dụng phần mềm mã nguồn mở...................................8


2.1.2

Khuyết điểm của việc sử dụng hệ thống mã nguồn mở.............................9

2.2

Bot là gì?..............................................................................................................9

2.3

Một số nền tảng xây dựng Chatbot nổi tiếng....................................................9

2.4

Giới thiệu Microsoft Bot Framework..............................................................10

Chương 3 . Cài đặt môi trường phát triển Bot............................................................12
3.1

Cài đặt các môi trường.....................................................................................12

3.1.1

Cài đặt Node.js...........................................................................................12

3.1.2

Cài đặt Bot Framework Emulator............................................................12


3.1.3 Cài đặt phiên bản mới nhất của Yeoman và Yeoman generator for Bot
Framework v4..........................................................................................................12
3.1.4
3.2

Cài đặt Ngrok:............................................................................................12

Tạo Bot bằng cách sử dụng cổng Azure Bot Service......................................12

3.2.1

Cài đặt.........................................................................................................12

3.2.2

Kiểm tra bot................................................................................................15

3.2.3

Tải xuống source code................................................................................15

3.3

Cài đặt bot sử dụng lệnh trên Terminal..........................................................15

3.3.1

Giao tiếp với Bot.........................................................................................16

Chương 4 . Thiết kế Bot................................................................................................18

4.1

Các nguyên tắc khi thiết kế Bot.......................................................................18

4.1.1

Các yếu tố không đảm bảo sự thành công của Bot..................................18

4.1.2

Các yếu tố ảnh hưởng đến thành công của bot........................................18

4.2

Thiết kế Tương tác đầu tiên với người dùng...................................................19
5


4.3

Thiết kế và kiểm sốt luồng hội thoại..............................................................21

4.3.1

Quy trình hội thoại theo thủ tục................................................................21

4.3.2

Xử lý gián đoạn..........................................................................................22


4.3.3

Thiết kế điều hướng bot.............................................................................23

4.4

Thiết kế trải nghiệm người dùng.....................................................................24

4.4.1

Rich user controls.......................................................................................24

4.4.2

Cards...........................................................................................................24

4.4.3

Hiểu văn bản và ngôn ngữ tự nhiên (LUIs)..............................................29

Chương 5 . Phát triển và xây dựng bot........................................................................30
5.1

Tìm hiểu bài tốn..............................................................................................30

5.1.1

Đặt vấn đề...................................................................................................30

5.1.2


Các u cầu cơ bản.....................................................................................30

5.2

Phương án xây dựng bot..................................................................................30

5.2.1

Giới thiệu về hộp thoại thác nước.............................................................30

5.2.2

Thuộc tính ngữ cảnh Waterfall step.........................................................31

5.2.3

Prompt........................................................................................................32

5.3

Tiến hành xây dựng bot....................................................................................33

5.4

Kiểm tra bot......................................................................................................35

Chương 6 . Tổng kết......................................................................................................44
6.1


Kết quả thu được..............................................................................................44

6.2

Khó khăn gặp phải............................................................................................44

6.3

Hướng phát triển trong tương lai....................................................................44

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

6


Chương 1 . Mở đầu
1.1 Lý do chọn đề tài
Hiện nay, với tình hình các ơng lớn đang tập trung đầu tư vào Machine Learning, AI
thì việc phát triển chatbot để có thể ứng dụng hai thứ trên vào dịch vụ,… là điều vô cùng
tất yếu. Với các nền tảng xây dựng chatbot lớn như Chatfuel, Messnow, ManyChat,
ChattyPeople,… các nhà phát triển có thể tùy thích tạo ra và phát triển một Bot phục vụ
cho nhu cầu cá nhân hoặc nhu cầu doanh nghiệp.
Theo như thống kê năm 2018, 15% tổng số khách hàng liên lạc với doanh nghiệp
thông qua chatbot. Điều này rất là bất ngờ vì các nền tảng hỗ trợ và phát triển chatbot chỉ
vừa bắt đầu từ tháng 4/2016. Theo một số thống kê nữa là 75% người dùng thích giao
tiếp với chatbot vì khả năng trả lời ngay lập tức và hoạt động gần như 24/24 (trừ khi phải
bảo trì).
Nhận thấy xu hướng, tiềm năng phát triển của Bot, cùng với đó là một cộng đồng to
lớn người dùng và nhà phát triển đối với Bot, nhóm em xin phép chọn đề tài này để làm
đối tượng nghiên cứu môn học Đồ án 1


1.2 Mục tiêu nghiên cứu
Dựa vào các tài liệu được cung cấp sẵn và đầy đủ. Mục tiêu của đồ án là tìm hiểu
khái quát về khái niệm Bot nói chung và nền tảng xây dựng Bot của Microsoft nói riêng.
Từ đó, dựa vào hệ thống mã nguồn mở, xây dựng một Bot có chức năng cơ bản phục vụ
việc tuyển dụng của một số công ty có nhu cầu.

1.3 Phương pháp nghiên cứu
Để hoàn thành đồ án và bài báo cáo này, nhóm em đã tham khảo các tài liệu hướng
dẫn được cung cấp trên trang chủ Bot Framework SDK documentation của Microsoft.
Tham khảo các mẫu bot có sẵn cũng như trải nghiệm giao tiếp với một số bot để có thể
rút ra dược tu duy thiết kế và hiện trạng thực tế. Sau đó tiến hành thực hiện hóa bằng
cách xây dựng một Bot cung cấp một số khả năng giao tiếp cơ bản mà nhóm mong muốn.

1.4 Đối tượng hướng đến
7


Đối tượng mà đồ án này hướng đến là một số bộ phận tuyển nhân sự của một số
công ty đang gặp nhu cầu khó khăn về việc tuyển dụng trong thời kỳ cách ly dịch bệnh.
Cấu trúc bài báo cáo
Chương 1: Lời mở đầu
Chương 2: Giới thiệu hệ thống mã nguồn mở và Microsoft Bot Framework
Chương 3: Cài đặt môi trường phát triển Bot
Chương 4: Thiết kế bot
Chương 5: Phát triển và xây dựng Bot
Chương 6: Tổng kết

Chương 2 . Giới thiệu hệ thống mã nguồn mở và Microsoft Bot
Framework

2.1 Giới thiệu về phần mềm mã nguồn mở

Phần mềm mã nguồn mở là phần mềm có mã nguồn được công bố công khai, cho
phép người dùng sử dụng miễn phí và có quyền sửa đổi, cải tiến, thay đổi mã nguồn
theo một số quy tắc chung nhất định được quy định trong giấy phép phần mềm nguồn
mở (Open-source License). Một số giấy phép phần mềm mã nguồn mở phổ biến có
thể kể đến như Apache License 2.0, GNU GPL, MIT License, Mozilla Public License
2.0,…
2.1.1 Lợi ích của việc sử dụng phần mềm mã nguồn mở
- Miễn phí bản quyền: Phần mềm có thể được sao chép hoàn toàn miễn phí, chúng
-

ta hồn tồn an tâm khi chia sẻ một chương trình tuyệt vời với bạn bè.
Tính bảo mật: Các lỗ hổng bảo mật trong bản thân mã nguồn đều dễ dàng nhận
thấy và nhanh chóng được "vá" bởi cộng đồng lập trình viên, người quản trị
8


cũng có thể dễ có cơ hội nhận ra các vấn đề về bảo mật khi thấy được mã nguồn
-

sản phẩm.
Chi phí triển khai: Khơng phải trả tiền bản qùn phần mềm nên chi phí đầu tư
có thể giảm xuống rất nhiều khi triển khai một hệ thống.

2.1.2 Khuyết điểm của việc sử dụng hệ thống mã nguồn mở.
- Tính tương hỗ với phần mềm mã nguồn đóng: Với những tổ chức đã đầu tư
nhiều cho việc thiết lập các định dạng lưu trữ dữ liệu và ứng dụng phần mềm
đóng, việc cố gắng tích hợp những giải pháp phần mềm nguồn mở có thể sẽ rất
-


tốn kém.
Khơng hồn tồn miễn phí: Chi phí người dùng phải trả ở đây có thể là cho các

-

yêu cầu đặc biệt, chi phí huấn luyện, đào tạo,....
Hỗ trợ kém: Tùy theo phần mềm mà bạn sử dụng có thể có được sự hỗ trợ nhất
định cũng như có thể sẽ không nhận được bất cứ sự hỡ trợ nào. Và thường thì
với các gói phần mềm miễn phí, người dùng phải đợi lâu mới nhận được phản

-

hồi.
Tính bảo mật: Bảo mật đồng thời là yếu tố tích cực, cũng là điểm yếu của các
phần mềm mã nguồn mở. Bởi vì ai cũng có thể xem bên trong mã nguồn của bạn
có những gì, có nghĩa là hacker cũng có thể tận dụng điều này nhằm chiếm
quyền điều khiển hệ thống của bạn.

2.2 Bot là gì?
Bot, hiểu đơn giản thì nó là một phần mềm mà chúng ta sẽ nói chuyện với nó để
làm việc, hoặc để giải trí. Bot có thể trở thành một trợ lý ảo cho bạn, từ việc nói
chuyện thông qua chatbot, có thể trả lời tự động tin nhắn, nhận hóa đơn, tìm kiếm, dự
đốn,…

2.3 Một số nền tảng xây dựng Chatbot nổi tiếng
Năm 2012, có hơn 14 tỷ tin nhắn được gửi thông qua các ứng dụng nhắn tin, con
số này đã tăng lên gấp đôi vào năm 2017. Các ứng dụng nhắn tin như Facebook
Messenge, WeChat, WhatsAppm Telegram, LINE, Zalo, Snapchat, … luôn nằm trong
top những ứng dụng được cài đặt nhiều nhất. Hơn nữa, với các chính sách bảo mật

ngày càng siết chặt của các cơ quan an ninh công nghệ, nhất là sau những vụ bê bối

9


của NSA về việc nghe lén các cuộc gọi của người dùng, các ứng dụng chat miễn phí
trở thành một kênh có độ tin tưởng và bảo mật cao hơn.
Từ đó các ông lớn như Facebook, Microsoft, Amazon, Google… tập trung đầu tư
phát triển AI và chatbot nhằm phục vụ các dịch vụ khách hàng
Chatbot hiện nay chỉ được xem như một đứa trẻ 6 tuổi. Các “ông lớn” Facebook,
Microsoft, Amazon và Google đều đang đầu tư vào Machine Learning, AI để Chatbot
có thể phát triển thành một cái gì đó đáng kể, thơng minh hơn và hữu ích hơn. Chúng
ta hãy cùng chờ đón những bước tiến dài, thậm chí là những bước nhảy vọt của cơng
nghệ trong thời gian sắp tới.

2.4 Giới thiệu Microsoft Bot Framework
Microsoft Bot Framework, được giới thiệu đầu năm 2016, là một nền tảng gồm
các công cụ và tài nguyên nhằm giúp cho các nhà phát triển có thể tự xây dựng
Chatbot của riêng mình. Microsoft Bot Framework bao gồm các phần chính:
 Bot Builder SDK: Bộ công cụ được chia sẻ trên GitHub dưới dạng mã nguồn
mở theo giấy phép MIT này sẽ cung cấp tất cả mọi thứ bạn cần để xây dựng
Chatbot bằng Node.js, .NET hay REST API.
 Bot Framework Developer Portal: Cho phép bạn kết nối Chatbot của mình tới
Skype, Slack, Facebook Messenger,... những kênh giao tiếp thông dụng khác.
Đơn giản chỉ việc đăng ký bot, chọn kênh giao tiếp và publish bot lên Bot
Directory.
 Bot Emulator: dùng để test và debug bot trong quá trình phát triển
 Bot Connector Service: service giúp cho bạn kết nối được với bot của bạn
thông qua việc thiết lập các channel


10


 Bot Directory: Đây là một thư mục cộng đồng chứa tất cả những bot đã được
kiểm duyệt đăng ký thông qua Developer Portal. Người dùng có thể trải
nghiệm, khám phá những bot có sẵn hoặc thêm bot mà mình phát triển vào Bot
Directory.

Chương 3 . Cài đặt môi trường phát triển Bot
3.1 Cài đặt các môi trường
3.1.1 Cài đặt Node.js
11


Tải và cài đặt Node.js tại: />Chọn phiên bản bất kì để tải về và cài đặt (nên dùng phiên bản được recomment)
3.1.2 Cài đặt Bot Framework Emulator
Tải và cài đặt phần mềm dùng để kiểm tra bot: Bot Framework Emulator tại:
/>Sau đó tiến hành cài đặt
3.1.3 Cài đặt phiên bản mới nhất của Yeoman và Yeoman generator for Bot
Framework v4
Bước 1: Mở Terminal hoặc Elevated command prompt
Bước 2: Nhập:
npm install -g npm
npm install -g yo
Bước 3: Cài đặt bộ tạo Yeoman. Yeoman là một công cụ để tạo ứng dụng.
trong Terminal nhập: npm install -g generator -botbuilder
3.1.4 Cài đặt Ngrok:
Đăng nhập và tải bản cài đặt Ngrok ở link sau: />*

Ngrok có tác dụng tạo và cấu hình đường hầm qua tường lửa để trình Bot


Emulator có thể kết nối được với Bot
-

Để kiểm tra phiên bản ngrok, dùng dịng lệnh sau trong trình Terminal:

ngrok -v

3.2 Tạo Bot bằng cách sử dụng cổng Azure Bot Service
3.2.1 Cài đặt
- Bước 1: Đăng nhập vào cổng Azure
- Bước 2: Nhấp vào Create a resource liên kết tài nguyên ở góc trái trên màn
hình

12


-

Bước 3: Trong hộp tìm kiếm, hãy nhập bot vào trong ơ tìm kiếm, chọn Web
App Bot

-

Bước 4: Trong Web App Bot, hãy nhấp vào nút Create .

13


-


Bước 5: Trong biểu mẫu Web App Bot , hãy cung cấp thông tin được
yêu cầu về bot của bạn như được chỉ định trong bảng bên dưới hình ảnh.

- Bước 6: Nhấp vào Create để tạo dịch vụ và triển khai Bot lên Cloud
3.2.2 Kiểm tra bot
14


Trong phần Bot management, nhấp vào Test in Web Chat. Azure Bot Service sẽ
tải điều khiển trò chuyện trên web và kết nối với bot của bạn

3.2.3 Tải xuống source code
Chúng ta có thể tải source code xuống để có thể tiến hành làm việc với Bot
-

Bước 1: Trong phần Bot management, chọn Build
Bước 2: Nhấp vào Download Bot source code
Bước 3: Làm theo lời nhắc để tải xuống mã, sau đó giải nén thư mục.

3.3 Cài đặt bot sử dụng lệnh trên Terminal
Thông qua sử dụng Terminal chúng ta có thể tạo Bot sử dụng Node.js hoặc C#
hoặc Typescript
- Bước 1: Mở Terminal, nhập: yo botbuilder
- Bước 2: Thực hiện nhập thông tin cần thiết cho Bot:

15


Bước 4: Sau khi tiến hành tạo xong Bot, ta có thể bắt đầu chạy bot bằng lệnh

cmd:
cd my-js-bot (my-js-bot là tên của bot vừa tạo)
npm start
*Bot sẽ được chạy trên mạng cục bộ localhost 3978
3.3.1 Giao tiếp với Bot
- Bước 1: Mở trình giả lập Bot Emulator
- Bước 2: Nhập url của bot.
*Lưu ý: Khi tạo bot thông qua cổng Azure sẽ có đường link khác, chúng
ta sẽ có được thơng qua file có đi .json hoặc .env. Cịn khi ta tạo bot
thơng qua trinh Terminal của máy tính thì bot sẽ có đường link là
http://localhost:3978/api/messages

16


-

Bước 3: Chọn Connect và tiến hành chat với Bot. Giao diện Bot
Emulator sẽ như hình bên dưới:

Chương 4 . Thiết kế Bot
17


4.1 Các nguyên tắc khi thiết kế Bot
Bot Framework cho phép các nhà phát triển tạo ra trải nghiệm bot hấp dẫn để giải
quyết nhiều vấn đề. Bằng cách học các khái niệm được mô tả trong phần này, chúng
ta sẽ được trang bị để thiết kế một bot phù hợp với nhu cầu sử dụng.
4.1.1 Các yếu tố không đảm bảo sự thành công của Bot
- Mức độ thông minh của bot: Trong hầu hết các trường hợp, không chắc

rằng việc làm cho bot của bạn thông minh hơn sẽ đảm bảo người dùng hài
lòng hoặc chấp nhận nền tảng của bạn. Trên thực tế, nhiều bot có ít khả
năng học máy hoặc ngôn ngữ tự nhiên nâng cao. Một bot có thể bao gồm
những khả năng đó nếu chúng cần thiết để giải quyết các vấn đề mà nó
được thiết kế để giải quyết, tuy nhiên bạn không nên giả định bất kỳ mối
tương quan nào giữa trí thông minh của bot và sự chấp nhận của người
-

dùng đối với bot.
Bot hỗ trợ nhiều ngôn ngữ tự nhiên (có vốn từ rộng lớn..): Bot của bạn có
thể giỏi trong các cuộc trò chuyện. Nó có thể có một kho từ vựng rộng lớn
và thậm chí có thể tạo ra những trò đùa tuyệt vời. Nhưng trừ khi nó giải
quyết các vấn đề mà người dùng của bạn cần giải quyết, những khả năng
này có thể đóng góp rất ít vào việc làm cho bot của bạn thành công. Trên
thực tế, một số bot hồn tồn khơng có khả năng đàm thoại. Và trong nhiều

-

trường hợp, điều đó lại hồn tồn ổn.
Giọng nói : Khơng phải lúc nào việc cho bot một giọng nói sẽ dẫn đến trải
nghiệm người dùng tuyệt vời. Thông thường, việc ép buộc người dùng sử
dụng giọng nói có thể dẫn đến trải nghiệm người dùng khó chịu. Khi bạn
thiết kế bot của mình, hãy ln cân nhắc liệu giọng nói có phải là kênh
thích hợp cho vấn đề nhất định hay không. Sẽ có một môi trường ồn

ào? Giọng nói có truyền đạt thông tin cần chia sẻ với người dùng không?
4.1.2 Các yếu tố ảnh hưởng đến thành công của bot
-

Bot có dễ dàng giải quyết vấn đề của người dùng với số bước tối thiểu

không?
18


-

Bot có giải quyết vấn đề của người dùng tốt hơn / dễ dàng / nhanh hơn bất
kỳ trải nghiệm thay thế nào không?

-

Bot có chạy trên các thiết bị và nền tảng mà người dùng quan tâm không?

-

Bot có thể phát hiện được không? Người dùng có tự nhiên biết phải làm gì
khi sử dụng nó khơng?

4.2 Thiết kế Tương tác đầu tiên với người dùng
Tương tác đầu tiên giữa người dùng và bot rất quan trọng đối với trải nghiệm
người dùng. Khi thiết kế bot, hãy nhớ rằng, ở tin nhắn đầu tiên, hãy đưa ra nhiều lựa
chọn để có thể gợi ý người tương tác xác định được mục đích hơn là chỉ nói "xin
chào". Khi bạn tạo một ứng dụng, bạn thiết kế màn hình đầu tiên để cung cấp các dấu
hiệu điều hướng quan trọng.
Thiết kế bot cũng như vậy. Người dùng nên hiểu một cách trực quan những thứ
như vị trí của menu và cách nó hoạt động, nơi cần trợ giúp, chính sách bảo mật là gì,
v.v. Khi bạn thiết kế một bot, tương tác đầu tiên của người dùng với bot sẽ cung cấp
cùng loại thơng tin đó.

Ví dụ:


19


Bắt đầu bot bằng một câu hỏi mở, chẳng hạn như "Tơi có thể giúp gì cho
bạn?" thường khơng được khuyến khích. Nếu bot của bạn có hàng trăm thứ khác nhau
mà nó có thể làm, rất có thể người dùng sẽ khơng thể đốn được hầu hết chúng.
Tips:
-

Menu là một công cụ có giá trị khi thiết kế bot để có trải nghiệm người
dùng tuyệt vời; đừng loại bỏ họ là không "đủ thông minh". Bạn có thể thiết
kế bot của mình để sử dụng menu trong khi vẫn hỗ trợ nhập biểu mẫu. Nếu
người dùng phản hồi với menu ban đầu bằng cách nhập thay vì chọn một
20


tùy chọn menu, bot của bạn có thể cố gắng phân tích cú pháp văn bản nhập
-

của người dùng.
Nếu bot của bạn thu thập dữ liệu cá nhân từ người dùng, điều quan trọng là
phải truyền tải điều đó và mơ tả những gì sẽ được thực hiện với dữ liệu

4.3 Thiết kế và kiểm soát luồng hội thoại
Trong một ứng dụng thông thường, giao diện người dùng (UI) bao gồm một loạt
các màn hình và một ứng dụng hoặc trang web có thể sử dụng một hoặc nhiều màn
hình khi cần thiết để trao đổi thông tin với người dùng.
Hầu hết các ứng dụng bắt đầu với màn hình chính nơi người dùng tiếp cận ban đầu
và màn hình đó cung cấp điều hướng dẫn đến các màn hình khác cho các chức năng

khác nhau như bắt đầu đơn đặt hàng mới, duyệt sản phẩm hoặc tìm kiếm trợ giúp.
Giống như ứng dụng và trang web, bot có giao diện người dùng, nhưng nó được
tạo thành từ các thông báo chứ khơng phải màn hình. Tin nhắn có thể chứa các nút,
văn bản và các yếu tố khác hoặc hoàn toàn dựa trên giọng nói.
Một bot được thiết kế tốt sẽ có luồng trò chuyện tự nhiên. Bot sẽ có thể xử lý cuộc
trò chuyện cốt lõi một cách liền mạch và có thể xử lý sự gián đoạn hoặc chuyển đổi
chủ đề một cách mượt mà.
4.3.1 Quy trình hội thoại theo thủ tục
Các cuộc trò chuyện với bot thường tập trung vào nhiệm vụ mà bot đang cố gắng
đạt được, được gọi là quy trình thủ tục. Đây là nơi bot hỏi người dùng một loạt câu
hỏi để thu thập tất cả thông tin nó cần trước khi xử lý tác vụ.
Ví dụ: Ta có thể thiết kế một mô-đun để chứa logic giúp người dùng duyệt qua các
sản phẩm và một mô-đun riêng biệt để chứa logic giúp người dùng tạo đơn đặt hàng
mới. Đây là một ví dụ về triển khai luồng hội thoại tuần tự.

21


4.3.2 Xử lý gián đoạn
Mặc dù sẽ thật tuyệt nếu người dùng luôn đi theo con đường hợp lý, tuyến tính
như vậy, nhưng nó hiếm khi xảy ra. Mọi người không phải lúc nào cũng giao tiếp theo
thứ tự tuần tự. Họ có xu hướng thường xuyên thay đổi suy nghĩ của mình.
Ví dụ: ở đây, người dùng đã có 1 hành động khác, không hề liên quan tới hành
động mà bot đã đề xuất

22


Vì thế, nên chúng ta cần phải suy xét xem có những trường hợp bất ngờ nào người
dùng có thể hành động. Từ đó đưa ra một số giải pháp xử lý gián đoạn để bot có thể

hỗ trợ người tương tác vào lúc này.
4.3.3 Thiết kế điều hướng bot
Người dùng có thể điều hướng các trang web bằng cách sử dụng đường dẫn, ứng
dụng bằng menu và trình duyệt web bằng các nút như next và back . Tuy nhiên,
không có kỹ thuật điều hướng được thiết lập tốt nào giải quyết hoàn toàn các yêu cầu
điều hướng trong bot.
Như đã thảo luận trước đó , người dùng thường tương tác với bot theo kiểu phi
tuyến tính, khiến việc thiết kế điều hướng bot luôn mang lại trải nghiệm tuyệt vời là
một thách thức.
Vì thế, để có thể xử lý gián đoạn người dùng tốt nhất, hãy làm theo những Tips
sau:


Giảm thiểu từng loại tính cách này cho bot của bạn thường có thể
được thực hiện bằng cách xử lý chính xác sự gián đoạn người dùng.



Thiết kế bot của bạn nên xem xét rằng liệu người dùng có thể cố
gắng thay đổi quy trình của cuộc trị chuyện bất cứ lúc nào. Không nên
thiết kế bot của bạn để bỏ qua đầu vào của người dùng và tiếp tục lặp lại
cùng một câu hỏi trong một vòng lặp vô tận.



Thực hiện middleware đó sẽ kiểm tra đầu vào sử dụng cho các từ
khóa mà bạn chỉ định (ví dụ: "help", "cancel", "start over", vv) và đáp ứng
một cách thích hợp.. Khơng nên thiết kế mọi hộp thoại để kiểm tra đầu vào
của người dùng cho danh sách từ khóa.




Nên thiết kế bot của bạn để ngay lập tức ghi nhận thông tin nhập của
người dùng, ngay cả trong trường hợp bot có thể mất một khoảng thời gian
để biên dịch phản hồi của nó. Không nên thiết kế cho bot của bạn trì hỗn

23


việc xác nhận thông tin nhập của người dùng cho đến khi bot hoàn tất việc
biên dịch phản hồi của nó.
Thiết kế bot của bạn để cung cấp thông tin hữu ích cho người dùng.



Khơng nên thiết kế bot của bạn để cung cấp thông tin không được yêu cầu
mà khơng hữu ích cho người dùng.
Hãy thiết kế bot của bạn để duy trì chủ đề hiện tại của cuộc trò



chuyện, trừ khi hoặc cho đến khi người dùng bày tỏ mong muốn xem lại
chủ đề trước đó. Không nên thiết kế bot của bạn để xen vào thông tin từ
các cuộc trị chuyện trước đây khi nó khơng liên quan đến cuộc trò chuyện
hiện tại.

4.4 Thiết kế trải nghiệm người dùng
Bạn có thể tạo bot với nhiều tính năng như văn bản, nút, hình ảnh, thẻ phong phú
được hiển thị ở định dạng băng chuyền hoặc danh sách, v.v. Tuy nhiên, mỗi kênh như
Facebook, Slack, v.v. cuối cùng kiểm soát cách các ứng dụng nhắn tin của nó hiển thị

các tính năng.
4.4.1 Rich user controls
Là các điều khiển giao diện người dùng phổ biến như các nút, hình ảnh, băng
chuyền và menu mà bot trình bày cho người dùng và người dùng tương tác để truyền
đạt lựa chọn và ý định.
4.4.2 Cards
Thẻ cho phép bạn giới thiệu cho người dùng của mình nhiều loại thơng điệp bằng
hình ảnh, âm thanh và / hoặc có thể lựa chọn và giúp hỗ trợ luồng hội thoại.

24


1. Adaptive Card

Định dạng trao đổi thẻ mở được hiển thị dưới dạng đối tượng JSON. Thường được
sử dụng để triển khai thẻ chéo kênh. Thẻ thích ứng với giao diện của từng kênh lưu
trữ.
1. AnimationCard: Một thẻ có thể phát GIF động hoặc video ngắn.

25


×