1. Trang chủ
  2. » Cao đẳng - Đại học

Đồ án tìm HIỂU CHAT BOT và xây DỰNG ỨNG DỤNG hỗ TRỢ NHÂN VIÊN mới TRONG DOANH NGHIỆP

51 35 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm Hiểu Chat Bot Và Xây Dựng Ứng Dụng Hỗ Trợ Nhân Viên Mới Trong Doanh Nghiệp
Tác giả Phạm Thăng Long, Trần Minh Khôi
Người hướng dẫn Nguyễn Huỳnh Khắc Huy
Trường học Đại Học Quốc Gia TP. Hồ Chí Minh
Chuyên ngành Kỹ Sư Ngành Công Nghệ Phần Mềm
Thể loại Đồ Án
Năm xuất bản 2021
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 51
Dung lượng 1,71 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

1.2 Tính năng mới khác biệt Ta có thể sử dụng Chatbot để tạo một con Chatbot tích hợp với các flatform nhắn tin Ex: Facebook Messenger, Slack để tương tác với nhân viên; nhân viên có thể

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA CÔNG NGHỆ PHẦN MỀM

PHẠM THĂNG LONG – 18521051 TRẦN MINH KHÔI – 18520947

ĐỒ ÁN 1

TÌM HIỂU CHAT BOT VÀ XÂY DỰNG ỨNG DỤNG

HỖ TRỢ NHÂN VIÊN MỚI TRONG DOANH NGHIỆP

KỸ SƯ NGÀNH CÔNG NGHỆ PHẦN MỀM

GIẢNG VIÊN HƯỚNG DẪN NGUYỄN HUỲNH KHẮC HUY

TP HỒ CHÍ MINH, 2021

Trang 2

LỜI CẢM ƠN

Chúng em xin gửi lời cảm ơn chân thành đến tập thể quý Thầy

Cô Trường Đại học Công nghệ thông tin – Đại học Quốc gia

TP.HCM đã giúp cho nhóm chúng em có những kiến thức cơ bản làm nền tảng để thực hiện đồ án này

Đặc biệt, nhóm chúng em xin gửi lời cảm ơn đến thầy Nguyễn Huỳnh Khắc Huy Thầy đã hướng dẫn tận tình, sửa chữa và đóng gópnhiều ý kiến quý báu giúp em hoàn thành tốt báo cáo môn học của mình

Trong thời gian một học kỳ thực hiện đề tài, nhóm đã vận dụng những kiến thức nền tảng đã tích lũy đồng thời kết hợp với việc học hỏi, tham khảo và nghiên cứu những kiến thức mới Từ đó, nhóm vận dụng tối đa những gì đã thu thập được để hoàn thành một báo cáo đồ

án tốt nhất Tuy nhiên, trong quá trình thực hiện, nhóm không tránh khỏi những thiếu sót Chính vì vậy, nhóm chúng em rất mong nhận được những sự góp ý từ phía Thầy nhằm hoàn thiện những kiến thức

mà nhóm đã học tập và là hành trang để thực hiện tiếp các đề tài khác trong tương lai Xin chân thành cảm ơn Thầy

Thành phố Hồ Chí Minh, tháng 6 năm 2021Nhóm sinh viên thực hiện

ĐÁNH GIÁ KẾT QUẢ

Trang 3

Mục Lục

Trang 5

Hướng phát triển 50

Trang 6

CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI

1.1 Lý do chọn đề tài

Trong tình hình công nghệ phát triển như hiện nay, việc xây dựng một môi trường, văn hóa làm việc hiện đại, đổi mới và minh bạch là một nhu cầu thiết yếu của các công ty, tập đoàn mưu cầu sự phát triển bền vững

Chúng ta bàn về doanh nghiệp phát triển phần mềm Tiếp nhận yêu cầu, tầm nhìn và chiến lược từ khách hàng; triển khai sản phẩm phần mềm phù hợp với UserStory của khách hàng; là một trong

những việc mang lại nhiều lợi nhuận nhất cho công ty phần mềm Thế nhưng để có được lợi nhuận tối ưu nhất cho cả 2 bên, ta cần phải deal được giá tốt với khách hàng

Đây là vấn đề đã không mấy xa lạ với các doanh nghiệp gia côngphần mềm Ta có thể thấy cụm từ OT trong ngành phần mềm được

đề cập khá phổ biến Khi ước tính giá cả thấp hơn so với chi phí phần mềm thực tế, việc các nhân viên phải làm thên giờ để kịp tiến độ phần mềm là điều không hiếm gặp

Để ra được giá cả tối ưu với khách hàng, ta phải ước tính được chi phí để gia công phần mềm; làm phần mềm này hết bao nhiêu thờigian; chi phí thuê máy chủ, hosting hết bao nhiêu tiền Vấn đề về tiềnbạc trong quá trình phát triển phần mềm khá là dễ ước lượng; nhưngviệc ước lượng thời gian gia công phần mềm là điều không hề dễ Việc này phụ thuộc rất nhiều vào yếu tố con người, vốn là một việc khó dự đoán

Các công ty thường quản lý dự án theo các

Project-Management Framework ví dụ như là Scrum, WaterFall, XPM

Trong các framework quản lý dự án, điển hình là Scrum; framework quản lý được sử dụng trong công ty; framework chia project thành các Sprint kéo dài 2 tuần, mỗi Sprint sẽ có 1 số lượng Backlog (việc cần làm) nhất định, mỗi Backlog có nhiều Task (tác vụ) Mục tiêu của

1 Sprint trong Scrum là team Deliver được hết các Backlog Câu hỏi

Trang 7

đặt ra bây giờ là project này sẽ lên UAT (User Acceptance Testing) trong bao nhiêu Sprint ?

Để ước tính được số Sprint, phân bổ Backlog hợp lý cho mỗi Sprint Trong quản trị dự án bằng Scrum chúng ta có một khái niệm

đó là Metrics Metrics là dữ liệu thu thập được trong quá trình làm

dự án; Metrics giúp ước lượng chi phí dự án chính xác hơn; càng nhiều Metrics, Metrics càng chính xác, ước lượng chi phí dự án sẽ sátvới thực tế hơn Ở mỗi công ty ứng dụng các Framework khác nhau

có cách định nghĩa Metrics khác nhau, tùy theo chiến lược của công ty; khái quát chung, Metrics có thể được đặc trưng bởi các thành phần sau

○ Logwork: Thời gian hoàn thành 1 Task của 1 người trong team

○ Velocity: Số giờ trung bình của team để deliver 1 Point; Velocity lý tưởng của 1 dự án thường là 1 (trong 1h deliver được 1 Point)

■ Point có thể hiểu là điểm của 1 Backlog 1 Backlog bao gồm Point và Task Lí tưởng nhất theo pmi.org, một Point nên tương đương với 1 giờ; nghĩa là nếu

ta ước lượng 1 Backlog là 5 points, ta đang giả định team có thể làm xong backlog đó trong 5 tiếng

○ Workload: Số giờ 1 người trong team cam kết làm việc

trong 1 Project-Working Week (tuần của dự án)

■ tuần dự án khác tuần thông thường; 1 tuần thông thường bắt đầu từ thứ 2, kết thúc vào thứ 7, tuần

dự án có thể bắt đầu thứ 7, kết thúc thứ 6 Một số trường hợp đặc biệt, tuần dự án chỉ có 4 ngày thay

vì 7, tuy nhiên case này khá là hiếm gặp

○ Review tuần: Mỗi người team tự review lại

Project-Working Week của mình Có gì tốt, có gì xấu diễn ra trong tuần dự án vừa rồi

Tạo ra một hệ thống phần mềm để thực thi quản trị Scrum là cần thiết, nhưng vấn đề đặt ra là: làm sao để nhân viên làm quen với

Trang 8

cách quản trị dự án bằng Scrum; làm sao để nhân viên chủ động hơn,thoải mái hơn trong chuyện Logwork, Tracking Team's Velocity,

Update Workload, Review tuần Nhân viên cũ còn chưa chắc đã làm đúng, nhân viên mới lại càng khó hơn

1.2 Tính năng mới khác biệt

Ta có thể sử dụng Chatbot để tạo một con Chatbot tích hợp với các flatform nhắn tin (Ex: Facebook Messenger, Slack) để tương tác với nhân viên; nhân viên có thể ra lệnh cho Chatbot (Ex: Logwork); Chatbot có thể thông báo, cập nhật thông tin cho nhân viên (Ex: Velocity của team cao quá)

Việc xây dựng Chatbot không những giúp doanh nghiệp xây dựng được văn hóa làm việc hiện đại, sống động, bên cạnh đó còn giúp nhân viên chủ động hơn trong việc thực thi Scrum để quản lý công việc Càng về lâu, về dài, Metrics thu thập được càng nhiều, ướclượng chi phí phần mềm sẽ chính xác hơn

● Công ty quản lý nhân viên bằng workspace slack

● nhân viên mới vào công ty được hướng dẫn join vào

workspace, khi nhân viên join, tự động thông tin sẽ được đẩy

Trang 9

○ xử lý mệnh lệnh từ nhân viên

Chú giải một số keyword:

● workload: số giờ nhân viên cam kết làm việ

● logwork, hệ thống công ty mở 1 website cho nhân viên ghi lại những việc đã làm trong dự án theo thời gian Thí dụ, trong dự

án website bán hàng, nhân viên A đã viết api ABCD hết 2 tiếng

● velocity: số giờ để burn 1 point/1 backlog

● review tuần: sau 1 tuần làm việc, nhân viên điền form review tuần, xem tuần qua mình làm việc bao nhiêu tiếng, có gì tốt, có

gì xấu

● book attendance: báo trước với cty mình sẽ tới trễ / off trong 1 khoảng thời gian nào đó / off buổi sáng / off buổi chiều / off fullngày

Yêu cầu của công ty phát triển phần mềm:

❖ chức năng thông báo, nhắc nhở

● đến đúng giờ (8h30 AM) -> điểm danh trên hệ thống khi quẹt thẻ

● thông báo giờ kết thúc công việc (6h PM)

● nhân viên overtime (ở lại sau 7h30) có đồ ăn + nước uống free

○ thông báo xuống lấy đồ ăn

● nhắc nhân viên các event của công ty (workshop, hoạt động tậpthể)

● nhắc nhân viên logwork sau mỗi tiếng (tính từ lúc nhân viên checkin buổi sáng)

○ logwork giúp nhân viên

■ chatbot render 1 form điền thông tin ở messenger

■ nhân viên điền form và submit, gọi api để logwork

Trang 10

● nhắc nhân viên khi velocity quá cao > 1.5

● nhắc nhân viên review tuần

○ 1 tuần trong công ty bắt đầu từ thứ 7, kết thúc vào thứ 6

○ sau 12hPM thứ 6, chatbot thông báo review tuần cho nhân viên

● khi nhân viên logwork nhưng workload hết

○ tăng workload giúp nhân viên

■ chatbot render 1 bảng chọn tăng workload

■ nhân viên chọn workload và submit, gọi api để tăng workload

❖ Xử lý mệnh lệnh từ nhân viên

● Nhân viên muốn xem hướng dẫn sử dụng chatbot

● Muốn xem project + integration

● Nhân viên muốn biết sáng giờ mình đã làm việc bao nhiêu tiếng(logwork bao nhiêu tiếng)

● Nhân viên muốn logwork

● Nhân viên muốn biết nếu giờ mình đi ngủ, để báo thức mấy giờ dậy là hợp lý nhất

● Nhân viên muốn book phòng họp

● Nhân viên muốn book attendance

Trang 11

● AWS Lambda là dịch vụ hosting được cung cấp để chạy 1 hàm

nào đó khi có event từ các dịch vụ khác trong cloud

● AWS Lex framework NLP để xây dựng chatbot

● AWS API Gateway là dịch vụ hosting được cung cấp để mở

endpoint trên cloud, mock vào các service nội bộ bên trong cloud (Ex: AWS Lambda)

● Slack là nền tảng group chat tập trung vào quản lý công việc,

teamwork trong công ty Khác với facebook mục đích là giải trí

Trang 12

2.1.1 Công nghệ nền tảng

2.1.1.1 Slack

● Slack là một ứng dụng nhắn tin dành cho mục đích công việc vớihướng tiếp cận theo nhóm Bằng cách tập hợp mọi người lại vớinhau thành một nhóm thống nhất để tiếp cận công việc, slack

có thể thay đổi việc giao tiếp ở trong các tổ chức

● Slack có thể giúp việc hợp tác giữa các đồng nghiệp dễ dàng hơn thông qua các channel hoặc direct message

● Trong Slack, mọi người trong tổ chức đều tiếp cận được các thông tin được chia sẻ và Slack có hỗ trợ tìm kiếm thông tin Khimột team làm việc chung trong một channel, thông tin có thể chia sẻ tới tất cả mọi người trong nhóm, việc này giúp nhóm hoạt động trơn tru và đưa ra quyết định tốt hơn

● Việc sử dụng slack để làm messaging platform có thể giúp nhân

Trang 13

viên quản lý trong việc tạo được channel gồm những thành viên mới cần được giúp đỡ để có thể quen thuộc với tổ chức thông qua chatbot hỗ trợ Ngoài ra có thể mở rộng chatbot cho khác thành viên khác trong tổ chức.

2.1.1.2 Amazon Lex

● Amazon Lex là engine sử dụng AI để xây dựng một NLP model

● NLP model bản chất là một con bot có khả năng chiết xuất

được Intent (ý định) từ input của người dùng, từ đó thực hiện

Action (hành động) tương ứng với Intent đó

● Intent và Action là do mình thiết kế và đưa vào Chatbot

● Mỗi Intent ứng với một tập các input và một Action; ta tổng hợp các input phổ biến và đưa và train cho con bot; con bot sẽ

tự nhận biết Input từ người dùng là thuộc Intent nào, từ đó thực hiện Action tương ứng

Trang 14

2.1.1.3 NginX

● NGINX là web server có thể hoạt động như là email proxy,

reverse proxy và load balancer Cấu trúc của phần mềm này là bất đồng bộ và hướng sự kiện; vì vậy cho phép phần mềm xử lý nhiều truy vấn cùng lúc NGINX dễ dàng để mở rộng cho

website hơn, đồng nghĩa với việc dịch vụ này có thể đi theo suốt quá trình phát triển của website, cũng như traffic web

● Vì khả năng mạnh mẽ, và để có thể xử lý hàng ngàn kết nối cùng lúc, nhiều website có traffic lớn đã sử dụng dịch vụ NGINX.Một vài trong số những ông lớn công nghệ dùng nó là Google, Netflix, Adobe, Cloudflare, WordPress, và còn nhiều hơn nữa

Trang 15

2.1.1.4 Gunicorn

● Gunicorn là một trong những python web server theo chuẩn như WSGI (Web Service Gateway Interface) Nó ổn định và được triển khai nhiều trong các môi trường sản phẩm thực tế Instagram là một trong những website mạng xã hội lớn nhất thế giới, được xây dựng bằng python và triển khai dùng

gunicorn

● Gunicorn rất dễ sử dụng và hỗ trợ tốt cho nhiều web

framework khác nhau như Django, Flask

Trang 16

kết nối đến các cơ sở dữ liệu, xử lý dữ liệu, kết hợp với các thưviện khác.

● Flask cài đặt và triển khai dễ dàng và có kiến trúc nhỏ gọn

● Flask phù hợp cho việc xây dựng những ứng dụng web có quy

mô vừa và nhỏ, hoặc các API để hỗ trợ cho các thư viện khác

2.1.1.6 PostgreSQL

● PostgreSQL là một hệ quản trị cơ sở dữ liệu quan hệ – đốitượng, được phát triển bởi Khoa Điện toán, Đại học California –Hoa Kỳ dựa trên Postgres bản 4.2 Chương trình này đã mởđường cho nhiều khái niệm về hệ quản trị dữ liệu thương mạisau này

● Ban đầu, hệ quản trị được thiết kế để chạy trên các nền tảngtương tự như Unix Sau này, PostgreSQL được điều chỉnh trởnên linh động và chạy trên nhiều nền tảng khác nhau nhưWindows, Mac OS X, Solaris với nhiều tính năng và đặc điểm

Trang 17

nổi bật.

● PostgreSQL là mã nguồn mở miễn phí, được xây dựng theochuẩn SQL99 Người dùng có thể tự do sử dụng, chỉnh sửa vàphân bổ PostgreSQL theo nhiều hình thức khác nhau

● So với nhiều hệ quản trị cơ sở dữ liệu khác, PostgreSQL khôngquá yêu cầu về công tác bảo trì bởi tính ổn định cao, có thểphát triển nhiều ứng dụng khác nhau với chi phí tương đốithấp

● PostgreSQL tuân theo tiêu chuẩn SQL nhưng không mâu thuẫnvới các tính năng truyền thống hay có thể dẫn đến các quyếtđịnh kiến trúc gây hại Nhiều tính năng theo tiêu chuẩn SQLđược hỗ trợ, tuy nhiên đôi khi có thể có cú pháp hoặc hàm hơikhác một chút

Trang 18

2.2 Phân tích thiết kế hệ thống

2.2.1 Sơ đồ use case

Trang 20

2.2.1.1 Danh sách các use cases

1 Thông báo, nhắc nhở Chatbot thông báo hoặc nhắc nhở nhân

viên mới về một sự kiện.

2 Tra cứu thông tin cơ

bản của công ty

Tra cứu các thông tin của công ty như số điện thoại hỗ trợ, các ca làm việc hay các phòng ban.

3 Xử lý mệnh lệnh Nhân viên mới nhắn tin cho chatbot để

5 Thông báo đã điểm

danh trong ngày

Chatbot thông báo đã điểm danh ngày cho nhân viên

6 Nhắc nhở nhân viên

viết review tuần

Chatbot nhắc nhở nhân viên viết review tuần sau khi kết thúc tuần dự án

7 Thông báo đồ ăn Chatbot thông báo các nhân viên làm việc

ca khuya có đồ ăn miễn phí

8 Nhắc nhở nhân viên

logwork

Chatbot nhắc nhở nhân viên đã đến giờ logwork

9 Thông báo workload

hết khi nhân viên

Trang 21

nhân viên logwork của nhân viên

13 Tính toán báo thức Chatbot tính toán thời gian đặt báo thức

dựa trên thời gian nhập vào của nhân viên

14 Tra cứu project +

17 Đặt lịch attendance Nhân viên yêu cầu đặt lịch attendance

18 Đặt lịch phòng họp Nhân viên yêu cầu đặt lịch phòng họp

19 Nhắc nhở velocity

cao

Nhắc nhở khi nhân viên có velocity cao

20 Thông báo sự kiện

của công ty

Thông báo sự kiện mới cho nhân viên

21 Quản lý nhóm trên

slack

Quản lý nhóm trên slack

22 Quản lý database Quản lý database nhằm đảm bảo chatbot

hoạt động phù hợp

23 Xác nhận điểm danh Nhân viên điểm danh ở công ty sẽ được

quản lý xác nhận và cập nhật để cho chatbot thông báo đã điểm danh hằng ngày với nhân viên

2.2.1.2 Đặc tả use-case

Trang 22

Tên Use Case Thông báo, nhắc nhở

Tóm tắt Chatbot thông báo hoặc nhắc nhở nhân viên mới về

một sự kiện Actor Nhân viên mới

Dòng sự kiện chính - Chatbot thông báo, nhắc nhở nhân viên

- Kết thúc Dòng sự kiện khác - Không có

Tiền điều kiện Nhân viên đã được add vào workspace slack

Hậu điều kiện - Nhân viên nhận được thông báo

Tên Use Case Tra cứu thông tin cơ bản của công ty

Tóm tắt Tra cứu các thông tin của công ty như số điện thoại

hỗ trợ, các ca làm việc hay các phòng ban.

Actor Nhân viên mới

Dòng sự kiện chính - Nhân viên hỏi chatbot về một thông tin

trong công ty

- Chatbot trả lời thông tin liên quan đến câu hỏi của nhân viên

- Kết thúc Dòng sự kiện khác - Thông tin của câu hỏi không có trong FAQ

của chatbot:

+Chatbot hỏi nhân viên yêu cầu nhập lại hoặc

số điện thoại hỗ trợ của công ty Tiền điều kiện Nhân viên đã được add vào workspace slack

Hậu điều kiện Nhân viên nhận được câu trả lời tương ứng

Trang 23

Tên Use Case Xử lý mệnh lệnh của công ty

Tóm tắt Nhân viên mới nhắn tin cho chatbot để yêu cầu xử

lý mệnh lệnh Actor Nhân viên mới

Dòng sự kiện chính - Nhân viên nhập mệnh lệnh yêu cầu chatbot

xử lý

- Chatbot thực thi lệnh tương ứng

- Kết thúc Dòng sự kiện khác - Chatbot không rõ lệnh yêu cầu của nhân

viên:

+Yêu cầu nhân viên nhập lại lệnh

- Lệnh của nhân viên không thể thực thi vì vi phạm điều kiện:

+Thông báo nhân viên nhập lệnh vi phạm Tiền điều kiện Nhân viên đã được add vào workspace slack

Hậu điều kiện Lệnh của nhân viên đã được xử lý

Tên Use Case Thông báo kết thúc ngày

Tóm tắt Chatbot thông báo giờ làm việc hành chính trong

ngày đã kết thúc cho nhân viên Actor Nhân viên mới

Dòng sự kiện chính - Sau khi hết thời gian làm việc hành chính,

chatbot tự động thông báo cho các nhân viên

ở trong group

- Kết thúc Dòng sự kiện khác - Nhân viên nhập lệnh làm việc overtime

Tiền điều kiện Nhân viên đã được add vào workspace slack

Hậu điều kiện Nhân viên nhận được thông báo

Trang 24

Tên Use Case Thông báo đã điểm danh trong ngày

Tóm tắt Chatbot thông báo đã điểm danh ngày cho nhân

viên Actor Nhân viên mới

Dòng sự kiện chính - Sau khi nhân viên đã điểm danh, admin xác

nhận điểm danh và chatbot auto thông báo cho nhân viên đã điểm danh

- Kết thúc Dòng sự kiện khác Không có

Tiền điều kiện Nhân viên đã được add vào workspace slack

Hậu điều kiện Nhân viên nhận được thông báo

Tên Use Case Nhắc nhở review tuần

Tóm tắt Chatbot nhắc nhở nhân viên viết review tuần sau

khi kết thúc tuần dự án Actor Nhân viên mới

Dòng sự kiện chính - Sau khi tuần dự án kết thúc chatbot nhắc

nhở nhân viên review tuần

- Kết thúc Dòng sự kiện khác - Nhân viên yêu cầu nhập review tuần trên

chatbot

Trang 25

Tiền điều kiện Nhân viên đã được add vào workspace slack

Hậu điều kiện Nhân viên nhận được nhắc nhở

Tên Use Case Thông báo đồ ăn

Tóm tắt Chatbot thông báo các nhân viên làm việc ca khuya

có đồ ăn miễn phí Actor Nhân viên mới

Dòng sự kiện chính - Chatbot thông báo đến giờ lấy đồ ăn đối với

các nhân viên làm việc quá giờ

- Kết thúc Dòng sự kiện khác Không có

Tiền điều kiện Nhân viên đã được add vào workspace slack

Hậu điều kiện Nhân viên nhận được thông báo

Tên Use Case Thông báo nhắc nhở nhân viên logwork

Tóm tắt Chatbot nhắc nhở nhân viên đã đến giờ logwork

Actor Nhân viên mới

Dòng sự kiện chính - Chatbot thông báo đến giờ logwork tới nhân

viên

- Kết thúc Dòng sự kiện khác - Nhân viên yêu cầu logwork (use case 11)

Tiền điều kiện Nhân viên đã được add vào workspace slack

Hậu điều kiện Nhân viên nhận được thông báo

Ngày đăng: 05/09/2021, 20:46

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w