Tải bản đầy đủ (.pdf) (87 trang)

Phát triển website bán đĩa game tích hợp chat bot

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.59 MB, 87 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
-----🙞🙜🕮🙞🙜-----

BÁO CÁO ĐỒ ÁN 1 – LỚP SE121.M21

ĐỀ TÀI:

PHÁT TRIỂN WEBSITE BÁN ĐĨA GAME TÍCH HỢP
CHAT BOT

GVHD: Ths.Nguyễn Thị Thanh Trúc


Sinh viên thực hiện:

Mai Long Thành

19522232

Nguyễn Thiện Sua

19522144

Thủ Đức, tháng 6 năm 2022


Báo cáo cuối kì Đồ án 1

LỜI CẢM ƠN


Lời đầu tiên, nhóm tác giả xin chân thành cảm ơn q thầy cô khoa Công nghệ
Phần mềm, trường Đại Học Công Nghệ Thơng Tin, ĐHQG TP.HCM, đã tận tình
hướng dẫn nhóm trong suốt thời gian qua. Những kiến thức mà thầy cơ đã truyền
đạt là nền tảng quan trọng để nhóm có thể hồn thành đề tài này.
Nhóm tác giả xin gửi lời cảm ơn chân thành đến ThS. Nguyễn Thị Thanh Trúc,
cảm ơn cơ đã tận tình hướng dẫn và tạo điều kiện tốt nhất cho nhóm hồn thành đề
tài này. Những lời động viên, góp ý chân tình của cơ là động lực q báu để nhóm
vượt qua những khó khăn khi tìm hiểu và thực hiện đề tài. Trong thời gian qua,
nhóm tác giả đã cố gắng vận dụng những kiến thức nền tảng đã học, kết hợp học
hỏi và tìm hiểu cơng nghệ mới để ứng dụng xây dựng đề tài mơn học. Tuy nhiên
trong q trình thực hiện, do kiến thức và kinh nghiệm còn nhiều hạn chế, khó
tránh khỏi những thiếu sót. Chính vì vậy, nhóm tác giả rất mong nhận được sự góp
ý từ q thầy cơ để nhóm hồn thiện thêm những kiến thức mà nhóm đã học tập,
làm hành trang q báu cho nhóm trong cơng việc sau này.
Sau cùng, nhóm tác giả xin kính chúc q thầy cơ ở khoa Cơng nghệ phần
mềm và cô Nguyễn Thị Thanh Trúc thật dồi dào sức khỏe, niềm tin để tiếp tục
thực hiện sứ mệnh cao đẹp của mình là truyền đạt kiến thức cho thế hệ mai sau.
Xin chân thành cảm ơn quí thầy cơ !
Nhóm tác giả

iii


Báo cáo cuối kì Đồ án 1

NHẬN XÉT
(Của giáo viên hướng dẫn)
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................

..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
..........................................................................................................................
iv


Báo cáo cuối kì Đồ án 1

DANH SÁCH THÀNH VIÊN NHÓM

Tên thành viên

MSSV

Mai Long Thành

19522232


Nguyễn Thiện Sua

19522144

v


Báo cáo cuối kì Đồ án 1

MỤC LỤC
TỔNG QUAN VỀ ĐỀ TÀI ............................................................... 1
1.1 Mơ tả bài tốn và xác định yêu cầu ............................................................. 1
1.2 Khảo sát hiện trạng ...................................................................................... 2
Hiện trạng tổ chức .............................................................................. 2
Hiện trạng tin học .............................................................................. 3
1.3 Khảo sát một số trang web hiện có.............................................................. 3
Website nshop.com ............................................................................ 3
Website muagame.vn ......................................................................... 5
1.4 Mục tiêu đề tài ............................................................................................. 6
1.5 Đối tượng nghiên cứu .................................................................................. 6
1.5.1 Lý Thuyết ........................................................................................... 6
1.5.2 Thực Tiễn ........................................................................................... 6
1.6 Các bước nghiên cứu ................................................................................... 6
1.7 Bố cục đề tài ................................................................................................ 7
CƠ SỞ LÝ THUYẾT ........................................................................ 7
2.1 Spring boot. ................................................................................................. 7
2.2 MySQL ........................................................................................................ 8
2.3 ReactJS ........................................................................................................ 9
2.4 Javascript ................................................................................................... 10

2.5 Spring Security .......................................................................................... 10
2.6 Rasa

...................................................................................................... 11
Khái niệm ......................................................................................... 11
Cấu trúc của một Rasa Chatbot........................................................ 11
Cài đặt Rasa ..................................................................................... 12
Cấu trúc project Rasa ....................................................................... 12
Xây dựng project.............................................................................. 15
PHÂN TÍCH ĐẶC TẢ YÊU CẦU.................................................. 19
vi


Báo cáo cuối kì Đồ án 1

3.1 Usecase, đặc tả usecase ............................................................................. 19
Sơ đồ usecase ................................................................................... 19
Đặc tả usecase .................................................................................. 21
3.2 Sequence diagram ...................................................................................... 50
Đăng nhập ........................................................................................ 50
3.3 Activity diagram ........................................................................................ 51
3.4.1 Chatbot ............................................................................................. 51
3.4 Collaboration diagram ............................................................................... 51
Thêm sản phẩm vào giỏ hàng .......................................................... 51
THIẾT KẾ KIẾN TRÚC ................................................................. 52
4.1 Kiến trúc tổng thể ...................................................................................... 52
4.2 Kiến trúc từng thành phần ......................................................................... 53
Website (client) ................................................................................ 53
MySQL ............................................................................................ 53
THIẾT KẾ DỮ LIỆU ...................................................................... 54

5.1 Sơ đồ logic ................................................................................................. 55
5.2 Mô tả sơ đồ logic ....................................................................................... 55
THIẾT KẾ GIAO DIỆN .................................................................. 58
6.1 Sơ đồ các màn hình ................................................................................... 58
6.2 Danh sách các màn hình ............................................................................ 58
6.3 Mơ tả các màn hình ................................................................................... 59
Đăng nhập ........................................................................................ 59
Đăng ký ............................................................................................ 60
Màn hình thơng tin cá nhân ............................................................. 61
Trang chủ ......................................................................................... 62
Danh sách địa chỉ ............................................................................. 64
Màn hình thêm địa chỉ ..................................................................... 66
Màn hình giỏ hàng ........................................................................... 66
Màn hình thanh tốn ........................................................................ 68
vii


Báo cáo cuối kì Đồ án 1

Màn hình đặt hàng thành cơng ......................................................... 69
Màn hình bảng điều khiển ............................................................. 69
Màn hình người dùng ..................................................................... 70
Màn hình danh sách game ............................................................. 71
Màn hình thêm game ..................................................................... 72
Màn hình chi tiết game .................................................................. 74
PHÁT TRIỂN VÀ CÀI ĐẶT ỨNG DỤNG.................................... 75
7.1 Môi trường phát triển ứng dụng ................................................................ 75
7.2 Môi trường triển khai ứng dụng ................................................................ 75
7.3 Kết quả đánh giá ........................................................................................ 75
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ....................................... 75

8.1 Kết luận ..................................................................................................... 75
Kết quả đạt được .............................................................................. 76
8.2 Điểm đặc sắc của đề tài ............................................................................. 77
8.3 Hướng phát triển ........................................................................................ 77
TÀI LIỆU THAM KHẢO...................................................................................... 78
BẢNG PHÂN CÔNG CÔNG VIỆC ..................................................................... 78

viii


Báo cáo cuối kì Đồ án 1

TỔNG QUAN VỀ ĐỀ TÀI
1.1 Mơ tả bài tốn và xác định u cầu
Khi nhắc tới trò chơi điện tử hay game, nhiều người thường sẽ có cái nhìn
khơng q tích cực, thậm chí cịn có khơng ít người nghĩ rằng nó mang lại những điều
tiêu cực như các hành vi bạo lực, nghiện game. Tuy nhiên khi chúng ta cùng bình luận
và nhìn theo một hướng khác thì game hay trị chơi vẫn mang lại giá trị tinh thần
không hề nhỏ, nhất là trong thời kì 4.0 và đợt dịch vừa qua, khi con người khơng cịn
nhiều những dịch vụ giải trí để giải tỏa stress trong học tập, trong cơng việc thì những
giây phút thư giản chơi game đóng vai trị hết sức quan trọng trong việc giải tỏa căng
thẳng mệt mỏi. Có thể thấy các trị chơi hay game đã có được một cái nhìn thiện cảm
hơn từ phía mọi người. Điển hình là các đĩa chơi game đang dần dần trở nên cực kỳ
phổ biến và phù hợp với nhiều người hơn bao giờ hết. Chúng ta có thể thấy khắp mọi
nơi trên thế giới, đã mọc lên muôn vàn cửa hàng bán đĩa game, các website cho phép
mua sản phẩm trực tuyến giao dịch xuyên quốc gia. Song ở Việt Nam, nhu cầu về
game và các trò chơi giải trí cũng khơng hề thấp, thế nhưng khi dạo quanh internet lại
hiếm có những trang web chính chủ của người Việt phát triển để cung cấp các trò chơi
đến những người Việt cũng có sở thích chơi game. Để mua được game họ phải làm
các thủ tục về mua hàng nước ngồi và bắt buộc phải thanh tốn Visa, điều này gây

khơng ít khó dễ cho đại đa số người Việt.
Nhận thấy nhu cầu về mua game ngày càng lớn, nhóm chúng em đã quyết định
chọn đề tài “PHÁT TRIỂN ỨNG WEBSITE BÁN ĐĨA GAME” (đồ án được ThS.
Nguyễn Thị Thanh Trúc nắm vai trò giảng viên hướng dẫn).
Nền tảng dễ dàng tiếp cận người dùng và tối ưu hoá trên nhiều thiết bị nhất vẫn
là Website – khi mà cả điện thoại và máy tính đều đồng bộ được mà khơng tiêu tốn
bao nhiêu tài ngun của máy, nhóm chúng em quyết định triển khai ứng dụng trên
môi trường web – xây dựng một website bán đĩa game mang tên là TStore.
Các vấn đề cần phải xử lý trong website mà đề tài đặt ra là:

1


Báo cáo cuối kì Đồ án 1

Tên u cầu

STT

Khía cạnh

System
Admin

1

Quản lý user (lưu trữ, thống kê,...)

2


Hệ thống các trò chơi thành các đề mục rõ ràng (Trị chơi được
u thích nhất, trị chơi có nhiều lượt mua,..)

User

3

Lưu trữ đơn hàng

User

4

Hệ thống tìm kiếm trị chơi.

User

5

Lưu trữ lại thơng tin các trị chơi mà người dùng u thích

User

6

Lưu trữ lại thơng tin các trò chơi mà người dùng đã xem

User

7


Dễ dàng thanh toán

User

1.2 Khảo sát hiện trạng
Hiện trạng tổ chức
1. Ban quản trị ( admin)
Là người quản lý hệ thống và tương tác trực tiếp với cơ sở dữ liệu.
Admin đóng vai trò quản lý các dữ liệu trên trang web như các trị chơi, thơng
tin trị chơi, thể loại. Ngồi ra Admin cũng có nhiệm vụ quản lý người dùng.
Vai trị quan trọng của Admin trong q trình hoạt động của một hệ thống một
cụ thể mà họ quản trị, chính là việc xem xét điều phối và kiểm sốt tồn bộ quy
trình hoạt động trên hệ thống hay sử dụng những thơng tin phân tích để đưa ra
những chiến lược cho phù hợp. Admin là người chịu toàn bộ trách nhiệm với
hệ thống, là người xét duyệt toàn bộ hệ thống.
2


Báo cáo cuối kì Đồ án 1

2. Thành viên
User: là một tài khoản đã được đăng ký thành công, sau khi đăng nhập
và nhập đầy đủ thơng tin sẽ có thể truy cập và sử dụng các tính năng cho người
dùng; bao gồm: Chọn, chơi game, tra cứu từ vựng đã học, xem số liệu và bảng
xếp hạng.
Hiện trạng tin học
Ngày nay, cùng với sự phát triển của nền công nghiệp 4.0, các trang web điện
tử được phát triển nhầm mang lại lợi ích cho cửa hàng đã khơng cịn quá xa lạ, hơn thế
nữa các trang website còn dễ dàng đồng bộ trên cả máy tính lẫn điện thoại giúp người

dùng thuận tiện và thoải mái sử dụng, chỉ cần có internet thì người dùng có thể xem
chi tiết các sản phẩm, thông số cũng như phản hồi mà không cần ra tận cửa hàng,
show room. Nắm bắt được xu thế thị trường, Tstore được phát triển trên nền tảng
website dễ dàng cho việc mua hàng, thanh toán, tiếp cận đến nhiều người có sở thích
mua game về chơi.
1.3 Khảo sát một số trang web hiện có
Website nshop.com

3


Báo cáo cuối kì Đồ án 1

Tổng quan
Trang web nshop.com buôn bán, giới thiệu các sản phẩm đĩa game, phụ kiện
chơi game, các loại mơ hình đồ chơi đến nhiều đối tượng khách hàng, sử dụng giao
diện thuần html, css tích hợp với API Messenger hỗ trợ khách hàng.
Các chức năng chính
• Đặt hàng
• Thanh tốn online
• Tìm kiếm trị chơi
• Lọc trị chơi theo thể loại
• Phân mục sản phẩm
• Quản lý giỏ hàng
• Liên kết với API messenger hỗ trợ chat với khách hàng
Hạn chế
• Giao diện đơn giản, rối mắt
• Cách phối màu chưa làm nổi bật lên chủ thể
• Chưa có chatbot hỗ trợ đặt hàng
4



Báo cáo cuối kì Đồ án 1

Website muagame.vn

Tổng quan
Trang web muagame.vn buôn bán các mặt hàng liên quan đến game như: đĩa
game, phụ kiện chơi game, máy chơi game, thẻ game, ngồi ra cịn có các sản phẩm
secondhand hướng đến nhiều đối tượng khách hàng, sử dụng giao diện html, css cơ
bản để xây dựng front-end.
Các chức năng chính
• Đặt hàng
• Thanh tốn online
• Tìm kiếm trị chơi
• Lọc trị chơi theo thể loại
• Phân mục sản phẩm
• Quản lý giỏ hàng
Hạn chế
• Giao diện quá đơn giản, xấu
• Lựa chọn màu sắc chưa hợp lý
• Hiệu ứng hover chưa làm nổi bật lên chủ thể
• Chưa có chatbot hỗ trợ đặt hàng
5


Báo cáo cuối kì Đồ án 1

1.4 Mục tiêu đề tài
Mục tiêu đề tài là nghiên cứu các thuật toán, công nghệ và thực hiện các khảo

sát về hiện trạng, về nhu cầu của người dùng từ đó đưa ra giải pháp giúp giải quyết
các vấn đề mà đề tài đặt ra nhầm cải thiện, tạo nên một website bán hàng online hồn
chỉnh – tối ưu hố về mọi mặt, mang lại một sản phẩm chất lượng của người Việt.
1.5 Đối tượng nghiên cứu
1.5.1 Lý Thuyết
1. Nghiên cứu lập trình web
2. Nghiên cứu ngơn ngữ lập trình Javascript
3. Nghiên cứu framework back-end spring boot
4. Nghiên cứu framework front-end ReactJS
5. Nghiên cứu spring security
6. Nghiên cứu MySQL
7. Nghiên cứu JWT
8. Nghiên cứu chatbot RASA
1.5.2 Thực Tiễn
1. Xây dựng ứng dụng gồm client, server
2. Xây dựng website bằng tiếng Việt
3. Người dùng có thể xem các sản phẩm mà mình u thích, đã thêm vào giỏ
hàng.
4. Người dùng có thể xem lại những trị chơi mà mình đã xem.
1.6 Các bước nghiên cứu


Phân tích u cầu



Lựa chọn cơng nghệ




Nghiên cứu cơ sở lý thuyết dựa trên cơng nghệ đã chọn



Áp dụng lý thuyết vào xây dựng ứng dụng thực tiễn
6


Báo cáo cuối kì Đồ án 1



Kiểm tra, tham khảo các ứng dụng khác để tối ưu hóa ứng dụng

1.7 Bố cục đề tài


Cơ sở lý thuyết



Phân tích thiết kế



Giải pháp xây dựng



Triển khai ứng dụng




Kết luận và hướng phát triển

CƠ SỞ LÝ THUYẾT
2.1 Spring boot.

Trước khi tìm hiểu về Spring Boot, có lẽ chúng ta cần phải có chút kiến thức
cơ bản về spring frame trước bởi lẽ Spring Boot là một phần cực kì quan trọng của
spring frame.

7


Báo cáo cuối kì Đồ án 1

Về Spring thì đây là một framework được ra đời nhầm giúp các nhà phát triển
có thể xây dựng hệ thống và chạy ứng dụng trên JVM một cách thuận tiện, đơn giản
và nhanh chóng. Đây là một mã nguồn mở được phát triển và rất nhiều người sử dụng.
Spring framework là tập hợp gồm rất nhiều các dự án nhỏ khác nhau như:
Spring MVC (sử dụng để xây dựng các ứng dụng trên nền tảng web), Spring Data,
Spring Boot,…
Quay lại với Spring Boot, đây là một trong số những module của Spring
framework chuyên cung cấp các tính năng Rapid Application Development (RAD) để
tạo ra và phát triển nhanh các ứng dụng độc lập dựa trên spring.
Spring Boot ra đời với mục đích loại bỏ những cấu hình phức tạp của Spring,
nó khơng cần yêu cầu cấu hình XML và nâng cao năng suất cho các nhà phát triển.
Với sự góp mặt của Spring Boot, hệ sinh thái Spring đã trở nên mạnh mẽ, phổ biến và
hiệu quả hơn bao giờ hết.

2.2 MySQL

MySQL là một hệ quản trị cơ sở dữ liệu có mã nguồn mở phổ biến nhất thế giới
và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng. Bởi lẽ
đây là một hệ quản trị cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả
chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích
rất mạnh. Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có
truy cập CSDL trên internet. Người dùng có thể tải về MySQL miễn phí từ trang chủ.
8


Báo cáo cuối kì Đồ án 1

MySQL có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32
cho các hệ điều hành dòng Windows, Linux, Mac OS X, Unix, FreeBSD, NetBSD,
Novell NetWare, SGI Irix, Solaris, SunOS,..
2.3 ReactJS

ReactJS là một thư viện JavaScript mã nguồn mở được thiết kế bởi Facebook để
tạo ra những ứng dụng web hấp dẫn, nhanh và hiệu quả với mã hóa tối thiểu. Mục
đích cốt lõi của ReactJS khơng chỉ khiến cho trang web phải thật mượt mà còn phải
nhanh, khả năng mở rộng cao và đơn giản.
Sức mạnh của nó xuất phát từ việc tập trung vào các thành phần riêng lẻ. Chính vì
vậy, thay vì làm việc trên tồn bộ ứng dụng web, ReactJS cho phép một developer có
thể phá vỡ giao diện người dùng phức tạp thành các thành phần đơn giản hơn.

9


Báo cáo cuối kì Đồ án 1


2.4 Javascript

Javascript được phát tiển bởi Brendan Eich tại hãng truyền thông Netscape với tên
đầu tiên là Mocha. Sau đó, đổi tên thành LiveScript và cuối cùng là JavaSript được sử
dụng phổ biến tới thời điểm bây giờ.
JavaScript là ngơn ngữ lập trình website phổ biến hiện nay, nó được tích hợp và
nhúng vào HTML giúp website trở nên sống động hơn. JavaScript đóng vai trò như là
một phần của trang web, thực thi cho phép Client-side script từ phía người dùng cũng
như phía máy chủ (Nodejs) tạo ra các trang web động.
2.5 Spring Security

10


Báo cáo cuối kì Đồ án 1

Spring Security là một khung công tác Java / Java EE cung cấp xác thực, ủy
quyền và các tính năng bảo mật khác cho các ứng dụng doanh nghiệp.
Spring Security là một trong những core feature quan trọng của Spring
Framework, nó giúp chúng ta phân quyền và xác thực người dùng trước khi cho phép
họ truy cập vào các tài nguyên của chúng ta.
2.6 Rasa
Khái niệm
Chatbot là một phần mềm có thể chat “đối đáp” với con người để: tư vấn thông
tin, tâm sự, tán tỉnh…
Rasa là một framework để phát triển các chatbot, được hỗ trợ bởi AI. Nó cực
kỳ mạnh mẽ và được các nhà phát triển trên toàn thế giới sử dụng để tạo các chatbot
và trợ lý theo ngữ cảnh.
Cấu trúc của một Rasa Chatbot



Rasa NLU: một thư viện để hiểu ngôn ngữ tự nhiên (NLU) thực hiện phân loại
ý định và trích xuất thực thể từ đầu vào của người dùng và giúp bot hiểu những
gì người dùng đang nói.



Rasa Core: một khung chatbot với quản lý hội thoại , lấy đầu vào có cấu trúc
từ NLU. NLU và Core là độc lập và người ta có thể sử dụng NLU mà khơng
cần Core, và ngược lại.



Rasa X: là một tool giúp chúng ta xây dựng, cải thiện và triển khai model
chatbot vừa tạo.

11


Báo cáo cuối kì Đồ án 1



Intent: RASA cần biết người dùng muốn gì, vì vậy cần nhận ra ý định của họ.
Ví dụ: Người dùng nói rằng : "Tơi muốn đặt bàn cho 2 người tối nay tại nhà
hàng ABC" thì intent ở đây là việc đặt bàn.




Entity: thực thể là để trích xuất thơng tin từ đầu vào của người dùng. Như ví
dụ ở trên thì entity ở đây chính là thời gian và địa điểm đặt bàn.



Slot: Nó là các ơ lưu trữ của chatbot.



Stories : Câu chuyện xác định sự tương tác giữa người dùng và chatbot theo
intent và action được thực hiện bởi bot. Giống như trong ví dụ trên, bot có ý
định đặt bàn và các thực thể như địa điểm, thời gian và điều đó sẽ thực hiện
hành động tiếp theo từ bot.



Action: Hành động về cơ bản là các hoạt động được thực hiện bởi bot hoặc yêu
cầu thêm một số chi tiết để có được tất cả các thực thể hoặc tích hợp với một số
API hoặc truy vấn cơ sở dữ liệu để nhận / lưu một số thông tin.
Cài đặt Rasa


Cài đặt Python



Sử dụng lệnh:

$ pip install rasa




Di chuyển đến thư mục bạn muốn khởi tạo Rasa và sử dụng:

$ rasa init

Cấu trúc project Rasa

12


Báo cáo cuối kì Đồ án 1

data\nlu.yml: dùng để lưu các câu nói của khách hàng ứng (gọi là
intent).

nlu:
- intent: greet
examples: |
- hey
- hello
- hi
- hello there
- intent: goodbye
examples: |
- good afternoon
- good by
- see you later
- good night
- intent: affirm

examples: |
13


Báo cáo cuối kì Đồ án 1

- yes
- indeed
- of course
- intent: deny
examples: |
- no
- never
- I don't think so
- not really
- intent: mood_great
examples: |
- perfect
- great
- amazing
- intent: mood_unhappy
examples: |
- my day was horrible
- I am sad
Intent: Tên của nội dung người dùng (vd: chào hỏi, tạm biệt, mua hàng,...).
Examples: Liệt kê những câu có thể có của người dùng tương ứng với nội dung
của intent.
domain.yml: định nghĩa các câu phản hồi của bot với các ý đồ của khách hàng
(gọi là utter).
responses:

utter_greet:
- text: "Hey! How are you?"
utter_cheer_up:
- text: "Here is something to cheer you up:"
image: " />utter_did_that_help:
14


Báo cáo cuối kì Đồ án 1

- text: "Did that help you?"
utter_happy:
- text: "Great, carry on!"
data\stories: đây là file để định nghĩa các câu chuyện, giúp kết nối các intent và
utter.
stories:
- story: chao hoi dua ten
steps:
- intent: greet
- action: utter_ask_name
- intent: give_name
- action: action_save_cust_info
config.yml: đây là file dùng để cấu hình cho dự án
actions/actions.py: dùng để viết code cho các hành động trả lời của bot, để bot
có thể xử lý thông tin, load dữ liệu từ database nhằm mục đích đưa ra câu hỏi
chính xác cho người dùng.
Ví dụ về action:
class ActionHelloWorld(Action):
def name(self) -> Text:
return "action_hello_world"


def run(self, dispatcher: CollectingDispatcher,
tracker: Tracker,
domain: Dict[Text, Any]) -> List[Dict[Text, Any]]:

dispatcher.utter_message(text="Hello World!")

return []
Xây dựng project
15


Báo cáo cuối kì Đồ án 1

Để thực hiện train cho bot với các dữ liệu đã được tạo, vào terminal với đường
dẫn đến project, gõ

$ rasa train

Để có thể viết code vào file actions.py, Vào file endpoints.yml và thêm những
dữ liệu sau
action_endpoint:
url: "http://localhost:5055/webhook"

Thêm các entity và slot để bot biết được ý đồ của khách hàng
Ví dụ, để bot hiểu tên và giới tính người dùng, vào file data\nlu.yml, thêm các
code sau:
- intent: give_name
examples: |
- [Anh](cust_sex) là [Thắng](cust_name)

- [Chị](cust_sex) là [Hằng](cust_name)
- [Em](cust_sex) là [Trang](cust_name)
- [Cô](cust_sex) [Vân](cust_name)
- [Chú](cust_sex) [Hùng](cust_name)
Đoạn code trên khai báo các entity “cust_sex” tương ứng với từ trong ngoặc
vuông, “cust_name” là tên người dùng.
Vào file domain.yml thêm đoạn code sau để máy hiểu và lưu trữ nhưng entity
này, thuộc tính auto_fill trong slots để nó tự hiểu tương ứng tên với entity đã khai báo.

entities:
- cust_sex
16


Báo cáo cuối kì Đồ án 1

- cust_name
slots:
cust_sex:
auto_fill: true
type: text
cust_name:
auto_fill: true
type: text
Thêm đoạn code sau vào mục response:
responses:
utter_greet_with_name:
- text: "Kính chào {cust_sex} {cust_name}. TStore Shop có
thể giúp gì được {cust_sex} {cust_name} ạ?"


Thực hiện chat với bot thơng qua màn hình shell gõ lệnh

$ rasa shell

Để thực hiện việc tạo giao diện web với tin nhắn ta có thể làm như sau:
Tạo file mới tại project với tên index.html
<html>
<body>
<script>
!(function () {
let e = document.createElement("script"),
17


×