Mục đích đồ án
Giải pháp tự động hóa quy trình mua sắm giúp khách hàng dễ dàng hơn khi tìm kiếm và đặt hàng sản phẩm, cụ thể là laptop Hệ thống sẽ tự động thực hiện các bước chào hỏi, tra cứu thông tin sản phẩm và hỗ trợ đặt hàng, mang lại trải nghiệm mua sắm thuận tiện và nhanh chóng.
Công nghệ sử dụng
Wit.ai
Xử lý ngôn ngữ tự nhiên (NLP) là một lĩnh vực của trí tuệ nhân tạo, giúp máy tính trích xuất dữ liệu có ý nghĩa từ ngôn ngữ tự nhiên Trong dự án này, NLP được áp dụng để phân tích tin nhắn từ khách hàng gửi qua Facebook Messenger, nhằm thu thập thông tin hữu ích.
Wit.ai là nền tảng xử lý ngôn ngữ tự nhiên (NLP) miễn phí, thuộc sở hữu của Facebook, giúp lập trình viên xây dựng ứng dụng hoặc thiết bị giao tiếp qua giọng nói hoặc văn bản Nền tảng này cung cấp giao diện thân thiện và API dễ học, hỗ trợ việc phát triển các ứng dụng một cách nhanh chóng và hiệu quả.
Trong đồ án, Wit.ai được áp dụng để huấn luyện một mô hình có khả năng lọc và phân tích các từ khóa quan trọng liên quan đến việc đặt hàng, đồng thời cung cấp thông tin về sản phẩm trong các tin nhắn văn bản.
Tìm hiểu thêm về Wit.ai: https://wit.ai/docs
NodeJS
NodeJS là một môi trường chạy mã nguồn mở cho JavaScript, hoạt động trên engine V8, cho phép thực thi mã JavaScript trực tiếp trên máy tính mà không cần trình duyệt web.
Node.js cho phép lập trình viên sử dụng JavaScript để phát triển back-end cho server, điều này là mục tiêu chính khi áp dụng Node.js trong dự án.
Tìm hiểu thêm về NodeJS: https://nodejs.org/en/about/
Facebook Messenger API
Facebook Messenger API giúp tương tác với những dịch vụ của Facebook thông qua yêu cầu và phản hổi HTTP
Tìm hiểu thêm về Facebook Messenger Platform: https://developers.facebook.com/docs/messenger-platform/getting-started
Facebook Page
Tạo và sử dụng Facebook Page để khách hàng tương tác được với chatbot.
Glitch
Một công cụ host server miễn phí
Trong đồ án, Glitch được sử dụng để host server NodeJS
Tìm hiểu thêm về Glitch: https://glitch.com/about
Cách thức hoạt động
Hình 1.1 Flowchart cách thức hoạt động
Sử dụng Wit.ai để đào tạo mô hình nhằm trích xuất các từ khóa liên quan đến chào hỏi, tra cứu thông tin và đặt hàng sản phẩm.
Tạo một Facebook page để người dùng có một giao diện để tương tác với Messenger Chatbot
NodeJS server nhận tin nhắn từ khách hàng qua Messenger Chatbot thông qua Messenger API, sau đó chuyển tiếp tin nhắn này đến server Wit.ai, nơi AI đã được huấn luyện để trích xuất và xử lý thông tin, cuối cùng trả về một cấu trúc dữ liệu được tạo ra từ thông tin đó.
NodeJS server dựa trên cấu trúc dữ liệu trả về từ Wit.ai để quyết định, hình thành và gửi tin nhắn về cho Messenger Chatbot ở phía client.
Usecase
Chào hỏi
Hình 1.2 Usecase Chào hỏi
Usecase Description Khách hàng gửi tin nhắn có dạng chào hỏi
Trigger Muốn chào hỏi cửa hàng
Pre-condition • Đăng nhập vào Facebook
• Nhấn Enter hoặc nút gửi trong khung chat
Hỏi thông số
Hình 1.3 Usecase Hỏi thông số
Usecase Description Khách hàng gửi tin nhắn có dạng hỏi về thông số của một sản phẩm
Trigger Muốn hỏi về thông số của một sản phẩm
• Nhấn Enter hoặc nút gửi trong khung chat
Đặt hàng
Hình 1.4 Usecase Đặt hàng
Usecase Description Khách hàng gửi tin nhắn có dạng đặt hàng sản phẩm với số lượng cụ thể
Trigger Muốn đặt hàng sản phẩm với số lượng cụ thể
Pre-condition • Đăng nhập vào Facebook
• Nhấn Enter hoặc nút gửi trong khung chat
Không xác nhận
Hình 1.5 Usecase Không xác nhận
Usecase Description Khách hàng gửi tin nhắn chatbot không nhận dạng được
Trigger Tin nhắn không nhận dạng được
• Nhấn Enter hoặc nút gửi trong khung chat
Huấn luyện model Wit.ai
Các bước thực hiện
Đăng nhập vào Wit.ai
Tạo project mới với tên là
Lần lượt nhập các dataset được đề cập ở mục 2.1.2
Hình 2.1 Tab Understanding sau khi nhập một câu hỏi để chuẩn bị train
Khi huấn luyện một câu hỏi, sẽ chọn cho nó một mục đích hỏi (Intent) và các loại từ khóa (Entity) tồn tại trong câu hỏi đó
Laptop_bot AI nhận diện câu hỏi tương tự bằng cách dựa vào độ tự tin từ các câu hỏi trước đó Điều này giúp xác định mục đích của câu hỏi và xác định các từ khóa quan trọng trong câu hỏi đó.
Để đạt được hiệu quả trong việc hỏi, cần huấn luyện laptop_bot AI với nhiều cách hỏi khác nhau Việc này không chỉ giúp tăng cường độ tự tin mà còn hỗ trợ xác định chính xác mục đích và các từ khóa trong câu hỏi.
Hình 2.2 Tab Understanding sau khi nhập các câu hỏi để train
Hình 2.3 Tab Intents liệt kê các mục đích hỏi đã được phân loại sau khi train
Hình 2.4 Tab Entities liệt kê các nhóm từ khóa đã được phân loại sau khi train
Hình 2.5 Tab Utterances liệt kê các câu hỏi đã được train
Dataset
Mục đích câu hỏi Các dạng câu hỏi để huấn luyện
Mình muốn biết thêm về XYZ Mình muốn biết thêm thông tin về laptop XYZ Cho mình hỏi về XYZ
Laptop XYZ là một sản phẩm đáng chú ý với nhiều thông số kỹ thuật ấn tượng Nếu bạn đang tìm kiếm thông tin chung về XYZ, hãy xem xét các đặc điểm nổi bật như hiệu năng, thiết kế và tính năng Các thông số kỹ thuật của XYZ bao gồm bộ vi xử lý, dung lượng RAM, và khả năng lưu trữ, giúp bạn đánh giá khả năng hoạt động của máy Hãy cùng khám phá những điểm mạnh của laptop XYZ để đưa ra quyết định mua sắm hợp lý.
XYZ có các thông số như thế nào
Giá giá của XYZ là bao nhiêu XYZ giá bao nhiêu
Chất lượng chất lượng XYZ như thế nào XYZ được đánh giá như thế nào XYZ được đánh giá bao nhiêu sao
CPU tốc độ CPU của XYZ XYZ có tốc độ CPU thế nào XYZ có CPU thế nào
RAM dung lượng RAM của XYZ là bao nhiêu RAM của XYZ
XYZ có bao nhiêu RAM Ổ cứng dung lượng ổ cứng của XYZ ổ cứng của XYZ XYZ có ổ cứng thế nào XYZ có dung lượng ổ cứng bao nhiêu
RAM và ổ cứng của XYZ có các thông số kỹ thuật đáng chú ý mà bạn nên biết Các thông số này bao gồm dung lượng RAM, tốc độ truyền dữ liệu, loại ổ cứng (HDD hoặc SSD), và dung lượng lưu trữ tối đa Để hiểu rõ hơn về hiệu suất và khả năng hoạt động của XYZ, bạn có thể tham khảo các thông số chi tiết này.
Laptop XYZ có thông số kỹ thuật ấn tượng, bao gồm hiệu suất mạnh mẽ và thiết kế hiện đại Tôi muốn đặt trước x chiếc laptop XYZ với số lượng là x Hãy giúp tôi đặt hàng con XYZ với số lượng x chiếc để đáp ứng nhu cầu sử dụng của mình.
Các từ khóa cần lấy ra trong các câu hỏi trên là:
- Tên sản phẩm (đi kèm với tất cả các dạng câu hỏi về laptop như thông tin chung, các thông tin chi tiết hay đặt mua):
Hình 2.6 Từ khóa nhận dạng tên các sản phẩm
Hình 2.7 Từ khóa muốn hỏi về thông tin chung của laptop
Khi nhận được từ khóa này, máy chủ sẽ cung cấp thông tin đầy đủ về sản phẩm, bao gồm tên, giá cả, chất lượng, CPU, RAM và ổ cứng.
Nếu bạn đang tìm kiếm thông tin chi tiết về laptop, hãy đặt câu hỏi liên quan đến các từ khóa như giá, chất lượng, CPU, RAM và ổ cứng Server sẽ cung cấp cho bạn câu trả lời đầy đủ, bao gồm tên sản phẩm (tên laptop) cùng với các thông số kỹ thuật chi tiết về CPU, RAM và ổ cứng.
- Đặt hàng: o Từ khóa đặt hàng: o Số lượng: (Đi kèm với từ khóa đặt hàng để lọc)
Khi gặp từ khóa đặt hàng, server sẽ trả về câu trả lời theo mẫu:
“Đặt hàng: XYZ, số lượng x”
Trong đó, “XYZ” là tên sản phẩm và “x” là số lượng sản phẩm khách hàng muốn đặt
Tạo ứng dụng Facebook
Website: https://developers.facebook.com/apps/
- Thiết lập API kết nối với messenger của trang Facebook đã tạo
Thiết lập Server trên glitch
- Tạo project mới và thêm các module cần thiết (body-parser và node-fetch)
- Lấy live link của Server để tạo callback cho Facebook app
- Tạo callback URL cho Facebook app
Mã xác minh đã được tạo : "haxayonn"
- Đồng bộ mã xác minh để tạo callback cho Facebook app
- Lấy API của laptop_bot trên Wit ai
- Thiết lập laptop_bot API và Facebook app API trên Server
Ghi chú: Facebook app API chính là mã truy cập đã tạo trước đó của ứng dụng trên Facebook app
Viết NodeJS Server trên glitch
Import và Initialize
Hình 2.8 Import và Initialize
Webhook GET
Webhook POST
Hình 2.10 Webhook POST - Wit.ai POST
Hình 2.11 Webhook POST - Config msg and respone.
Database
Khi nhận câu hỏi từ khách hàng, laptop_bot ai sẽ sử dụng Wit ai để lọc ra các từ khóa dựa trên mục đích hỏi đã được huấn luyện trước.
Server sử dụng các từ khóa đã được lọc để xác định mục đích và thông tin mà khách hàng muốn tìm hiểu, từ đó cung cấp câu trả lời dựa trên dữ liệu laptop có sẵn trên Server.
NHẬN XÉT VÀ KẾT LUẬN Đồ án đã thực hiện đầy đủ yêu cầu đề ra của đề tài
Dataset để huấn luyện AI và database của laptop còn hạn chế
Demo: https://youtu.be/UibB9d1gKhU
Mở rộng qui mô của chatbot bằng cách thêm dữ liệu về laptop
Thêm dạng câu hỏi để có thể so sánh giữa những laptop với nhau, lấy danh sách những laptop theo một tiêu chí nhất định.