Chatbots là một hình thức thô sơ của phần mềm trí tuệ nhân tạo, là mộtchương trình được tạo ra từ máy tính tiến hành cuộc trò chuyện thông qua cácphương pháp nhập văn bản, âm than
Trang 1BỘ CÔNG THƯƠNGTRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
MẮC CỦA HỌC SINH SINH VIÊN
Hướng dẫn khoa học: TS Nguyễn Mạnh Cường
Sinh viên thực hiện: Nguyễn Văn Tùng
Ngô Quang Huy
Hà Nội, năm 2022
Trang 2LỜI MỞ ĐẦU
Trí tuệ nhân tạo ngày nay đang phát triển mạnh và được biết đến nhiều hơn
ở tất cả các lĩnh vực trong đời sống Trí tuệ nhân tạo là tạo ra máy tính, robotđiều khiển bởi máy tính, hoặc phần mềm thông minh, tương tự như cách mà conngười vẫn nghĩ Trí tuệ nhân tạo được hoàn thành bằng cách nghiên cứu bộ nãocủa con người, cách con người học tập, ra quyết định, và làm việc khi muốn giảiquyết vấn đề, và sử dụng kết quả nghiên cứu làm cơ sở để phát triển hệ thống vàphần mềm thông minh
Chatbots là một hình thức thô sơ của phần mềm trí tuệ nhân tạo, là mộtchương trình được tạo ra từ máy tính tiến hành cuộc trò chuyện thông qua cácphương pháp nhập văn bản, âm thanh, cảm ứng có thể trả lời các câu hỏi và xử
lý các tình huống, là một công cụ có thể giao tiếp, tương tác với con người thôngqua một trí tuệ nhân tạo đã được lập trình sẵn Có rất nhiều công cụ cũng nhưthư viện hỗ trợ cho Chatbots như: Dialogflow, Wit.ai, Watson ConversationService, Microsoft, LUIS, Google Natural Language API, Amazon Lex,…
Trong những năm gần đây, khoa học công nghệ đang dần tiến đến mộttầm cao mới Mặc dù còn mới mẻ trong lĩnh vực khoa học và công nghệ nhưngChatbots đang được nghiên cứu và phát triển với tốc độ chóng mặt bởi các trungtâm nghiên cứu, các trường đại học và học viện… rất nhiều các lĩnh vực đượcứng dụng công nghệ mới này
Do đó, nhóm đã xây dựng một số ChatBot có khả năng tiếp nhận và phảnhồi thông tin để hỗ trợ vận hành hệ thống thông tin của nhà trường với sinh viênnhằm giảm thiểu nhân lực và giảm thiểu sai sót của con người
Trang 3MỤC LỤC
LỜI MỞ ĐẦU 1
DANH MỤC HÌNH ẢNH 3
DANH MỤC BẢNG 4
CHƯƠNG 1 TÌM HIỀU VỀ TÁC TỬ THÔNG MINH 5
1.1 Tác tử và môi trường 5
1.2 Tác tử thông minh là gì? 6
1.3 Đặc điểm của tác tử thông minh 6
1.4 PEAS – Quy tắc để trở thành tác tử thông minh 7
1.5 Đặc điểm của môi trường 8
1.6 Phân loại tác tử thông minh 8
1.6.1 Tác tử phản xạ đơn giản 8
1.6.2 Tác tử phản xạ có trạng thái 8
1.6.3 Tác tử hướng mục đích 9
1.6.4 Tác tử hướng lợi ích 10
1.6.5 Tác tử với khả năng học 10
CHƯƠNG 2 TỔNG QUAN MICROSOFT BOT FRAMEWORK 11
2.1 ChatBot là gì? 11
2.2 Microsoft Bot Framework 11
2.3 Cách thức hoạt động của Microsoft Bot Framework 12
2.4 Xử lý ngôn ngữ tự nhiên 13
2.5 Bot Framework nhắm tới đối tượng nào? 14
CHƯƠNG 3 THỰC NGHIỆM XÂY DỰNG CHATBOT 15
3.1 Chatbot hỗ trợ tra cứu thông tin chuẩn đầu ra Kỹ năng sử dụng CNTT tại Trung tâm Công nghệ Thông tin Đại học Công nghiệp Hà Nội 15
3.1.1 Phát biểu bài toán 15
3.1.2 Triển khai 15
3.1.3 Hạn chế và định hướng phát triển 20
3.2 Chatbot hỗ trợ các Fanpage của trường Đại học Công nghiệp Hà Nội giải đáp thắc mắc của sinh viên 20
3.2.1 Phát biểu bài toán 20
3.2.2 Triển khai 21
3.2.3 Ưu điểm và hạn chế 26
Trang 4DANH MỤC HÌNH ẢNH
Hình 1: Tác tử và môi trường 5
Hình 2: Tác tử phản xạ đơn giản 8
Hình 3: Tác tử phản xạ có trạng thái 9
Hình 4: Tác tử hướng mục đích 9
Hình 5: Tác tử hướng lợi ích 10
Hình 6: Tác tử với khả năng học 10
Hình 7: Cách thức hoạt động của Bot Framework 13
Hình 8: API cho phép lấy dữ liệu lịch học và điều kiện dự thi 16
Hình 9: API cho phép lấy dữ liệu lịch thi 16
Hình 10: API cho phép lấy dữ điểm thi đánh giá KNSD CNTT 16
Hình 11: Khởi tạo Chatbot 17
Hình 12: Chatbot gửi lời chào đến User 17
Hình 13: Chatbot Yêu cầu nhập Mã sinh viên 18
Hình 14: Chatbot yêu cầu chọn mục cần tra cứu 18
Hình 15: Chatbot Gửi yêu cầu lên API và trả về kết quả cho User 18
Hình 16: Chatbot yêu cầu cung cấp mã sinh viên 19
Hình 17: Chatbot yêu cầu người dùng chọn nội dung cần tra cứu 19
Hình 18: Kết quả trả về của Chatbot 20
Hình 19: Tạo mới tri thức cho Chatbot 21
Hình 20: Nhập tri thức cho Bot 22
Hình 21: Tạo tri thức nhiều sự lựa chọn 22
Hình 22: Tạo ChatBot mới 23
Hình 23: Các nền tảng Chatbot hỗ trợ 23
Hình 24: Tạo Facebook App 24
Hình 25: Cấu hình App Facebook để lấy Token và Webhook 24
Hình 26: Nhập thông tin vào các trường và tiến hành kết nối với Facebook 25 Hình 27: Kiểm tra kết nối tới các kênh 25
Hình 28: Chatbot hoạt động trên nền tảng Facebook 26
Hình 29: Chatbot hoạt động trên nền tảng Microsoft Teams 26
Trang 5DANH MỤC BẢNG
Bảng 1: Hành động của tác tử hút bụi thông minh 6Bảng 2: Ví dụ yêu tố của tác tử thông minh 7
Trang 6CHƯƠNG 1 TÌM HIỀU VỀ TÁC TỬ THÔNG MINH
❖ Ví dụ 2: Người máy Aishimo
❑ Cảm biến: camera, các bộ dò đường hồng ngoại
Trang 71.2 Tác tử thông minh là gì?
Tác tử thông minh – Intelligent Agents là tác tử dưới dạng một chương trìnhmáy tính có khả năng nhận thức được môi trường xung quanh và thực hiện cáchành động phản ứng lại một cách tự chủ để đat mục tiêu tối ưu
Tác tử thông minh được tạo ra để thực hiện một nhiệm vụ hay kế hoạch nào
đó và có khả năng suy luận, học hỏi và sử dụng kiến thức mới để tối ưu hóa giátrị mục tiêu mong đợi
❖Ví dụ: Tác tử hút bụi thông minh:
Hình 2: Tác tử hút bụi thông minh
- Cảm nhận: vị trí (A hoặc B), trạng thái (sạch hoặc bẩn)
- Hành động: qua trái, qua phải, hút bụi, NoOp
Bảng 1: Hành động của tác tử hút bụi thông minh
1.3 Đặc điểm của tác tử thông minh
❖ Với mỗi dãy trạng thái cảm nhận được cùng với tri thức sẵn có, tác tử phải lựa chọn hành động sao cho tối đa hóa hàm đánh giá hiệu năng
Trang 8❖ Cho đích cần đạt và các tri thức sẵn có, tác tử cần:
- Sử dụng thông tin thu được từ các quan sát mới để cập nhật lại tri thức của nó
- Trên cơ sở tri thức của nó, thực thi hành động nhằm đạt được mục tiêu đề
ra trong thế giới của nó
❖ Một tác tử là tự trị nếu hành vi được xác định bởi kinh nghiệm của chính bảnthân nó (với khả năng học và thích nghi)
1.4 PEAS – Quy tắc để trở thành tác tử thông minh
Khi thiết kế, xây dựng một tác tử thông minh, phải xem xét 4 yếu tố dưới đây.Nếu đáp ứng đủ 4 yêu cầu này thì tác tử được gọi là tác tử thông mình
❑ Performance measure: Hàm đo hiệu năng
❑ Enviroment: Môi trường
❑ Actuator: Bộ kích hoạt
❑ Sensor: Cảm biến
Ví dụ PEAS:
Bảng 2: Ví dụ yêu tố của tác tử thông minh
Trang 91.5 Đặc điểm của môi trường
❖ Môi trường quan sát được hoàn toàn hay một phần? Hoàn toàn là khi các cảm
biến của tác tử cho phép nó thu nhận hoàn toàn các trạng thái của môi trường tại mọithời điểm Ngược lại sẽ là môi trường quan sát được một phần
❖ Môi trường tất định hay bất định? Môi trường tất định là trạng thái tiếp theo
của môi trường đã được xác định hoàn toàn dựa vào trạng thái của hiện tại Ngược lạinếu không xác định được hoàn toàn thì là bất định
❖ Môi trường tĩnh hay động? Khi tác tử đang tính toán, nếu môi trường bị thay
đổi bởi một yếu tố nào đó thì là môi trường động Nếu không thay đổi là môi trườngtĩnh
❖ Môi trường rời rạc hay liên tục? Môi trường có một số hữu hạn các cảm
nhận / hành động được định nghĩa rõ ràng được coi là rời rạc
❖ Môi trường đơn tác tử hay đa tác tử? Môi trường nếu có nhiều tác tử cùng
hoạt động gọi là môi trường đa tác tử Ngược lại, đơn tác tử thì chỉ có một
1.6 Phân loại tác tử thông minh
1.6.1 Tác tử phản xạ đơn giản
Hình 2: Tác tử phản xạ đơn giản
Tác tử hành động chỉ dựa trên trạng thái hiện tại, không xét đến quá
khứ 1.6.2 Tác tử phản xạ có trạng thái
Trang 10❖ Tập các trạng thái thỏa mãn một số tính chất nào đó
❖ Một phép thử áp dụng vào trạng thái và thông báo có thỏa đích hay không
Đích khiến tác tử phải suy luận về tương lai hoặc các trạng thái khác Có thể có trường hợp không hành động nào đưa đến đích
Trang 111.6.4 Tác tử hướng lợi ích
Hình 5: Tác tử hướng lợi ích
❖ Các tác tử thực hiện hành động sao cho có lợi nhất về lâu dài
❖ Các tác tử muốn thực hiện hành động đem lại lợi ích lớn hơn
❖ Có thể suy luận về các nhiệm vụ có nhiều đích, về sự xung đột giữa các đích, và về các tình huống không chắc chắn.
1.6.5 Tác tử với khả năng học
Hình 6: Tác tử với khả năng học
Trang 12CHƯƠNG 2 TỔNG QUAN MICROSOFT BOT FRAMEWORK2.1 ChatBot là gì?
ChatBot được coi như một ứng dụng mà người dùng tương tác theo cáchtrò chuyện Bots có thể giao tiếp trò chuyện với văn bản, thẻ hoặc bài phát biểu.Một bot có thể đơn giản như kết hợp mẫu cơ bản với một phản hồi hoặc nó cóthể là một tổ hợp phức tạp các kỹ thuật trí tuệ nhân tạo với theo dõi trạng tháihội thoại phức tạp và tích hợp với các dịch vụ kinh doanh hiện có
Bot Framework cho phép bạn xây dựng các bot hỗ trợ các kiểu tương táckhác nhau với người dùng Bạn có thể thiết kế cuộc trò chuyện trong bot của bạnthành dạng tự do Bot của bạn cũng có thể có nhiều tương tác có hướng dẫn hơn,nơi nó cung cấp lựa chọn hoặc hành động của người dùng Cuộc hội thoại có thểsử dụng các chuỗi văn bản đơn giản hoặc các thẻ đa dạng phức tạp hơn có chứavăn bản, hình ảnh và các nút hành động Và bạn có thể thêm các tương tác ngônngữ tự nhiên, cho phép người dùng của bạn tương tác với bot một cách tự nhiên
và biểu cảm
2.2 Microsoft Bot Framework
Microsoft Bot Framework là một SDK gồm các công cụ và tài nguyên nhằmgiúp cho các nhà phát triển có thể tự xây dựng Chatbot của riêng mình Frameworknày được Microsoft giới thiệu ở Build Conference năm 2016 Hiện tại đang hỗ trợphát triển bằng một số ngôn ngữ phổ biển là NET, Node.js, C#, Java, Python…
❖ Framework bao gồm:
• 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ựngChatbot bằng Node.js, NET hay REST API Sử dụng SDK này Chatbot có thểtương tác với người dùng không chỉ bằng văn bản, mà còn cả gửi/nhận file đínhkém, sử dụng hình ảnh để tương tác… Thậm chí bây giờ SDK còn hỗ trợ cả SkypeCall
• Bot Connector: Service giúp kết nối được với bot thông qua việc thiết lập
các channel Đóng vai trò trung gian chuyển tin nhắn của bot tới user, nhận lại cáctin nhắn của user tới bot
• Bot Framework Developer Portal: Cho phép kết nối Chatbot tới Skype,
Slack, Facebook Messenger, Kik, Office 265 mail và những kênh giao
Trang 13tiếp thông dụng khác Đơn giản chỉ việc đăng ký bot, chọn kênh giao tiếp
và phát hành bot lên Bot Directory
• 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ảinghiệm, khám phá những bot có sẵn hoặc thêm bot mà mình phát triển vào BotDirectory
• Bot Emulator: Phần mềm dùng để kiểm thử bot trong quá trình phát triển 2.3 Cách thức hoạt động của Microsoft Bot Framework
Microsoft Bot Framework cung cấp các công cụ và dịch vụ để giúp bạn xâydựng, triển khai và xuất bản các bot, bao gồm cả Azure Bot Service, SDK BotBuilder, Developer Portal và Bot Connector
Bot phát triển qua các bước:
• Bắt đầu với logic và dữ liệu của bạn Người dùng có thể tương tác vớibot bằng các biểu mẫu và thẻ , menu đơn giản hoặc ngôn ngữ tự nhiên
• Chọn mô hình mà bot sẽ sử dụng để tương tác với người dùng Cóthể xây dựng bot với Azure Bot Service hoặc có thể bắt đầu với SDK Bot Builderbằng C # hoặc Node.js
• Tạo tri thức cho bot với Cognitive Services
• Đăng ký bot trên Cổng thông tin dành cho nhà phát triển và kết nối
nó với người dùng thông qua các kênh họ sử dụng, chẳng hạn như Facebook,Skype và Microsoft Teams
• Khi bot đã sẵn sàng, triển khai bot lên một dịch vụ đám mây như Microsoft Azure
Trang 14Hình 7: Cách thức hoạt động của Bot
Framework 2.4 Xử lý ngôn ngữ tự nhiên
Microsoft Cognitive Services cho phép khai thác bộ sưu tập các thuật toán
AI mạnh mẽ ngày càng tăng do các chuyên gia phát triển trong các lĩnh vực xử
lý ngôn ngữ tự nhiên Các API tích hợp vào hầu hết các ngôn ngữ hiện đại vànền tảng Các API cũng không ngừng cải tiến, học hỏi và ngày càng thông minhhơn, vì vậy trải nghiệm luôn được cập nhật ngày
Tương tác giữa người dùng và bot chủ yếu là ở dạng tự do, vì vậy bot cầnhiểu ngôn ngữ một cách tự nhiên và theo ngữ cảnh Các API ngôn ngữ cung cấpcác mô hình ngôn ngữ mạnh mẽ để xác định người dùng muốn, xác định cáckhái niệm và thực thể trong một câu nhất định và cuối cùng là cho phép các botphản hồi với hành động thích hợp
Năm API hỗ trợ một số khả năng phân tích văn bản, chẳng hạn như kiểmtra chính tả, phát hiện tình cảm, lập mô hình ngôn ngữ và trích xuất thông tin chitiết chính xác và phong phú từ văn bản:
• Language Understanding Intelligent Service (LUIS): có thể xử lý
ngôn ngữ tự nhiên bằng cách sử dụng hoặc các mô hình ngôn ngữ được đào tạo tùychỉnh
• API phân tích văn bản phát hiện tình cảm, cụm từ khóa, chủ đề và
ngôn ngữ từ văn bản
• API kiểm tra chính tả Bing cung cấp khả năng kiểm tra chính tả mạnh mẽ
và có thể nhận ra sự khác biệt giữa tên, tên thương hiệu và tiếng lóng
Trang 15• API phân tích ngôn ngữ sử dụng các thuật toán phân tích ngôn ngữ
nâng cao để xử lý văn bản và thực hiện các hoạt động chẳng hạn như chia nhỏ cấutrúc của văn bản hoặc thực hiện gắn thẻ một phần giọng nói và phân tích cú pháp
• API mô hình ngôn ngữ web (WebLM) có thể được sử dụng để tự động
hóa nhiều quá trình xử lý ngôn ngữ tự nhiên các tác vụ, chẳng hạn như tần suất từhoặc dự đoán từ tiếp theo, sử dụng các thuật toán mô hình ngôn ngữ nâng cao
2.5 Bot Framework nhắm tới đối tượng nào?
Đối tượng mà Bot Framework nhắm tới là bất ký ai muốn tạo nên mộtChatbot cho riêng mình Bạn không nhất thiết phải giỏi thuật toán, phải biết vềxử lý ngôn ngữ tự nhiên mới viết được một Chatbot thông minh
Khi tự mình viết Chatbot, người phát triển sẽ phải đối mặt với những vấn đềsau:
• Chatbot cần phải hiểu được ngôn ngữ và có kỹ năng đàm thoại
• Chúng cần phải hiệu quả, linh hoạt và có khả năng mở rộng
• Chúng phải kết nối được với người dùng – lý tưởng nhất là ở bất kì ngữ cảnh và ngôn ngữ nào
Bot Framework cung cấp những công cụ hỗ trợ người phát triển giảiquyết các vấn đề này, do đó chúng ta chỉ cần tập trung vào phát triển nghiệp vụcủa Chatbot
Những lợi thế khi sử dụng Bot Framework:
• Viết một Chatbot đồng thời có thể chạy trên những nền tảng khác nhau:
Skype, Facebook Messenger, Slack…
• Được cung cấp Embedded Web Chat Control (có thể nhúng Chatbot này vào luôn trang web sẵn có mà không cần tốn công code)
• Direct Line API: REST API có thể thêm Chatbot vào bất kì ứng dụng nào, không giới hạn về ngôn ngữ và nền tảng
• Cuối cùng là phần quan trọng nhất: Làm cho Chatbot trở nên thôngminh hơn bằng Cognitive Services như LUIS cho việc xử lý ngôn ngữ tự nhiên,Translator giúp tự động phiên dịch qua hơn 30 ngôn ngữ khác nhau
14
Trang 16CHƯƠNG 3 THỰC NGHIỆM XÂY DỰNG CHATBOT3.1 Chatbot hỗ trợ tra cứu thông tin chuẩn đầu ra Kỹ năng sử dụng CNTT tại Trung tâm Công nghệ Thông tin Đại học Công nghiệp Hà Nội
3.1.1 Phát biểu bài toán
Trung tâm Công nghệ thông tin có chức năng tham mưu giúp việc choHiệu trưởng quản lý hoạt động nghiên cứu và ứng dụng công nghệ thông tin(CNTT); đào tạo, bồi dưỡng về CNTT theo phân cấp; phát triển và vận hành
hệ thống hạ tầng CNTT của Nhà trường; tổ chức thực hiện các dịch vụ vềCNTT; thực hiện các chức năng khác theo quy định của pháp luật và Quychế tổ chức, hoạt động của Nhà trường
Một trong những nhiệm vụ của Trung tâm Công nghệ Thông tin là Tổchức quản lý, đào tạo, đánh giá chuẩn đầu ra CNTT cho người học thuộc cáckhoa, trung tâm (trừ khoa CNTT) của Nhà trường
Trong công tác đào tạo, đánh giá chuẩn đầu ra CNTT, việc tra cứuthông tin học sinh, sinh viên bao gồm các thông tin Lịch học, Điều kiện dựthi, Lịch thi, Điểm đánh giá Kỹ năng sử dụng Công nghệ thông tin (KNSDCNTT) diễn ra thường xuyên và liên tục
Tuy nhiên, hiện nay học sinh, sinh viên chỉ tra cứu trên một kênh thôngtin duy nhất đó là Website của Trung tâm Việc này hạn chế việc tiếp nhậnthông tin của người học, ngược lại với sự phát triển nhiều nền tảng mạng xãhội, cũng như của cuộc Cách mạng công nghiệp 4.0, việc áp dụng trí tuệnhân tạo vào hoạt động dạy và học là thực sự cần thiết đặc biệt trong Trungtâm Công nghệ thông tin Xuất phát từ yêu cầu đó, Nhóm có đề xuất xâydựng một Chatbot hỗ trợ việc tra cứu các thông tin về hoạt động dạy, học vàđánh giá chuẩn đầu ra KNSD CNTT tại Trung tâm Công nghệ thông tin,trường Đại học Công nghiệp Hà Nội
3.1.2 Triển khai
3.1.2.1 Xây dựng APIs
Để tạo Chatbot tra cứu các thông tin dạy, học và đánh giá chuẩn đầu raKNSD CNTT cần xây dựng 3 API: Tra cứu lịch học và điều kiện dự thi, Tracứu lịch thi, Tra cứu điểm thi đánh giá chuẩn đầu ra với tham số đầu vào làmã học sinh sinh viên