1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Xây dựng chatbot dạng văn bản hỗ trợ lựa chọn máy vi tính cá nhân

39 7 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây dựng Chatbot dạng văn bản hỗ trợ lựa chọn máy vi tính cá nhân
Tác giả Nguyễn Lương Kiên, Hoàng Thế Kỷ
Người hướng dẫn Đỗ Thị Thanh Tuyền
Trường học Đại học quốc gia thành phố hồ chí minh
Chuyên ngành Công nghệ thông tin
Thể loại báo cáo môn đồ án
Năm xuất bản 2021
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 39
Dung lượng 1,69 MB

Cấu trúc

  • 1.1 Mục đích đồ án (6)
  • 1.2 Công nghệ sử dụng (6)
    • 1.2.1 Wit.ai (6)
    • 1.2.2 NodeJS (7)
    • 1.2.3 Facebook Messenger API (7)
    • 1.2.4 Facebook Page (7)
    • 1.2.5 Glitch (7)
  • 1.3 Cách thức hoạt động (8)
  • 1.4 Usecase (9)
    • 1.4.1 Chào hỏi (9)
    • 1.4.2 Hỏi thông số (11)
    • 1.4.3 Đặt hàng (13)
    • 1.4.4 Không xác nhận (15)
  • 2.1 Huấn luyện model Wit.ai (16)
    • 2.1.1 Các bước thực hiện (16)
    • 2.1.2 Dataset (22)
  • 2.2 Tạo một trang trên Facebook để người dùng tương tác (29)
  • 2.3 Tạo ứng dụng Facebook (29)
  • 2.4 Thiết lập Server trên glitch (30)
  • 2.5 Viết NodeJS Server trên glitch (35)
    • 2.5.1 Import và Initialize (35)
    • 2.5.2 Webhook GET (35)
    • 2.5.3 Webhook POST (36)
  • 2.6 Database (37)
  • TÀI LIỆU THAM KHẢO (39)

Nội dung

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.

Ngày đăng: 08/03/2022, 21:38

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w