CHƯƠNG 1: GIỚI THIỆU CHUNG 1.1 Tổng quan đề tài: - Tên đồ án: Website khoá học trực truyến và Chatbot hỗ trợ tư vấn - Chủ đề chính: Tư vấn khoá học lập trình cho một trung tâm cụ thể - Mô hình phát triển: MVC - Nền tảng phát triển: - Tích hợp Chatbot: 1.2 Lý do chọn đề tài: Học trực tuyến hiện đang trở thành xu hướng mới hiện nay vì tốc độ phát triển internet, tính tiện dụng và do ảnh hưởng của đại dịch. Nhu cầu học trực tuyến của mọi người ngày càng tăng ở rất nhiều lĩnh vực khác nhau như ngoại ngữ, công nghệ thông tin, thiết kế, kinh doanh… Các trung tâm, tổ chức giáo dục hiểu được điều đó mà đã tạo ra rất nhiều loại khóa học trực tuyến đa dạng về mức độ, giá cả và thời gian. Vì vậy nên người dùng khi muốn chọn cho mình khóa học phù hợp nhu cầu, trình độ cũng như giá cả vừa phải với ví tiền hay thời lượng học hợp lý thường sẽ phải mất nhiều thời gian để suy nghĩ, cân nhắc, và tìm hiểu. Để giải quyết cho vấn đề đó thì một website giới thiệu khóa học và hỗ trợ chatbot tư vấn sẽ là giải pháp tốt nhất.3 Đối tượng sử dụng: Khách hàng có nhu cầu học lập trình 1.4 Phạm vi nghiên cứu: 1.1 Phạm vi môi trường: Web 12 1.2 Phạm vi chức năng: - Đối với chatbot: + Có khả năng trả lời các câu hỏi về khóa học một cách chi tiết + Phân tích được nhu cầu và đưa ra tư vấn hợp lý đối với người dùng + Cung cấp liên hệ trực tiếp đến với nhân viên tư vấn khi vấn đề đặt ra ngoài phạm vi của bản thân nó và cập nhập được cách xử lý đối với các trường hợp này + Cung cấp các thông tin về lộ trình học + Chatbot hiểu được tương đối tiếng Việt - Đối với ứng dụng: + Cung cấp thông tin mới nhất về trung tâm, về khóa học của trung tâm + Cung cấp chức năng đăng kí khoá học, xem khoá học + Cung cấp các chức năng quản lí bài viết bao gồm đăng tải, thay đổi và xóa bỏ… 13 CHƯƠNG 2: CƠ SỞ LÍ THUYẾT 2.1 Công nghệ sử dụng Backend: Codeigniter Framework Codeigniter là 1 framework viết bằng ngôn ngữ lập trình PHP dựa trên mô hình MVC.
Nó cho phép các nhà phát triển xây dựng các ứng dụng web nhanh hơn bằng cách cung cấp những thư viện đầy đủ cho các tác vụ thông thường. Codeigniter là một trong các nền tảng thiết kế web theo mã nguồn mở được ưa chuộng hiện nay, bên cạnh Laravel, Drupal, Magento,… Nền tảng này được sử dụng chủ yếu để xây dựng các loại ứng dụng web động có tương tác với ngôn ngữ PHP. Phiên bản đầu tiên của Codeigniter được phát hành ngày 28/02/2006. Tính đến thời điểm hiện tại thì Codeigniter đang được phát triển bởi ExpressionEngine Development Team thuộc EllisLab, Inc.
Frontend: Bootstrap là một framework bao gồm các HTML, CSS và JavaScript template dùng để phát triển website chuẩn responsive. 14 Bootstrap là một bộ sưu tập miễn phí của các mã nguồn mở và công cụ dùng để tạo ra một mẫu webiste hoàn chỉnh. Với các thuộc tính về giao diện được quy định sẵn như kích thước, màu sắc, độ cao, độ rộng…, các designer có thể sáng tạo nhiều sản phẩm mới mẻ nhưng vẫn tiết kiệm thời gian khi làm việc với framework này trong quá trình thiết kế giao diện website. PHP: PHP là viết tắt của Hypertext Preprocessor.
PHP là một ngôn ngữ kịch bản mã nguồn mở, thông dịch và hướng đối tượng, được thực hiện ở phía máy chủ. Đối với dự án di động, PHP được sử dụng để viết các Web API nhằm mục đích giao tiếp với server database MySQL. API là viết tắt 15 của Application Programming Interface – giao diện lập trình ứng dụng. API cung cấp khả năng cung cấp khả năng truy xuất đến một tập các hàm hay dùng.
Và từ đó có thể trao đổi dữ liệu giữa các ứng dụng. Web API là một phương thức dùng để cho phép các ứng dụng khác nhau có thể giao tiếp, trao đổi dữ liệu qua lại. Dữ liệu được Web API trả lại thường ở dạng JSON hoặc XML thông qua giao thức HTTP hoặc HTTPS. MySQL SQL (Structured Query Language) Ngôn ngữ truy vấn có cấu trúc: là ngôn ngữ theo chuẩn ANSI để định nghĩa và xử lý dữ liệu trong một cơ sở dữ liệu quan hệ.
Các phát biểu SQL dùng để truy tìm và cập nhật dữ liệu trong một cơ sở dữ liệu. MySQL là cơ sở dữ liệu tốc độ cao, ổn định 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. Hệ quản trị cơ sở dữ liệu MySQL được hiểu như là chương trình dùng để quản lý hệ thống cơ sở dữ liệu, trong đó, cơ sở dữ liệu là một hệ thống lưu trữ thông tin được sắp xếp rõ ràng, phân lớp ngăn nắp. Nó giúp bạn có thể truy cập dữ liệu một cách thuận lợi và nhanh chóng nhất.
Vì hỗ trợ đa số các ngôn ngữ lập trình nên MySQL chính là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất trên thế giới. Hiện MySQL đang được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng. Github: 16 GitHub là một hệ thống quản lý dự án và phiên bản code, hoạt động giống như một mạng xã hội cho lập trình viên. Các lập trình viên có thể clone lại mã nguồn từ một repository và Github chính là một dịch vụ máy chủ repository công cộng, mỗi người có thể tạo tài khoản trên đó để tạo ra các kho chứa của riêng mình để có thể làm việc.
Github có đầy đủ những tính năng của Git, ngoài ra nó còn bổ sung những tính năng về social để các developer tương tác với nhau. Github cung cấp các tính năng social networking như feeds, followers, và network graph để các developer học hỏi kinh nghiệm của nhau thông qua lịch sử commit. 17 CHƯƠNG 3: CHATBOT 3.1 Công nghệ sử dụng: Giao diện chatbot: Zobot là một nền tảng phát triển bot trên Zoho SalesIQ, có thể xây dựng các chatbot rất hấp dẫn để tự động hóa các tương tác của khách hàng. Zobot được thiết kế để tương tác trò chuyện với khách truy cập trang web.
DialogFlow Dialogflow (tiền thân là API.AI) là một dịch vụ sau khi được Google mua lại vào tháng 9 năm 2016. Tiền thân là một công ty nổi tiếng với trợ lý ảo Speaktoit, cung cấp nhằm giúp các lập trình viên dễ dàng hơn khi lập trình các sản phẩm có giao tiếp giữa người dùng với sản phẩm thông qua các đoạn hội thoại bằng văn bản (text) hoặc giọng nói (voice). Nói cách khác, Dialogflow là một framework cung 18 cấp các dịch vụ NLP / NLU (Natural Language Processing / Natural Language Understanding) - xử lý ngôn ngữ tự nhiên. Understanding là quá trình training từ cho bot hiểu được ý nghĩa từ câu trả lời của người dùng đã cung cấp.
Intent là ý định của người dùng. Sau khi nhận một câu trả lời hoặc yêu cầu từ người dùng, Hệ thống Dialogflow sẽ phân tích và trả ra kết quả một intent phù hợp, intent này sẽ chứa bao gồm Context ( ngữ cảnh), Training phrase (các câu training cho bot), Response (Câu trả lời), Action (hành động kèm theo), parameters (các đối số mà người dùng đã định nghĩa trong phần training phrase). Entities là các thực thể bổ nghĩa cho một Intent. Ngoài ra người dùng cũng có thể tạo ra một entity cấu tạo từ những entities nhỏ hơn để tạo nên một câu training giúp chatbot dễ dàng phân tích dữ liệu để trả về cho lập trình viên.
Việc kết hợp các entities lại với nhau tạo ra một thực thể mới sẽ giúp cho chatbot hiểu ngữ nghĩa cho những câu phức tạp hơn.2 Giao diện chatbot: 20 3.3 Quy trình hoạt động: Hệ thống bao gồm các thành phần và tương giác giữa chúng như sau: - Giao diện chatbot Zobot: Người dùng chat trực tiếp zobot. - Hệ thống xử lý: Xử lý hành vi chat của người dùng, đưa ra câu trả lời tư vấn cho người dùng phù hợp. - User: Người dùng có thể chat trực tiếp với nhân viên hoặc lựa chọn kịch bản hỗ trợ tư vấn do chatbot cung cấp. - Hệ thống xử lý kịch bản: Xử lí hành vi chat của người dùng để xác định kịch bản phù hợp cho người dùng.
- Dialogflow: Xử lý ngôn ngữ tự nhiên của người dùng để đưa ra các thông tin phù hợp đến hệ thống xử lý kịch bản. 21 - Đối với các hành động đã được phân tích chọn chức năng ở Menu chức năng, hệ thống xử lý sẽ đưa dữ liệu đã phân tích đến hệ thống quản lý kịch bản sẽ đưa ra kịch bản phù hợp với chức năng người dùng đã chọn. - Đối với các hành động đã được phân tích cần xử lý phân tích ngôn ngữ tự nhiên thì hệ thống xử lý sẽ đưa thông tin đến server của Dialogflow. Sau đó, Diagloflow sẽ phân tích đoạn chat người dùng gửi sẽ phù hợp với kịch bản nào thì sẽ đưa đến hệ thống xử lý kịch bản và trả về những thông tin cần thiết cho người dùng.4 Sơ đồ kịch bản đối thoại: 22 CHƯƠNG 4: THIẾT KẾ HỆ THỐNG 4.1 Kiến trúc hệ thống: Mô hình MVC Model: Lưu trữ tất cả dữ liệu của ứng dụng.
Bộ phận này là cầu nối giữa cơ sở dữ liệu quản lý cả nhân và trình bày giao diện người dùng. Cho phép người dùng có thể nhập và xuất đến các cơ sở dữ liệu lần lượt theo quyền của họ khi cần thiết và dữ liệu sẽ được lưu dữ trên database. View: giao diện người dùng, nơi người dùng có thể lấy được thông tin dữ liệu của MVC thông qua các công thức truy vấn và ghi lại hoạt động của người dùng để tương tác với Controller. Controller: xử lý yêu cầu từ người dùng thông qua View.
Từ đó, Controller gửi dữ liệu hợp lý đến người dùng bằng các kết nối đến Model và trưng bày nó trên View cho người dùng.2 Chi tiết các thành phần trong hệ thống: STT Thành phần Chi tiết 1 Giao diện người dùng Cung cấp một giao diện cho người dùng thực hiện các thao tác nhập/xuất dữ liệu. Đồng thời, trong lúc sử dụng, thông báo cho người dùng nếu có lỗi xảy ra 2 Mô hình MVC Tiếp nhận yêu cầu từ giao diện người dùng, kiểm tra tính đúng đắn theo ràng buộc và thực thi yêu cầu nếu điều kiện được đáp ứng 3 Cơ sở dữ liệu Lưu trữ toàn bộ dữ liệu liên quan đến thông tin trung tâm. 24 CHƯƠNG 5: ĐẶC TẢ USE CASE 5.2 Danh sách tác nhân: STT Tên tác nhân Mô tả 1 Khách hàng Khách hàng sử dụng ứng dụng mua khoá học.