Lý do chọn đề tài1.1 Tầm quan trọng của chatbot và trợ lý thông minh trong thời đại số 1.2 Sự phát triển và ứng dụng của chatbot trong các ngành công nghiệp Chương II.. Mục tiêu 2.1 Hiểu
Trang 1CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh phúc
Nguyễn Tất Thành University NNT Institute International EducationBÀI TIỂU LUẬN CUỐI KỲ
TP Hồ Chí Minh, ngày 26 tháng 12 năm 2023
Trang 2LỜI CẢM ƠN
Sau một thời gian dài học tập, trao dồi kiến thức, tìm tòi và nghiên cứu, nhóm chúng em đã hoàn thành đề tài “Chatbot Smart Assistant” Nhóm xin gửi lời cảm ơn sâu sắc đến thầy Trần Thanh Nhã, thầy
đã tận tình chỉ dạy, truyền đạt những kiến thức nền tảng cũng như
chia sẻ những kinh nghiệm thực tiễn để giúp
nhóm hoàn thành tốt đề tài này.
Do điều kiện còn hạn chế về kiến thức cũng như tài liệu nên khó
Tránh khỏi những sai sót và khiếm khuyết Vì vậy, chúng em rất
mong nhận được sự quan tâm đóng góp, nhận xét của cô và các bạn
để nội dung của đề tài được thêm hoàn thiện hơn nữa.
Chúng em xin chân thành cảm ơn!
Trang 3MỞ ĐẦU VỀ CHATBOT
Chào mừng các bạn đến với bài viết về Chatbot! Trong thời đại công nghệ số hóa hiện nay, thuật ngữ "chatbot" ngày càng trở nên phổ biến và quen thuộc Vậy chatbot là gì và nó có vai trò như thế nào trong cuộc sống hàng ngày của chúng ta?
Chatbot, hay còn gọi là bot trò chuyện, là một chương trình máy tính được thiết
kế để mô phỏng và xử lý các cuộc trò chuyện của con người thông qua văn bản hoặc giọng nói Các chatbot có thể được tích hợp vào nhiều nền tảng khác nhau như website, ứng dụng di động, mạng xã hội, và nhiều hệ thống khác để cung cấp dịch vụ
và hỗ trợ người dùng một cách tự động và liên tục.
Với sự tiến bộ của trí tuệ nhân tạo (AI) và học máy (machine learning), các chatbot ngày nay không chỉ có khả năng trả lời các câu hỏi đơn giản mà còn có thể thực hiện các tác vụ phức tạp, hiểu ngữ cảnh và phản hồi một cách tự nhiên hơn Chúng được sử dụng rộng rãi trong nhiều lĩnh vực, từ dịch vụ khách hàng, hỗ trợ kỹ thuật, đến tiếp thị và thương mại điện tử.
Qua bài viết này, chúng ta sẽ khám phá chi tiết hơn về cách thức hoạt động của chatbot, các loại chatbot phổ biến, cũng như những ứng dụng thực tế và lợi ích mà chúng mang lại Hy vọng rằng, bạn sẽ có được cái nhìn toàn diện và sâu sắc hơn về công nghệ đang ngày càng ảnh hưởng mạnh mẽ đến cuộc sống của chúng ta.
Trang 4MỤC LỤCChương I Lý do chọn đề tài
1.1 Tầm quan trọng của chatbot và trợ lý thông minh trong thời đại số 1.2 Sự phát triển và ứng dụng của chatbot trong các ngành công nghiệp Chương II Mục tiêu
2.1 Hiểu rõ về chatbot và trợ lý thông minh
2.2 Khám phá các công nghệ và thuật toán chính
2.3 Phân tích ứng dụng và lợi ích của chatbot
2.4 Đề xuất giải pháp và phương pháp triển khai
Chương III Phạm vi đề tài
3.1 Các khái niệm và định nghĩa
3.2 Công nghệ và thuật toán
3.3 Ứng dụng thực tế và lợi ích
Chương IV Tổng quan các nghiên cứu có liên quan
Chương V Nội dung nghiên cứu
Chương VI Kế hoạch nghiên cứu
Chương VII Tài liệu tham khảo
Chương VIII Nội dung đề án
8.1 Các mục trong chatbot
8.3 Kết luận về các mục trong chatbot
Trang 5Chương I Lý do chọn đề tài
1.1 Tầm quan trọng của chatbot và trợ lý thông minh trong thời đại số
Trong thời đại công nghệ số phát triển mạnh mẽ, các công cụ hỗ trợ
tự động như chatbot và trợ lý thông minh (smart assistant) ngày càng trởnên quan trọng trong nhiều lĩnh vực, từ dịch vụ khách hàng đến quản lýthông tin cá nhân Theo một báo cáo của Grand View Research, thị trườngchatbot toàn cầu dự kiến sẽ đạt giá trị 9.4 tỷ USD vào năm 2024, với tốc
độ tăng trưởng kép hàng năm (CAGR) là 24.3% từ 2019 đến 2024.Chatbot smart assistant không chỉ giúp tiết kiệm thời gian và chi phí màcòn cải thiện trải nghiệm người dùng bằng cách cung cấp thông tin và hỗtrợ kịp thời Việc nghiên cứu sâu về chatbot smart assistant sẽ giúp khaithác tối đa tiềm năng của công nghệ này, mang lại lợi ích lớn cho cả doanhnghiệp và người dùng
Trang 61.2 Sự phát triển và ứng dụng của chatbot trong các ngành công nghiệp
Sự phát triển nhanh chóng của công nghệ trí tuệ nhân tạo (AI) và họcmáy (machine learning) đã thúc đẩy sự tiến bộ của chatbot và trợ lý thôngminh Chúng không chỉ đơn giản là trả lời các câu hỏi cơ bản mà còn cókhả năng thực hiện các tác vụ phức tạp và tương tác tự nhiên với conngười Theo một báo cáo của Juniper Research, các chatbot dự kiến sẽgiúp các doanh nghiệp tiết kiệm hơn 8 tỷ USD mỗi năm vào năm 2022,chủ yếu trong các lĩnh vực ngân hàng và chăm sóc khách hàng
Ngoài ra, nghiên cứu từ Gartner cho thấy rằng 25% các tổ chức dịch
vụ khách hàng sẽ sử dụng chatbot vào năm 2020, tăng từ dưới 2% trongnăm 2017 Những con số này minh chứng cho sự phát triển mạnh mẽ vàtiềm năng ứng dụng rộng rãi của chatbot trong tương lai Việc nghiên cứu
và triển khai chatbot thông minh không chỉ cải thiện hiệu quả kinh doanh
mà còn đáp ứng nhu cầu ngày càng cao của người dùng trong các ngànhcông nghiệp khác nhau
Chương II Mục tiêu
2.1 Hiểu rõ về chatbot và trợ lý thông minh
Nắm vững các khái niệm và định nghĩa liên quan đến chatbot và trợ
lý thông minh
Hiểu rõ về cấu trúc và cách hoạt động của chatbot và trợ lý thông minh
Trang 72.2 Khám phá các công nghệ và thuật toán chính
Tìm hiểu về các công nghệ AI, học máy và xử lý ngôn ngữ tự nhiên(NLP) được sử dụng trong việc phát triển chatbot
Xác định các thuật toán và phương pháp tiếp cận phổ biến trong việc xâydựng chatbot
2.3 Phân tích ứng dụng và lợi ích của chatbot
Khám phá các ứng dụng thực tế của chatbot trong các lĩnh vực nhưchăm sóc khách hàng, y tế, giáo dục và thương mại điện tử
Đánh giá lợi ích và hiệu quả mà chatbot mang lại cho doanh nghiệp
và người dùng
2.4 Đề xuất giải pháp và phương pháp triển khai
Đánh giá các thách thức và hạn chế hiện tại của chatbot và trợ lýthông minh
Đề xuất các giải pháp và phương pháp triển khai chatbot để cải thiện hiệusuất và trải nghiệm người dùng
Chương III Phạm vi đề tài
3.1 Các khái niệm và định nghĩa
Định nghĩa và phân loại các loại chatbot và trợ lý thông minh
Trang 8Trình bày các nguyên tắc cơ bản và cấu trúc của chatbot và trợ lý thôngminh.
3.2 Công nghệ và thuật toán
Tìm hiểu về các công nghệ AI, học máy, xử lý ngôn ngữ tự nhiên vàhọc sâu sử dụng trong việc phát triển chatbot và trợ lý thông minh
sẽ sử dụng chatbot vào năm 2020, tăng từ dưới 2% trong năm 2017 Cácnghiên cứu này chỉ ra rằng chatbot không chỉ là một xu hướng nhất thời
mà còn là một công cụ quan trọng trong chiến lược kinh doanh của nhiều
tổ chức
Trang 9Chương IV Tổng quan các nghiên cứu có liên quan
Nhiều nghiên cứu đã được thực hiện về hiệu quả của chatbot trongcác lĩnh vực khác nhau Một nghiên cứu của Juniper Research dự đoánrằng các chatbot sẽ giúp các doanh nghiệp tiết kiệm hơn 8 tỷ USD mỗinăm vào năm 2022, chủ yếu trong các lĩnh vực ngân hàng và chăm sóckhách hàng Nghiên cứu khác của Gartner cho thấy rằng 25% các tổ chứcdịch vụ khách hàng sẽ sử dụng chatbot vào năm 2020, tăng từ dưới 2%trong năm 2017 Các nghiên cứu này chỉ ra rằng chatbot không chỉ là một
xu hướng nhất thời mà còn là một công cụ quan trọng trong chiến lượckinh doanh của nhiều tổ chức
Chương V Nội dung nghiên cứu
Khái niệm và lịch sử phát triển của chatbot và trợ lý thông minh.Công nghệ và thuật toán chính: Tìm hiểu về các kỹ thuật AI, học máy, xử
lý ngôn ngữ tự nhiên (NLP) và học sâu (deep learning)
Ứng dụng thực tế: Phân tích cách các ngành công nghiệp như chămsóc khách hàng, y tế, giáo dục và thương mại điện tử đang sử dụngchatbot
Lợi ích và hiệu quả: Đánh giá các lợi ích về mặt chi phí, thời gian, vàtrải nghiệm người dùng khi sử dụng chatbot
Thách thức và hạn chế: Xem xét các vấn đề kỹ thuật, đạo đức và bảomật liên quan đến việc triển khai chatbot
Trang 10Phương pháp tối ưu hóa: Đề xuất các cách để cải thiện hiệu suất và hiệuquả của chatbot trong các ứng dụng cụ thể.
Chương VI Kế hoạch nghiên cứu
Giai đoạn 1: Nghiên cứu sơ bộ (2 tuần)
- Thu thập tài liệu và tổng hợp các nghiên cứu hiện có
- Xác định các công nghệ và thuật toán chính
Giai đoạn 2: Phân tích và triển khai (2-3 tuần)
- Phân tích các ứng dụng thực tế của chatbot trong các lĩnh vực khácnhau
- Triển khai thử nghiệm chatbot trong một môi trường cụ thể
Giai đoạn 3: Đánh giá và tối ưu hóa (5 tuần)
- Đánh giá hiệu quả của chatbot dựa trên các chỉ số đã định
- Đề xuất các phương pháp tối ưu hóa
Giai đoạn 4: Báo cáo và trình bày (5-6 tuần)
- Tổng hợp kết quả nghiên cứu
- Chuẩn bị và trình bày báo cáo cuối cùng
Chương VII Tài liệu tham khảo
Grand View Research (2019) Chatbot Market Size, Share & TrendsAnalysis Report By Type (Rule-based, AI-based), By Application
Trang 11(Customer Support, Social Media Bots), By End Use, By Region, AndSegment Forecasts, 2019 - 2024.
Juniper Research (2018) Chatbots: Banking, eCommerce, Retail &Healthcare 2018-2023
Gartner (2018) Gartner Says 25 Percent of Customer Service OperationsWill Use Virtual Customer Assistants by 2020
Various academic journals and conference papers on AI, machine learning,and NLP
Relevant articles and whitepapers from industry leaders such as IBM,Google, and Microsoft
Trang 12Chương VIII Nội dung đề án
3.3 Các mục trong Chatbot và chức năng của chính nó
train.py
Mục train.py: là tệp tin chịu trách nhiệm huấn luyện mô hình học máy,chức năng gồm các bước sau:
a Tải dữ liệu: Đọc và xử lý dữ liệu huấn luyện từ các nguồn khác nhau,
chẳng hạn như tệp văn bản, cơ sở dữ liệu, hoặc API Dữ liệu này thườngbao gồm các câu hỏi và câu trả lời mẫu, hoặc các đoạn hội thoại mẫu
b Tiền xử lý dữ liệu: Chuẩn hóa và biến đổi dữ liệu để đưa vào mô hình.
Điều này có thể bao gồm:
+ Làm sạch văn bản (loại bỏ dấu câu, ký tự đặc biệt, chuyển đổi chữhoa thành chữ thường, v.v.)
+ Tokenization (phân tách văn bản thành các từ hoặc các token).+ Chuyển đổi từ ngữ thành các biểu diễn số (embedding)
c Xây dựng mô hình: Định nghĩa và khởi tạo kiến trúc của mô hình học
máy hoặc học sâu (deep learning) Các mô hình phổ biến cho chatbot baogồm:
+ Mô hình Hồi quy tuyến tính (Logistic Regression)
+ Mô hình Naive Bayes
Trang 13+ Mô hình dựa trên RNN (Recurrent Neural Network), LSTM (LongShort-Term Memory), hoặc GRU (Gated Recurrent Unit).
+ Mô hình Transformer như BERT, GPT, hoặc các biến thể củachúng
d Huấn luyện mô hình: Thực hiện quá trình huấn luyện mô hình bằng
cách sử dụng dữ liệu đã xử lý Quá trình này bao gồm:
+ Chia dữ liệu thành tập huấn luyện và tập kiểm tra (validation set).+ Định nghĩa hàm mất mát (loss function) và tối ưu hóa (optimizer).+ Chạy các epoch, tức là lặp lại nhiều lần quá trình huấn luyện trêntoàn bộ dữ liệu
e Đánh giá mô hình: Sau khi huấn luyện, đánh giá hiệu quả của mô hình
trên tập dữ liệu kiểm tra Điều này bao gồm:
+ Tính toán các chỉ số đánh giá (accuracy, precision, recall, F1 score, v.v.).+ Hiển thị biểu đồ hoặc báo cáo kết quả đánh giá
f Lưu mô hình: Lưu mô hình đã huấn luyện dưới dạng tệp để có thể sử
dụng sau này cho việc dự đoán (inference)
g Tối ưu hóa và tinh chỉnh: Điều chỉnh các siêu tham số
(hyperparameters) của mô hình để cải thiện hiệu suất Điều này có thể baogồm thay đổi kiến trúc mô hình, tốc độ học (learning rate), số lượng epoch,v.v
Trang 14Dưới đây là cấu trúc của tệp train.py:
Trang 15import torch
import torch.nn as nn
from torch.utils.data import Dataset, DataLoader
from nltk_utils import bag_of_words, tokenize, stem # type: ignorefrom model import NeuralNet # type: ignore
# loop through each sentence in our intents patterns
for intent in intents['intents']:
tag = intent['tag']
# add to tag list
tags.append(tag)
for pattern in intent['patterns']:
# tokenize each word in the sentence
w = tokenize(pattern)
# add to our words list
all_words.extend(w)
Trang 16# add to xy pair
xy.append((w, tag))
# stem and lower each word
ignore_words = ['?', '.', '!']
all_words = [stem(w) for w in all_words if w not in ignore_words]
# remove duplicates and sort
all_words = sorted(set(all_words))
tags = sorted(set(tags))
print(len(xy), "patterns")
print(len(tags), "tags:", tags)
print(len(all_words), "unique stemmed words:", all_words)
# create training data
X_train = []
y_train = []
for (pattern_sentence, tag) in xy:
# X: bag of words for each pattern_sentence
bag = bag_of_words(pattern_sentence, all_words)
X_train.append(bag)
# y: PyTorch CrossEntropyLoss needs only class labels, not one-hot label = tags.index(tag)
y_train.append(label)
Trang 17return self.x_data[index], self.y_data[index]
# we can call len(dataset) to return the size
def len (self):
Trang 18device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
model = NeuralNet(input_size, hidden_size, output_size).to(device)
# Loss and optimizer
criterion = nn.CrossEntropyLoss()
optimizer = torch.optim.Adam(model.parameters(), lr=learning_rate)
# Train the model
for epoch in range(num_epochs):
for (words, labels) in train_loader:
Trang 19print (f'Epoch [{epoch+1}/{num_epochs}], Loss: {loss.item():.4f}')
print(f'final loss: {loss.item():.4f}')
Trang 20print(f'training complete file saved to {FILE}')
style.css
Mục style.css: đóng vai trò là tệp tin chứa các quy tắc CSS (CascadingStyle Sheets) để định dạng và thiết kế giao diện người dùng, chức nănggồm các bước sau:
a Định dạng giao diện người dùng: Thiết lập các quy tắc để định dạng
các phần tử HTML, bao gồm màu sắc, phông chữ, kích thước, khoảngcách, viền, và các thuộc tính khác Điều này giúp giao diện chatbot trôngđẹp mắt và nhất quán
b Tạo bố cục (layout): Sắp xếp các phần tử trên trang web theo cách trực
quan và dễ sử dụng Điều này có thể bao gồm việc sử dụng flexbox, grid,
và các kỹ thuật khác để tạo ra các bố cục phức tạp
c Tạo trải nghiệm người dùng tốt hơn: Sử dụng các hiệu ứng như
hover, focus, và animation để cải thiện tương tác của người dùng vớichatbot Ví dụ, thay đổi màu sắc của nút khi người dùng di chuột qua, hoặctạo hiệu ứng chuyển động khi gửi/nhận tin nhắn
d Responsive design: Đảm bảo giao diện chatbot hiển thị tốt trên nhiều
kích thước màn hình khác nhau, từ điện thoại di động đến máy tính để bàn
Trang 21Điều này có thể được thực hiện thông qua media queries và các kỹ thuậtthiết kế responsive khác.
e Tùy chỉnh giao diện theo thương hiệu: Đảm bảo rằng giao diện của
chatbot phù hợp với thương hiệu của công ty hoặc tổ chức, bao gồm việc
sử dụng màu sắc, phông chữ, và biểu tượng theo đúng nhận diện thươnghiệu
Dưới đây là cấu trúc của tệp style.css:
/* Add your CSS styling here */
Trang 25a Quản lý sự kiện (Event Handling): Xử lý các sự kiện do người dùng
kích hoạt như nhấn nút gửi tin nhắn, nhập liệu vào ô chat, cuộn trang, v.v
Ví dụ, khi người dùng nhấn nút "Send", mã JavaScript sẽ lấy nội dung tinnhắn, gửi đến server, và hiển thị phản hồi từ chatbot
b Giao tiếp với server (Server Communication): Gửi yêu cầu (request)
đến server và nhận phản hồi (response) thông qua AJAX hoặc Fetch API.Điều này cho phép chatbot gửi tin nhắn người dùng đến server để xử lý vànhận lại câu trả lời
Trang 26c Cập nhật giao diện động (DOM Manipulation): Thay đổi nội dung
trang web dựa trên phản hồi từ server Ví dụ, chèn tin nhắn mới vào khuvực hiển thị tin nhắn, cập nhật trạng thái kết nối, hiển thị hoặc ẩn các thànhphần giao diện khác nhau
d Quản lý trạng thái (State Management): Lưu trữ và quản lý trạng thái
hiện tại của chatbot, chẳng hạn như lịch sử tin nhắn, trạng thái kết nối,hoặc các cài đặt tùy chọn của người dùng
e Hiệu ứng và hoạt hình (Animations and Effects): Thêm các hiệu ứng
chuyển động hoặc hoạt hình để cải thiện trải nghiệm người dùng, như cuộn
tự động đến tin nhắn mới nhất hoặc hiệu ứng nhấp nháy khi có tin nhắnmới
Dưới đây là cấu trúc của tệp style.css:
document.addEventListener("DOMContentLoaded", function() {
// Initial greeting from the chatbot
appendMessage("Chatbot", "Hey! How can I help you?");
});
function sendMessage() {
var userInput = document.getElementById("user-input").value;
document.getElementById("user-input").value = "";
Trang 27// Display user message
Trang 28var chatDisplay = document.getElementById("chat-display");
var messageElement = document.createElement("div");
messageElement.innerHTML = "<strong>" + sender + ":</strong> " + message;
const contentDiv = document.getElementById('content');
// Create and append the title
const title = document.createElement('h1');
title.textContent = data.title;
contentDiv.appendChild(title);
// Create and append the description
const description = document.createElement('p');
description.textContent = data.description;
contentDiv.appendChild(description);
// Create and append the list items
const list = document.createElement('ul');
Trang 29Trong cấu trúc trên:
+ Event Handling: Xử lý sự kiện nhấn nút "Send" và nhấn phím "Enter"
để gửi tin nhắn
+ Server Communication: Sử dụng Fetch API để gửi yêu cầu đến server
và nhận phản hồi
+ DOM Manipulation: Thêm tin nhắn vào khu vực hiển thị tin nhắn và
cuộn tự động đến tin nhắn mới nhất
response.py
Mục response.py: là nơi xử lý logic phản hồi của chatbot Tệp này chứa
mã Python để nhận tin nhắn từ người dùng, xử lý và phân tích tin nhắn đó,sau đó tạo ra câu trả lời thích hợp, chức năng gồm các bước sau:
Trang 30a Nhận và phân tích tin nhắn người dùng: Tệp response.py nhận dữ
liệu từ người dùng (thông qua một API hoặc giao diện người dùng), phântích và trích xuất thông tin quan trọng từ tin nhắn
b Xử lý ngôn ngữ tự nhiên (NLP): Sử dụng các kỹ thuật xử lý ngôn ngữ
tự nhiên để hiểu ý định của người dùng Điều này có thể bao gồm việc sửdụng các thư viện NLP như NLTK, SpaCy, hoặc mô hình học máy đãđược huấn luyện trước đó như BERT, GPT
c Tạo phản hồi: Tạo ra phản hồi thích hợp dựa trên phân tích tin nhắn
người dùng Phản hồi có thể được tạo ra bằng cách sử dụng các câu trả lờimẫu, truy xuất thông tin từ cơ sở dữ liệu, hoặc sử dụng các mô hình sinhngôn ngữ tự nhiên (NLG)
d Quản lý hội thoại: Theo dõi trạng thái của hội thoại để đảm bảo rằng
phản hồi của chatbot nhất quán và có thể tiếp tục từ các ngữ cảnh trước đó
e Gửi phản hồi lại cho người dùng: Sau khi tạo ra phản hồi, tệp
response.py sẽ gửi lại phản hồi này cho người dùng thông qua API hoặcgiao diện người dùng
Dưới đây là cấu trúc của tệp response.py:
# response.py
Trang 31Tokenization: Chia văn bản thành các từ hoặc câu.
Stemming và Lemmatization: Biến đổi các từ về dạng gốc của chúng Tạo Bag-of-Words hoặc TF-IDF: Chuyển đổi văn bản thành các vector