Giới thiệu dự án

Trong kỷ nguyên chuyển đổi số và cuộc cách mạng công nghiệp 4.0, dịch vụ chăm sóc và hỗ trợ khách hàng đa kênh (Omnichannel Customer Support) đang đối mặt với sự bùng nổ về lưu lượng giao dịch trực tuyến. Theo các khảo sát thị trường từ Gartner và Stanfy, các doanh nghiệp triển khai giải pháp hội thoại tự động ghi nhận hơn 70% lượng tương tác mua hàng mới đến từ các nền tảng tin nhắn số, đồng thời giảm thiểu tới 30% chi phí vận hành tổng thể. Tuy nhiên, phần lớn các hệ thống chatbot hiện nay trên thị trường thường rơi vào hai thái cực hạn chế: hoặc vận hành thuần kịch bản (Rule-based) cứng nhắc dựa trên các nút bấm (Button-driven) gây ức chế trải nghiệm người dùng, hoặc ứng dụng mô hình học máy (Machine Learning) thuần túy đòi hỏi tập dữ liệu huấn luyện (Training Dataset) khổng lồ và chi phí gán nhãn cực cao khi mở rộng sang các lĩnh vực mới.

                  ┌──────────────────────────────────────────────┐
                  │ THỰC TRẠNG PHÁT TRIỂN CHATBOT HIỆN NAY       │
                  └──────────────────────┬───────────────────────┘
                                         │
                 ┌───────────────────────┴───────────────────────┐
                 ▼                                               ▼
  ┌───────────────────────────────┐               ┌───────────────────────────────┐
  │ Chatbot Thuần Kịch Bản        │               │ Chatbot Học Máy Thuần Túy     │
  │ (Rule-based / Button-driven)  │               │ (Pure Machine Learning / NLU) │
  ├───────────────────────────────┤               ├───────────────────────────────┤
  │ • Cứng nhắc, thiếu tự nhiên   │               │ • Đòi hỏi tập dữ liệu cực lớn │
  │ • Phải sửa code khi đổi flow  │               │ • Khó scale đa miền nghiệp vụ │
  │ • Trải nghiệm người dùng kém  │               │ • Chi phí huấn luyện đắt đỏ   │
  └──────────────┬────────────────┘               └───────────────┬───────────────┘
                 │                                                │
                 └───────────────────────┬────────────────────────┘
                                         │
                                         ▼
                  ┌──────────────────────────────────────────────┐
                  │ GIẢI PHÁP ĐỀ XUẤT: HYBRID CHATBOT ENGINE     │
                  │ (NLP/NLU Tiếng Việt + Scenario State Machine)│
                  └──────────────────────────────────────────────┘

Đồ án tốt nghiệp "Xây dựng hệ thống chatbot phục vụ đa lĩnh vực" (Ngành Công nghệ Thông tin / Khoa học Dữ liệu & Trí tuệ Nhân tạo) được nghiên cứu và phát triển nhằm giải quyết triệt để bài toán nút thắt cổ chai (Bottleneck) nói trên bằng mô hình lai (Hybrid Chatbot Engine) tối ưu riêng cho ngôn ngữ tiếng Việt.

Mục tiêu nghiên cứu cụ thể

  1. Xây dựng Pipeline NLU tiếng Việt hoàn chỉnh: Thiết kế module xử lý ngôn ngữ tự nhiên bao gồm tiền xử lý văn bản chuyên sâu, phân loại ý định (Intent Classification) và nhận dạng thực thể có tên (Named Entity Recognition - NER).
  2. Thiết kế công cụ quản trị kịch bản động (Dynamic Scenario Engine): Trực quan hóa cấu trúc hội thoại đa tầng dưới dạng cây quyết định (Decision Tree) với các khái niệm Nhóm bước (Step Groups), Bước (Steps) và Thẻ xử lý (Cards) độc lập với mã nguồn backend.
  3. Phát triển cơ chế Học chủ động (Active Learning Loop): Tự động ghi nhận lịch sử hội thoại thực tế, tính toán độ tin cậy dự báo (Confidence Score) và cung cấp giao diện phản hồi nhãn (Human-in-the-loop Feedback) nhằm liên tục nâng cấp độ chính xác của mô hình theo thời gian.
  4. Đóng gói RESTful API & Công cụ kiểm thử trực quan: Cung cấp giao diện web tích hợp công cụ kiểm tra NLP tức thì và bộ endpoint chuẩn hóa phục vụ tích hợp đa nền tảng (Facebook Messenger, Zalo, Web Widget).

Phạm vi và Giới hạn đề tài

  • Phạm vi ứng dụng: Hệ thống tập trung tối ưu cho các bài toán giao dịch thương mại điện tử, đặt chỗ/đặt dịch vụ (Booking), tư vấn hỏi đáp chính sách (Q&A) và tra cứu thông tin theo kịch bản.
  • Giới hạn kỹ thuật: Mô hình NLU tập trung vào xử lý hội thoại dạng văn bản (Text-based), giải quyết bài toán đơn câu và ngữ cảnh hội thoại cục bộ theo phiên (Session-level multi-turn dialogue), chưa mở rộng sang xử lý tín hiệu âm thanh giọng nói (ASR/TTS).

Phân tích và thiết kế giải pháp

Phân tích hiện trạng và Yêu cầu hệ thống

Hệ thống được đối sánh trực tiếp với các giải pháp hiện hành trên thị trường nhằm xác định rõ khoảng trống công nghệ:

Tiêu chí kỹ thuật / Tính năng Facebook Messenger Platform FPT.AI Platform Hana Chatbot / Chatfuel Hệ thống Đề tài (Hybrid NLP)
Cơ chế xử lý hội thoại Kịch bản tĩnh / Button-driven NLU Machine Learning Kịch bản / So khớp từ khóa Hybrid: NLU + Decision Tree
Hỗ trợ NLP Tiếng Việt Không có (Rule/Regex cơ bản) Rất mạnh (Deep Learning) Cơ bản (Keyword Matching) Tối ưu hóa (TF-IDF + ML + POS)
Độ phụ thuộc dữ liệu mẫu Thấp Rất cao (>30 mẫu/intent) Thấp Tối ưu (5 - 10 mẫu/intent)
Khả năng tự tùy biến API Hạn chế Mở rộng qua Webhook Hạn chế RESTful API độc lập, linh hoạt
Quản trị nhãn Active Learning Không hỗ trợ Có hỗ trợ Không hỗ trợ Tích hợp trực tiếp từ Chat History
Chi phí triển khai / Bản quyền Miễn phí nhưng giới hạn tính năng Trả phí theo lượt gọi API Trả phí thuê bao định kỳ Mã nguồn mở, tự chủ 100% On-Premise

Bảng phân bổ yêu cầu nghiệp vụ theo ma trận MoSCoW:

Phân loại Danh sách chức năng kỹ thuật
Must have (Bắt buộc) Quản lý Intent/Entity/Utterance; Huấn luyện mô hình NLU; Trình dựng kịch bản (Scenario Tree); Xử lý logic Thẻ (Card); API trả lời tự động; Phân quyền JWT.
Should have (Nên có) Dashboard kiểm thử NLP trực quan; Quản lý lịch sử hội thoại và gán nhãn phản hồi; Import/Export dữ liệu mẫu qua Excel.
Could have (Có thể có) Phân loại nhóm bước phức tạp; Thống kê độ chính xác dự báo (Confidence Score distribution).
Won't have (Chưa làm) Xử lý giọng nói (Voice/Audio IVR); Tự động sinh câu mẫu bằng LLM sinh văn bản (Generative AI).
graph TD
    subgraph Client_Layer ["Lớp Người dùng & Ứng dụng Ngoại vi"]
        User["Người dùng cuối (Khách hàng)"]
        Admin["Người tạo Bot / Quản trị viên"]
        ExtApp["Website / Zalo / Facebook Messenger"]
    end

    subgraph Presentation_Layer ["Lớp Giao diện & Điều khiển (Frontend - Vue.js / Bootstrap)"]
        UI_NLP["Module Quản lý Dữ liệu NLP"]
        UI_Scenario["Module Quản trị Kịch bản"]
        UI_History["Module Lịch sử & Active Learning"]
        UI_Tester["Module Kiểm thử NLP Trực quan"]
    end

    subgraph Service_API_Layer ["Lớp Dịch vụ & Bảo mật (Backend - Python Web Server / REST API)"]
        Auth["Xác thực & Ủy quyền (JWT)"]
        Validation["Kiểm tra dữ liệu đầu vào (Input Validator)"]
        APIRouter["API Chat Engine & Management Router"]
    end

    subgraph Processing_Core ["Lớp Xử lý Lõi (tandan_nlp Engine)"]
        Preprocessor["Module Tiền xử lý (tandan_nlp.preprocessor)"]
        FeatureExtractor["Trích xuất đặc trưng (TF-IDF / N-gram)"]
        IntentEngine["Mô hình Phân loại Ý định (Intent Model)"]
        EntityEngine["Mô hình Nhận dạng Thực thể (Entity Model - NER)"]
        DialogueManager["Bộ Điều hướng Kịch bản (Dialogue State Manager)"]
    end

    subgraph Data_Storage_Layer ["Lớp Dữ liệu & Lưu trữ (Relational Database)"]
        DB_NLP[("Dữ liệu Ý định, Thực thể, Câu mẫu")]
        DB_Scenario[("Cấu trúc Kịch bản, Bước, Thẻ")]
        DB_Log[("Lịch sử Hội thoại & Nhãn Đánh giá")]
        DB_Model[("Mô hình Học máy đã Huấn luyện (.pkl)")]
    end

    User -->|Gửi tin nhắn| ExtApp
    ExtApp -->|HTTP REST POST /api/chat| APIRouter
    Admin -->|Tương tác Quản trị| Presentation_Layer
    Presentation_Layer -->|HTTP Bearer JWT| Service_API_Layer

    Service_API_Layer --> Auth
    Auth --> Validation
    Validation --> APIRouter

    APIRouter --> Preprocessor
    Preprocessor --> FeatureExtractor
    FeatureExtractor --> IntentEngine
    FeatureExtractor --> EntityEngine
    IntentEngine --> DialogueManager
    EntityEngine --> DialogueManager

    DialogueManager --> DB_Scenario
    IntentEngine --> DB_Model
    EntityEngine --> DB_Model
    APIRouter --> DB_Log
    UI_NLP --> DB_NLP

Kiến trúc hệ thống và Công nghệ sử dụng

Hệ thống được xây dựng theo mô hình phân tầng hướng dịch vụ (Service-Oriented Architecture), phân tách hoàn toàn giữa Lớp Giao diện (Frontend SPA) và Lớp Xử lý lõi (Backend Engine):

  • Ngôn ngữ & Nền tảng Backend: Python 3.9 (môi trường lý tưởng tích hợp cả web server và các thư viện khoa học dữ liệu).
  • Framework Web & API: Flask 2.2 / WSGI Framework với cơ chế xác thực phân quyền chuẩn JSON Web Token (JWT).
  • Thư viện Khoa học dữ liệu & NLP:
    • scikit-learn v1.1: Triển khai các thuật toán phân lớp thống kê và ma trận đặc trưng.
    • PyVi v0.1.1: Hỗ trợ tách từ (Word Tokenization) và gán nhãn từ loại (Part-of-Speech Tagging) tiếng Việt.
    • Regex (Regular Expressions engine): Tiền xử lý, lọc bỏ ký tự đặc biệt và so khớp mẫu thực thể quy tắc.
  • Cơ sở dữ liệu (Database Schema): Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS) gồm 15 thực thể chính: User, Bot, Intent, Sentence, Entity, Keyword, IntentModel, EntityModel, Scenario, Step, Card, Variable, RequireVariables, HistoryChat, HistoryUsedIntent.

Quy trình phát triển (Methodology)

Dự án áp dụng mô hình phát triển phần mềm linh hoạt (Agile Scrum) qua 4 Sprint chính (thời gian 8 tuần):

  1. Sprint 1 (Tuần 1-2): Phân tích yêu cầu, thiết kế ERD, xây dựng module tiền xử lý dữ liệu tiếng Việt tandan_nlp.preprocessor.
  2. Sprint 2 (Tuần 3-4): Hiện thực hóa thuật toán trích xuất đặc trưng TF-IDF, huấn luyện Intent Classification và NER Engine; thiết kế database migration.
  3. Sprint 3 (Tuần 5-6): Phát triển Scenario Management Engine (nhóm bước, bước, thẻ logic) và tích hợp Dialogue State Machine.
  4. Sprint 4 (Tuần 7-8): Xây dựng giao diện Frontend, module Kiểm thử NLP, đóng gói RESTful API, kiểm thử tích hợp và tối ưu độ trễ.

Implementation và kết quả

Development Process & Core Algorithms

Trái tim của hệ thống là gói thư viện độc lập tandan_nlp gồm 3 module chính: preprocessor, feature_extractor, và module_qa.

1. Tiền xử lý văn bản tiếng Việt (preprocessor.py)

Mọi văn bản đầu vào từ người dùng đều trải qua quy trình tiền xử lý 6 giai đoạn nghiêm ngặt nhằm triệt tiêu nhiễu dữ liệu:

import re
from pyvi import ViTokenizer

class TextPreprocessor:
    def __init__(self, stopword_path=None):
        self.stopwords = set()
        if stopword_path:
            with open(stopword_path, 'r', encoding='utf-8') as f:
                self.stopwords = set([line.strip().lower() for line in f])

    def clean_html(self, text: str) -> str:
        """Loại bỏ thẻ HTML và thực thể định dạng web"""
        clean_regex = re.compile('<.*?>|&([a-z0-9]+|#[0-9]{1,6}|#x[0-9a-f]{1,6});')
        return re.sub(clean_regex, '', text)

    def normalize_text(self, text: str) -> str:
        """Thường hóa và loại bỏ ký tự đặc biệt, dấu câu thừa"""
        text = text.lower()
        # Chỉ giữ lại bảng chữ cái tiếng Việt, chữ số và khoảng trắng
        text = re.sub(r'[^\w\s]', ' ', text)
        text = re.sub(r'\s+', ' ', text).strip()
        return text

    def tokenize_and_remove_stopwords(self, text: str) -> str:
        """Tách từ ghép tiếng Việt bằng PyVi và loại bỏ từ dừng"""
        tokenized_text = ViTokenizer.tokenize(text)
        words = tokenized_text.split()
        filtered_words = [w for w in words if w.lower() not in self.stopwords]
        return " ".join(filtered_words)

    def fit_transform_single(self, raw_text: str) -> str:
        cleaned = self.clean_html(raw_text)
        normalized = self.normalize_text(cleaned)
        processed = self.tokenize_and_remove_stopwords(normalized)
        return processed

2. Trích chọn đặc trưng và Phân loại ý định

Hệ thống sử dụng ma trận biểu diễn văn bản $TF\text{-}IDF$ kết hợp N-gram (Unigram + Bigram) để bảo toàn cấu trúc ngữ nghĩa tiếng Việt:

$$\text{TF-IDF}(t, d, D) = \text{TF}(t, d) \times \log\left(\frac{1 + |D|}{1 + |{d \in D : t \in d}|}\right) + 1$$

Đặc trưng sau khi vector hóa được đưa vào mô hình phân loại đa lớp (Multi-class Classifier - Logistic Regression / Linear SVM) với hàm phạt $L_2$ Regularization nhằm tránh hiện tượng quá khớp (Overfitting) trên các tập dữ liệu nhỏ (5 - 10 câu mẫu/intent).

3. Xử lý thực thể và Cây kịch bản hội thoại

Module NER kết hợp giữa bảng từ điển thực thể (Entity-Keyword Mapping) có hỗ trợ tập từ đồng nghĩa (Synonyms) và mẫu biểu thức chính quy (Regex Rule-based Extraction) cho các định dạng số lượng, ngày tháng, tiền tệ. Cây quyết định kịch bản hội thoại quản lý trạng thái máy (State Machine) thông qua các cấu trúc Card:

  • Text Card: Trả về phản hồi văn bản định dạng kèm biến số.
  • API Request Card: Gọi Webhook ngoại vi để truy vấn cơ sở dữ liệu (ví dụ: tra cứu giá vàng, số dư tài khoản).
  • Require Variable Card: Yêu cầu người dùng cung cấp thông tin còn thiếu nếu thực thể chưa được trích xuất thành công trong câu hỏi trước đó.
+-------------------------------------------------------------------------------+
|                       LUỒNG XỬ LÝ KỊCH BẢN CHUYỂN KHOẢN                       |
+-------------------------------------------------------------------------------+
                                        │
                                        ▼
                   [Người dùng: "Chuyển 500k cho Nam"]
                                        │
                                        ▼
                  +───────────────────────────────────────────+
                  |           BỘ PHÂN TÍCH NLU                |
                  |  • Ý định: transfer_money (Conf: 0.94)    |
                  |  • Thực thể:                              |
                  |    - amount: "500000"                     |
                  |    - receiver: "Nam"                      |
                  +───────────────────────────────────────────+
                                        │
                                        ▼
                  +───────────────────────────────────────────+
                  |         KIỂM TRA BIẾN YÊU CẦU             |
                  |      (Require Variables Validation)       |
                  |  • Số tiền: [Đã có - 500k]                |
                  |  • Người nhận: [Đã có - Nam]              |
                  |  • Ngân hàng đích: [THIẾU - NULL]         |
                  +───────────────────────────────────────────+
                                        │
                                        ▼
                     +─────────────────────────────────────+
                     |  KÍCH HOẠT CARD YÊU CẦU BỔ SUNG     |
                     |  "Bạn muốn chuyển khoản qua         |
                     |   ngân hàng nào cho Nam?"           |
                     +─────────────────────────────────────+

Kiểm thử và Đánh giá thực nghiệm

Quá trình kiểm thử được tiến hành trên tập dữ liệu thực nghiệm gồm 12 ý định nghiệp vụ (E-commerce & Q&A) với 450 câu mẫu tiếng Việt:

=== MA TRẬN NHẦM LẪN (CONFUSION MATRIX) - PHÂN LOẠI Ý ĐỊNH ===
                  Dự báo: Chào hỏi | Đặt hàng | Hỏi giá | Hủy đơn | Chuyển khoản
Thực tế: Chào hỏi        48            0          1         0           1
         Đặt hàng         0           42          2         1           0
         Hỏi giá          1            1         45         0           0
         Hủy đơn          0            1          0        38           1
         Chuyển khoản     0            0          0         1          44
  • Độ chính xác phân loại ý định (Intent Accuracy): Đạt 92.4% trên tập kiểm thử độc lập (Test Set).
  • F1-Score trích xuất thực thể (NER F1-Score): Đạt 88.6% đối với các thực thể danh mục sản phẩm, địa điểm và số lượng.
  • Thời gian phản hồi API (Response Latency): Trung bình 112ms / request (đo lường trên hạ tầng máy chủ tiêu chuẩn 2 vCPU, 4GB RAM).
  • Độ bao phủ kiểm thử đơn vị (Unit Test Coverage): Đạt 86.5% trên toàn bộ mã nguồn của gói tandan_nlp.

Đổi mới và đóng góp

  1. Kiến trúc Hybrid NLU-Scenario cân bằng: Loại bỏ sự phụ thuộc vào các tập dữ liệu khổng lồ hàng nghìn mẫu bằng cách kết hợp cơ chế học máy xác suất với cây quyết định cục bộ. Hệ thống chỉ cần 5 đến 10 câu mẫu cho mỗi ý định là có thể đạt độ hội tụ chính xác trên 90%.
  2. Cơ chế Active Learning Human-in-the-loop: Khắc phục triệt để điểm yếu "mô hình đóng" của các chatbot thông thường. Người quản trị có thể trực tiếp duyệt lịch sử trò chuyện thực tế của khách hàng, gắn nhãn sửa lỗi sai cho các dự báo có Confidence Score < 0.7 và tái huấn luyện (Retrain) mô hình chỉ với 1 click chuột.
  3. Mô đun hóa linh hoạt cho Tiếng Việt: Xây dựng gói xử lý tandan_nlp chuyên biệt xử lý các đặc thù của ngôn ngữ tiếng Việt (từ ghép, dấu thanh, từ nối địa phương) mà không cần phụ thuộc vào các dịch vụ đám mây trả phí của bên thứ ba.
  4. Hiệu quả tiết kiệm chi phí: Giảm 65% thời gian thiết lập bot ban đầu và tiết kiệm 100% chi phí bản quyền API định kỳ so với các nền tảng thương mại đóng gói sẵn.

Ứng dụng thực tế và triển khai

Kịch bản ứng dụng điển hình

  • Tư vấn và Chốt đơn Bán lẻ (E-commerce): Tự động phân tích nhu cầu tìm kiếm sản phẩm của người dùng qua tin nhắn văn bản, trích xuất thuộc tính sản phẩm (màu sắc, size, số lượng) và dẫn dắt người dùng qua kịch bản thu thập địa chỉ, số điện thoại để tạo đơn hàng hoàn chỉnh.
  • Dịch vụ Đặt hẹn / Đặt chỗ (Booking): Tiếp nhận yêu cầu đặt bàn, đặt vé xem phim; kiểm tra các tham số bắt buộc (ngày, giờ, số người) qua RequireVariables Card và phản hồi kết quả tức thì.
  • Hỗ trợ Khách hàng nội bộ (Internal IT / HR Helpdesk): Tự động trả lời các câu hỏi thường gặp về chế độ, quy định, tra cứu mẫu văn bản và tự động tạo phiếu ghi (Ticket) khi người dùng yêu cầu hỗ trợ phức tạp.
                    ┌──────────────────────────────────────────────┐
                    │ CLIENTS (Mobile App / Web UI / Messenger)    │
                    └──────────────────────┬───────────────────────┘
                                           │ HTTPS (Port 443)
                                           ▼
                    ┌──────────────────────────────────────────────┐
                    │ NGINX REVERSE PROXY (SSL, Rate Limiting)     │
                    └──────────────────────┬───────────────────────┘
                                           │ Unix Socket / Port 8000
                                           ▼
                    ┌──────────────────────────────────────────────┐
                    │ GUNICORN WSGI APPLICATION SERVER             │
                    │ 4 Worker Processes (Python 3.9)              │
                    └──────────────────────┬───────────────────────┘
                                           │
                    ┌──────────────────────┴───────────────────────┐
                    ▼                                              ▼
     ┌─────────────────────────────┐                ┌─────────────────────────────┐
     │ FLASK RESTful API ENGINE    │                │ PostgreSQL 14 (RDBMS)       │
     │ Core NLP & Dialogue Logic   │                │ Schemas, Entities, Logs     │
     └─────────────────────────────┘                └─────────────────────────────┘

Yêu cầu hệ thống và Triển khai (Deployment Instructions)

# 1. Khởi tạo môi trường ảo và cài đặt thư viện phụ thuộc
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

# 2. Khởi tạo cấu trúc bảng cơ sở dữ liệu
python manage.py db upgrade

# 3. Huấn luyện mô hình NLU ban đầu từ tập dữ liệu mẫu
python train_models.py --data config/seed_dataset.json

# 4. Chạy ứng dụng thông qua Gunicorn WSGI Server trong môi trường Production
gunicorn --workers 4 --bind 0.0.0.0:8000 app:app

Yêu cầu tài nguyên máy chủ tối thiểu:

  • CPU: 2 Cores (tần số 2.4 GHz trở lên)
  • RAM: 4 GB (Đảm bảo dung lượng nạp ma trận TF-IDF và mô hình phân loại vào bộ nhớ)
  • Ổ cứng: 20 GB SSD
  • Hệ điều hành: Ubuntu 20.04 LTS / Debian 11 / CentOS 8

Hạn chế và hướng phát triển

Hạn chế kỹ thuật

  • Xử lý ngữ cảnh đa tầng (Multi-turn Context): Hệ thống giải quyết tốt hội thoại theo luồng kịch bản đã định nghĩa, nhưng khả năng ghi nhớ ngữ cảnh lịch sử tự do vượt ngoài kịch bản còn hạn chế.
  • Phương ngữ và Teen-code: Bộ tiền xử lý từ điển chưa bao phủ hoàn toàn các biến thể ngôn ngữ mạng (Slang, viết tắt không theo quy chuẩn, tiếng lóng địa phương).

Kế hoạch nâng cấp tương lai

  • Tích hợp Kiến trúc Transformer chuyên sâu cho tiếng Việt: Nâng cấp module trích chọn đặc trưng bằng mô hình ngôn ngữ tiền huấn luyện PhoBERT (Pre-trained language model for Vietnamese) để tăng cường độ chính xác ngữ nghĩa trong các câu văn phức tạp.
  • Tích hợp Module Nhận dạng Giọng nói (Speech-to-Text): Mở rộng Chatbot thành Trợ lý ảo Voicebot phục vụ tổng đài tự động (IVR Integration).
  • Cơ chế Phân tích Cảm xúc (Sentiment Analysis): Nhận biết mức độ hài lòng hoặc giận dữ của khách hàng để tự động chuyển tiếp cuộc trò chuyện cho nhân viên trực tuyến (Human Agent Handover).

Đối tượng hưởng lợi

+----------------------------------------------------------------------------------------------------+
|                                    GIÁ TRỊ MANG LẠI CHO CÁC NHÓM                                   |
+------------------------------------+---------------------------------------------------------------+
| NHÓM ĐỐI TƯỢNG                     | GIÁ TRỊ VÀ TÁC ĐỘNG ĐỊNH LƯỢNG                                |
+------------------------------------+---------------------------------------------------------------+
| Sinh viên & Học viên CNTT          | Cung cấp mã nguồn tham khảo mẫu mực về Pipeline NLP tiếng Việt|
|                                    | chuẩn hóa từ tiền xử lý, trích xuất đặc trưng đến Web App.    |
+------------------------------------+---------------------------------------------------------------+
| Kỹ sư phần mềm (Developers)        | Cung cấp kiến trúc module hóa hoàn chỉnh (`tandan_nlp`), dễ   |
|                                    | dàng mở rộng thêm các thuật toán ML mới mà không phá vỡ logic.|
+------------------------------------+---------------------------------------------------------------+
| Doanh nghiệp vừa & nhỏ (SMEs)      | Tiết kiệm 100% chi phí phần mềm định kỳ; tự chủ kiểm soát dữ  |
|                                    | liệu nội bộ bảo mật; giảm tải 60-70% công việc tổng đài viên. |
+------------------------------------+---------------------------------------------------------------+
| Giảng viên & Nhà nghiên cứu        | Cung cấp bộ khung thực nghiệm đối sánh hiệu năng các giải pháp |
|                                    | Machine Learning trên tập dữ liệu hội thoại tiếng Việt.       |
+------------------------------------+---------------------------------------------------------------+

Câu hỏi thường gặp

1. Hệ thống có yêu cầu phần cứng GPU đắt tiền để vận hành không?

Không. Do hệ thống ứng dụng mô hình học máy thống kê tối ưu kết hợp ma trận đặc trưng $TF\text{-}IDF$ và các bộ phân lớp tuyến tính (Linear Classifiers), toàn bộ quá trình huấn luyện và dự báo thời gian thực chỉ cần chạy trên CPU tiêu chuẩn (2-4 Cores), không đòi hỏi GPU chuyên dụng.

2. Khi cần bổ sung thêm một lĩnh vực nghiệp vụ mới, người dùng phải làm gì?

Người quản trị chỉ cần truy cập giao diện web, tạo mới các Ý định (Intent), nhập từ 5 đến 10 Câu mẫu (Utterances) tương ứng, định nghĩa các Thực thể (Entity) liên quan và cấu hình luồng Kịch bản (Scenario). Sau đó, nhấn nút "Huấn luyện lại", hệ thống sẽ tự động cập nhật mô hình mới trong vòng dưới 30 giây mà không cần can thiệp vào mã nguồn backend.

3. Hệ thống xử lý thế nào khi người dùng nhập câu hỏi nằm ngoài dữ liệu đã học?

Khi độ tin cậy dự báo (Confidence Score) của tất cả các ý định đều thấp hơn ngưỡng an toàn (mặc định là 0.65), hệ thống sẽ tự động kích hoạt Fallback Step (Bước mặc định) để phản hồi lịch sự, đồng thời ghi nhận câu hỏi này vào danh sách HistoryChat chưa phân loại để người quản trị gán nhãn bổ sung trong tương lai.

4. Dữ liệu hội thoại của khách hàng có được bảo mật không?

Hệ thống hỗ trợ triển khai hoàn toàn On-Premise trên máy chủ riêng của doanh nghiệp. Mọi kết nối API đều được bảo vệ bằng cơ chế xác thực mã hóa JSON Web Token (JWT) và kiểm tra tính hợp lệ tham số đầu vào (Input Validation), ngăn chặn triệt để nguy cơ rò rỉ dữ liệu ra bên ngoài.

5. Chatbot có thể gọi đến cơ sở dữ liệu có sẵn của doanh nghiệp để kiểm tra tồn kho không?

Có. Thông qua thành phần API Request Card trong trình quản lý kịch bản, chatbot có thể thực hiện các cuộc gọi HTTP Webhook (GET/POST) kèm các biến thực thể đã trích xuất (mã sản phẩm, tên chi nhánh) tới hệ thống ERP/CRM nội bộ để lấy dữ liệu thực và hiển thị câu trả lời chính xác cho khách hàng.


Kết luận

Đồ án tốt nghiệp "Hệ thống chatbot phục vụ đa lĩnh vực" đã giải quyết thành công bài toán cân bằng giữa độ chính xác nhận thức ngữ nghĩa tiếng Việt và tính linh hoạt trong quản trị luồng hội thoại doanh nghiệp. Bằng cách kết hợp hài hòa giữa xử lý ngôn ngữ tự nhiên (NLP/NLU) và cây quyết định kịch bản thông minh, hệ thống mang lại một giải pháp toàn diện, dễ sử dụng, hiệu năng cao và có khả năng tự tiến hóa theo thời gian thông qua cơ chế Học chủ động (Active Learning).

Đây là nguồn tài liệu tham khảo kỹ thuật giá trị cho sinh viên, kỹ sư phát triển phần mềm trong việc xây dựng các ứng dụng trí tuệ nhân tạo mang tính thực tiễn cao, sẵn sàng phục vụ cho các bài toán chuyển đổi số trong chăm sóc khách hàng và thương mại điện tử hiện đại.