Chatbots là một hình thức thô sơ của phần mềm trí tuệ nhân tạo, là một chươ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ác phương pháp nhập văn bản, âm th
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à con ngườ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ão củ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ải quyế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ột chươ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ác phươ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ông qua 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 Conversation Service, 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ột tầ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ưng Chatbots đang được nghiên cứu và phát triển với tốc độ chóng mặt bởi các trung tâ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ản hồ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ên nhằ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 6 Bả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
❑ Bộ kích hoạt: tay, chân, …
❖ Ví dụ 2: Người máy Aishimo
❑ Cảm biến: camera, các bộ dò đường hồng ngoại
❑ Bộ kích hoạt: mô tơ
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ình máy tính có khả năng nhận thức được môi trường xung quanh và thực hiện các hà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ản thâ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ọi thờ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ại nế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ường tĩ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 FRAMEWORK 2.1 ChatBot là gì?
ChatBot được coi như một ứng dụng mà người dùng tương tác theo cách trò 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ái hộ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ác khá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ạn thà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ứa vă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ôn ngữ 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ằ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 Framework nà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ựng Chatbot 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 đính kém, sử dụng hình ảnh để tương tác… Thậm chí bây giờ SDK còn hỗ trợ cả Skype Call
• 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ác tin 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ả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
• 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ây dựng, triển khai và xuất bản các bot, bao gồm cả Azure Bot Service, SDK Bot Builder, 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ới bot 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 Builder bằ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 minh hơ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ần hiểu ngôn ngữ một cách tự nhiên và theo ngữ cảnh Các API ngôn ngữ cung cấp các mô hình ngôn ngữ mạnh mẽ để xác định người dùng muốn, xác định các khá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 bot phả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ểm tra 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 chi tiế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ùy chỉ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ấu trú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ột Chatbot 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ải quyế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ông minh 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