CHƯƠNG 1: GIỚI THIỆU CHUNG 1. Tổng quan đề tài - Tên ứng dụng: Houseware Website - Chủ đề chính: Website bán hàng gia dụng hỗ trợ chatbot - Nền tảng phát triển: Website - Mô hình phát triển: MVC 1. Lý do chọn đề tài Ngày nay, con người đang cố gắng ngày càng nâng cao hiệu suất làm việc, vừa nhanh lại vừa chính xác, đó là yêu cầu mà con người đang hướng tới. Thật vậy, để giải quyết vấn đề mua sắm của con người, người ta đã và đang giảm dần lượng mua trực tiếp thông qua các gian hàng trong chợ và thay vào đó là mua sắm trực tuyến thông qua các sàn thương mại điện tử hoặc qua các website bán hàng.
Tuy vậy, hiện nay có rất ít website đáp ứng được các nhu cầu mua bán, trao đổi với khách hàng thông qua việc nhắn tin trực tiếp, bởi vì việc giải đáp những thắc mắc của khách hàng đòi hỏi website cần có đủ số lượng nhân lực để trao đổi thông tin với khách hàng ngay lúc khách hàng yêu cầu. Hiểu được thực trạng đó, nhóm em đã đưa ra một hướng giải quyết vấn đề ấy mà không cần phải tốn quá nhiều nhân lực cho các cửa hàng, đó là “Xây dựng website bán hàng gia dụng tích hợp chatbot”, nhằm xây dựng hệ thống quản lý khách hàng vừa nhanh lại vừa tiện lợi cho khách hàng cũng như các chủ cửa hàng trong việc quản lý cũng như tiết kiệm được một lượng chi phí nhân lực. Website là nơi mà khách hàng có thể truy cập để xem sản phẩm, xem chi tiết sản phẩm, lựa chọn món hàng yêu thích, thanh toán hóa đơn cũng như để lại nhận xét dành cho sản phẩm. Với mỗi mặt hàng trên website, người quản lý hay nhân viên bán hàng sẽ phải nhập vào hình ảnh, thông tin sản phẩm, giá cả cụ thể, khuyến mãi (nếu có) để khách hàng có thể thoải mái lựa chọn.
Nếu khách hàng có thắc mắc về sản phẩm có thể liên hệ với cửa hàng bằng cách nhắn tin trực tiếp với cửa hàng, lúc này chatbot sẽ thực hiện nhiệm vụ của mình đó là tư vấn cho khách hàng, đưa ra các sản phẩm tương tự, giới thiệu thêm các sản phẩm cùng hãng hoặc cùng giá tiền. 12 Xây dựng Website bán hàng gia dụng hỗ trợ chatbot Báo cáo đồ án 1 1. Đối tượng sử dụng − Tất cả mọi người có nhu cầu mua sắm đồ đa dụng. − Chủ các cửa hàng đồ dùng gia dụng.
Phạm vi nghiên cứu 1. Phạm vi môi trường: Website 1. Phạm vi chức năng: Xây dựng Chatbot: + Có khả năng trả lời các câu hỏi về sản phẩm 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 tiêu dùng.
+ Cung cấp liên hệ trực tiếp đến chủ cửa hàng 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. + Chatbot hiểu được tương đối ngôn ngữ tự nhiên. Xây dựng Website: + Cung cấp thông tin mới nhất về sản phẩm, về cửa hàng. + Cung cấp chức năng thêm đồ vào giỏ hàng và thanh toán.
+ Cung cấp các chức năng quản lí sản phẩm bao gồm đăng tải, thay đổi và xóa bỏ. 13 Xây dựng Website bán hàng gia dụng hỗ trợ chatbot Báo cáo đồ án 1 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.js là một thư viện Javascript đang nổi lên trong những năm gần đây với xu hướng Single Page Application. Trong khi những framework khác cố gắng hướng đến một mô hình MVC hoàn thiện thì React nổi bật với sự đơn giản và dễ dàng phối hợp với những thư viện Javascript khác. Nếu như AngularJS là một Framework cho phép nhúng code javasscript trong code html thông qua các attribute như ng-model, ng-repeat.thì với react là một library cho phép nhúng code html trong code javascript nhờ vào JSX, bạn có thể dễ dàng lồng các đoạn HTML vào trong JS.
Tích hợp giữa javascript và HTML vào trong JSX làm cho các component dễ hiểu hơn. 14 Xây dựng Website bán hàng gia dụng hỗ trợ chatbot Báo cáo đồ án 1 2.js NodeJS là một nền tảng được xây dựng trên V8 JavaScript Engine – trình thông dịch thực thi mã JavaScript, giúp xây dựng các ứng dụng web một cách đơn giản và dễ dàng mở rộng. NodeJS được phát triển bởi Ryan Dahl vào năm 2009 và có thể chạy trên nhiều hệ điều hành khác nhau: OS X, Microsoft Windows, Linux… 15 Xây dựng Website bán hàng gia dụng hỗ trợ chatbot Báo cáo đồ án 1 2.css Tailwind là một tập hợp các lớp tiện ích (class) cấp thấp. Chúng có thể được sử dụng như những viên gạch lego để xây dựng bất kỳ loại thành phần nào.
Framework bao gồm các thuộc tính CSS quan trọng nhất (nhưng có thể dễ dàng mở rộng bằng nhiều cách khác nhau). Với Tailwind, tùy biến trở nên dễ dàng hơn bao giờ hết. Framework này có tài liệu vô cùng chi tiết, bao gồm tất cả cách sử dụng chi tiết của class và chỉ dẫn nhiều cách tùy chỉnh khác nhau. Tất cả các trình duyệt hiện đại và IE11 +, đều được hỗ trợ.
16 Xây dựng Website bán hàng gia dụng hỗ trợ chatbot Báo cáo đồ án 1 2.1: Hệ quản trị cơ sở dữ liệu MongoDB Firebase là dịch vụ cơ sở dữ liệu hoạt động trên nền tảng đám mây – cloud. Kèm theo đó là hệ thống máy chủ cực kỳ mạnh mẽ của Google. Chức năng chính là giúp người dùng lập trình ứng dụng bằng cách đơn giản hóa các thao tác với cơ sở dữ liệu. Với firebase, ta có thể tạo ra những ứng dụng real-time như app chat, cùng nhiều tính năng như xác thực người dùng, Cloud Messaging,.
Có thể dùng firebase giống như phần backend của app. Các dịch vụ của firebase hoàn toàn miễn phí, tuy nhiên cần phải trả thêm tiền nếu muốn nâng cấp lên. Cần cân nhắc điều này nếu muốn xây dựng một ứng dụng lớn sử dụng phần backend là firebase, vì cái giá khi muốn nâng cấp còn khá đắt đỏ so với việc xây dựng backend truyền thống. 17 Xây dựng Website bán hàng gia dụng hỗ trợ chatbot Báo cáo đồ án 1 2.1: Hệ thống quản lý mã nguồn GitHub 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. 18 Xây dựng Website bán hàng gia dụng hỗ trợ chatbot Báo cáo đồ án 1 CHƯƠNG 3: CHATBOT:DIALOGFLOW 3.
Công nghệ tìm hiểu : DialogFlow Hình 3.1-1: ChatBot DialogFlow Dialogflow (tiền thân là API.AI) là một dịch vụ do Google 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). Dialogflow sử dụng trí tuệ nhân tạo (AI) giúp phân tích ngôn ngữ tự nhiên để hiểu được những gì người dùng đưa vào. Dialogflow hiện có sẵn các kịch bản và Dialogflow cũng được dạy khá tốt với lượng dữ liệu khá đồ sộ. Chỉ tiết là đa phần Dialogflow làm việc tốt hơn với Tiếng Anh và một số tiếng của các nước đông dân khác trong đó có tiếng Việt.
Ngoài ra Dialogflow còn cho phép bạn liên kết Chatbot của bạn với Messenger hay Skype hay Slack… một cách rất đơn giản. Quy trình hoạt động a. Về Agent Bot Dialogflow Agent là một Chatbot ảo xử lý các cuộc trò chuyện, đối thoại với người dùng. Agent là một mô-đun hiểu được ngôn ngữ tự nhiên, từ đó đọc được những sắc cảm, ngữ cảnh trong cuộc đối thoại.
Dialogflow Agent Bot có thể hiểu được văn bản, hoặc giọng nói và phản hồi lại hình thức tương tự đến với người dùng. Người lập trình viên có thể tạo và thiết kế một Agent để xử lý các đoạn hội thoại trong ứng dụng một cách dễ dàng Dialogflow Agent tương tự như một người hỗ trợ cuộc gọi trong các trung tâm, được đào tạo để xử lý các tình huống hội thoại dự kiến. Và đặc biệt, việc đào tạo này không cần quá rõ ràng vì Agent Bot có thể tự học trong quá trình xử lý thông tin Một 19 Xây dựng Website bán hàng gia dụng hỗ trợ chatbot Báo cáo đồ án 1 Agent bao gồm: - Agent Setting: cài đặt tùy chỉnh Bot. Người lập trình có thể tùy chọn gói ngôn ngữ, cài đặt chương trình Học máy, kiểm soát hành vi của Bot thông qua cài đặt tùy chỉnh này.
- Intents: Phân loại thoại người dùng có thể sử dụng trong quá trình trò chuyện. - Entities: Xác định và rút trích dữ liệu cụ thể từ thoại người dùng sử dụng - Knowledge: Phân tích tài liệu và tìm câu trả lời tự động. - Integrations: Tích hợp cho các ứng dụng hoặc dịch vụ tương tác khác (ví dụ: Google Assistant) - Fulfillment: Thực hiện kết nối với dịch vụ tích hợp khác. Về Intent Intent (Intention) được sử dụng để phân loại thoại người dùng nhập vào trong một cuộc nói chuyện.
Mỗi Bot sẽ có thể được định nghĩa nhiều Intent, cũng như có thể kết hợp và phân cấp các Intent để tạo thành một cuộc trò chuyện hoàn chỉnh. Khi người dùng nhập vào một lời thoại, ChatBot DialogFlow sẽ thực hiện đối sánh lời thoại đó, tìm ra Intent phù hợp nhất rồi gửi phản hồi trở lại. Việc thực hiện đối sánh lời thoại này còn được gọi là phân loại Intent (Intent classification). Một Intent cơ bản bao gồm những phần như sau: - Training phrases: Cụm từ đào tạo trong Intent.
Đây là những cụm từ mà người dùng có thể nói khi trò chuyện cùng Chatbot. Khi lời thoại nhập vào tương đối giống với một cụm từ nào trong Trainning phrases, Dialogflow ChatBot sẽ truy cập vào Intent đấy, thực hiện nội dung Action và phản hồi phần Responses của Intent. Nhờ vào khả năng học hỏi bằng trí tuệ nhân tạo, Dialogflow có thể tự mở rộng cụm từ học được tương tự cụm từ bạn đã nhập vào Training phrases, từ đó tăng khả năng phân loại Intent và giúp giảm thiểu thời gian cho người lập trình. - Action: Hành động của một Intent, có thể điều chỉnh tùy ý.