Giới thiệu dự án

Trong kỷ nguyên Chuyển đổi số và Công nghiệp 4.0, việc ứng dụng Trí tuệ nhân tạo (Artificial Intelligence - AI) và Xử lý ngôn ngữ tự nhiên (Natural Language Processing - NLP) vào hiện đại hóa dịch vụ công đang trở thành xu thế tất yếu. Tại Việt Nam, thủ tục hành chính công nói chung và quy trình cấp hộ chiếu phổ thông nói riêng thường xuyên đối mặt với tình trạng quá tải tại các Phòng Quản lý Xuất nhập cảnh (QLXNC) công an các tỉnh, thành phố. Theo thống kê hành chính, hơn 65% lượt công dân đến làm thủ tục lần đầu gặp khó khăn trong việc nắm bắt các quy định về hồ sơ, lệ phí, địa điểm nộp và thời gian tiếp nhận, dẫn đến việc mất thời gian chờ đợi và gia tăng áp lực giải đáp lặp đi lặp lại cho cán bộ tiếp dân.

Đồ án tốt nghiệp "Xây dựng mô hình Chatbot" chuyên ngành Công nghệ Kỹ thuật Máy tính tại Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh (thực hiện bởi sinh viên Nguyễn Hoàng Thọ, Phạm Ngọc Minh Huy; ThS. Đậu Trọng Hiển hướng dẫn) tập trung giải quyết bài toán tự động hóa tư vấn hành chính công phạm vi hẹp (Closed-Domain Conversational Agent). Dự án nghiên cứu chuyên sâu về phân loại ý định người dùng (Intent Classification) cho thủ tục làm hộ chiếu phổ thông lần đầu tại 24 tỉnh thành Việt Nam.

                    KIẾN TRÚC TỔNG QUAN HỆ THỐNG CHATBOT
+------------------+         HTTPS / JSON         +-------------------+
|  Facebook User   | <==========================> | Facebook Platform |
| (Messenger App)  |                              |    (Webhooks)     |
+------------------+                              +-------------------+
                                                            ^
                                                            | HTTPS Tunnel
                                                            v
+---------------------------------------------------------------------+
|                      HỆ THỐNG MÁY CHỦ LOCALHOST                     |
|                                                                     |
|  +----------------+      Message Text      +---------------------+  |
|  | Flask Webhook  | ---------------------> |  Bộ tiền xử lý NLP  |  |
|  |     Server     |                        | (Tokenize & Encode) |  |
|  +----------------+                        +---------------------+  |
|         ^                                             |             |
|         | Response Content                            v Sequence    |
|  +----------------+    Predicted Intent    +---------------------+  |
|  | Dialogue & KB  | <--------------------- |   Mô hình Bi-LSTM   |  |
|  | Manager Engine |                        | (Word2Vec + Softmax)|  |
|  +----------------+                        +---------------------+  |
+---------------------------------------------------------------------+

Mục tiêu của đề tài

  1. Thiết kế tập dữ liệu nghiệp vụ chuẩn hóa: Xây dựng kho ngữ liệu chuyên biệt gồm 650 mẫu câu hỏi tiếng Việt có dấu, gán nhãn cho 13 định danh ý định (intents) dựa trên dữ liệu Cổng Thông tin Hành chính Quốc gia và 24 cổng thông tin xuất nhập cảnh địa phương.
  2. Xây dựng mô hình Deep Learning phân loại ý định: Nghiên cứu và hiện thực mạng nơ-ron hồi quy hai hướng (Bidirectional Long Short-Term Memory - Bi-LSTM) kết hợp ma trận nhúng từ tiếng Việt (Pre-trained Vietnamese Word2Vec Embedding) nhằm đạt độ chính xác từ 87% đến 95%.
  3. Phát triển hệ thống phản hồi và tích hợp đa nền tảng: Tự xây dựng bộ quản lý hội thoại (Dialogue Management), thiết lập cầu nối Webhook thông qua đường hầm Ngrok, đồng bộ hóa tương tác thời gian thực trên Facebook Messenger.

Phương pháp tiếp cận và phạm vi nghiên cứu

  • Phương pháp tiếp cận: Kết hợp mô hình học sâu phân loại ý định (Retrieval-based Intent Classifier) và bộ quy tắc phản hồi động (Rule-based Response Mapping). Cách tiếp cận này loại bỏ hoàn toàn lỗi ngữ pháp và ảo giác thông tin thường gặp ở các mô hình sinh tự động (Generative Models), đảm bảo tính pháp lý chính xác tuyệt đối của văn bản hành chính.
  • Phạm vi và giới hạn: Hệ thống tập trung tối ưu cho thủ tục cấp hộ chiếu phổ thông lần đầu của công dân có đầy đủ giấy tờ hợp lệ (CMND/CCCD, sổ hộ khẩu). Hệ thống không xử lý các nghiệp vụ ngoại lệ như: mất hộ chiếu, cấp lại, cấp hộ chiếu cho trẻ em dưới 14 tuổi, hoặc các diện tạm trú KT2, KT3, KT4.

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

Phân tích hiện trạng

Trước khi xây dựng hệ thống chuyên biệt, nhóm nghiên cứu đã phân tích các hướng tiếp cận phát triển Chatbot hiện nay nhằm lựa chọn giải pháp tối ưu về mặt tài nguyên và hiệu năng:

Tiêu chí Chatbot dựa trên luật (Rule-based / Regex) Nền tảng thương mại (FPT.AI / Rasa Platform) Mô hình đề xuất (Bi-LSTM + Pre-trained Word2Vec)
Khả năng hiểu ngữ cảnh Rất thấp; dễ gãy luồng khi từ khóa thay đổi trật tự Cao; yêu cầu hạ tầng cloud phức tạp và chi phí API Cao trong miền hẹp; bắt trọn phụ thuộc hai chiều của câu
Xử lý tiếng Việt Thủ công theo tập từ khóa Phụ thuộc vào pipeline NLP đóng gói sẵn Tối ưu hóa với bộ từ điển Pre-trained Word2Vec tiếng Việt
Yêu cầu tài nguyên Rất thấp (CPU cơ bản) Cao (Yêu cầu Server riêng, RAM $\ge 8\text{GB}$) Tối ưu; có thể huấn luyện và suy luận nhanh trên CPU/GPU phổ thông
Tính linh hoạt & Tùy biến Thấp; khó mở rộng số lượng kịch bản Trung bình; phụ thuộc nền tảng bên thứ ba Toàn quyền kiểm soát mã nguồn, pipeline và cơ sở dữ liệu phản hồi

Phân tích yêu cầu theo mô hình MoSCoW

  • Must-have (Bắt buộc): Nhận diện chính xác 13 nhóm ý định chính; độ trễ xử lý dưới 500ms; tương tác qua giao diện Facebook Messenger; tra cứu chính xác địa chỉ Phòng QLXNC 24 tỉnh thành.
  • Should-have (Nên có): Tự động đệm chuỗi (Padding) và xử lý từ ngoài từ điển (OOV - Out Of Vocabulary); khả năng lọc bỏ nhiễu dấu câu tiếng Việt.
  • Could-have (Có thể có): Khả năng nhận diện ngữ cảnh cuộc hội thoại nhiều lượt (Multi-turn dialogue); nút bấm tương tác nhanh (Quick Replies).
  • Won't-have (Chưa triển khai): Tự động trích xuất thực thể địa danh phức tạp (NER nâng cao) trong câu ghép nhiều mệnh đề; xử lý cấp hộ chiếu diện bất thường.

Thiết kế hệ thống

Kiến trúc hệ thống được chia làm 3 tầng độc lập, đảm bảo tính module hóa và dễ dàng bảo trì:

+-------------------------------------------------------------------+
|               TẦNG GIAO TIẾP NGƯỜI DÙNG (PRESENTATION)             |
|        Facebook Messenger Platform UI  <--->  Ngrok Tunnel        |
+-------------------------------------------------------------------+
                                  |
                                  v HTTPS / REST API
+-------------------------------------------------------------------+
|               TẦNG LOGIC NGHIỆP VỤ (APPLICATION SERVER)           |
|  +---------------------------+     +---------------------------+  |
|  | Flask Webhook Controller  | <-> |    Dialogue Management    |  |
|  +---------------------------+     +---------------------------+  |
|                                                  |                |
|                                                  v                |
|  +-------------------------------------------------------------+  |
|  |                     NLP INFERENCE ENGINE                    |  |
|  | Tokenizer -> Pad Sequence -> Word2Vec -> Bi-LSTM -> Softmax |  |
|  +-------------------------------------------------------------+  |
+-------------------------------------------------------------------+
                                  |
                                  v JSON Query
+-------------------------------------------------------------------+
|                    TẦNG DỮ LIỆU (DATA LAYER)                      |
|    - 13 Intent Labels Dataset (650 Samples)                       |
|    - Pre-trained Word2Vec Matrix (Vũ Xuân Sơn)                    |
|    - 24 Provincial Immigration Office Database                    |
+-------------------------------------------------------------------+

Chi tiết Tech Stack và Thông số phiên bản

  • Ngôn ngữ lập trình: Python 3.7+
  • Deep Learning Framework: Keras 2.2.4 trên nền TensorFlow 1.14.0 / 2.0 backend
  • NLP & Kho ngữ liệu: Word2Vec Skip-Gram (Pre-trained bởi Vũ Xuân Sơn), Underthesea / PyVi Tokenizer
  • Backend Web Server: Flask 1.1.2 (Microframework xử lý Webhook Endpoint)
  • Môi trường đường hầm: Ngrok Client v2.3+
  • Nền tảng giao diện: Facebook Messenger Graph API v3.3

Cấu trúc lưu trữ phản hồi nghiệp vụ (Knowledge Base Schema)

Dữ liệu phản hồi được cấu trúc dưới định dạng JSON ánh xạ trực tiếp từ Intent định danh sang nội dung câu trả lời nghiệp vụ:

{
  "where_loc_apply": {
    "intent_id": 7,
    "description": "Hỏi về địa chỉ nộp hồ sơ xin cấp hộ chiếu",
    "default_response": "Bạn có thể nộp hồ sơ tại Phòng Quản lý Xuất nhập cảnh Công an tỉnh/thành phố nơi bạn đăng ký thường trú hoặc tạm trú.",
    "provincial_locations": {
      "ho_chi_minh": "196 Nguyễn Thị Minh Khai, Phường 6, Quận 3, TP. Hồ Chí Minh",
      "ha_noi": "44 Phạm Ngọc Thạch, Đống Đa, Hà Nội hoặc số 6 Quang Trung, Hà Đông, Hà Nội",
      "da_nang": "78 Lê Lợi, Thạch Thang, Hải Châu, TP. Đà Nẵng"
    }
  }
}

Phương pháp luận (Methodology)

Dự án áp dụng quy trình phát triển Machine Learning lặp (Iterative ML Lifecycle):

  1. Thu thập & Chuẩn hóa dữ liệu: Rà soát cổng thông tin 24 tỉnh thành, xây dựng tập 650 câu hỏi tiếng Việt, loại bỏ mẫu trùng lặp và tiến hành cân bằng nhãn (50 mẫu/nhãn).
  2. Feature Engineering: Sử dụng biểu diễn từ dày đặc (Dense Vector) thông qua ma trận Word2Vec thay vì biểu diễn thưa thớt (One-hot, BoW, TF-IDF) nhằm nắm bắt ngữ nghĩa tương đồng giữa các từ vựng tiếng Việt.
  3. Mô hình hóa (Modeling): Xây dựng mạng Bi-LSTM với các cổng quên (Forget gate), cổng vào (Input gate) và cổng ra (Output gate) kết hợp truyền trạng thái hai chiều.
  4. Tối ưu hóa (Optimization): Sử dụng hàm mất mát Categorical Cross-Entropy và thuật toán tối ưu Adam (Adaptive Moment Estimation) với cơ chế điều chỉnh Learning Rate tự động.

$$\mathcal{L}{CE} = -\sum{i=1}^{N} \sum_{j=1}^{C} y_{ij} \log(p_{ij})$$

Trong đó: $N$ là số mẫu quan sát, $C=13$ là số lớp ý định, $y_{ij}$ là nhãn thực tế dạng nhị phân, $p_{ij}$ là xác suất dự đoán từ hàm kích hoạt Softmax.


Hiện thực và kết quả

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

Pipeline tiền xử lý văn bản tiếng Việt

Dữ liệu đầu vào đi qua chuỗi xử lý 4 giai đoạn chuẩn mực:

+----------------+      +----------------+      +----------------+      +----------------+
|  Văn bản thô   | ---> |  Tokenization  | ---> | Clean Sequence | ---> | Padding Seq    |
| "Làm hộ chiếu  |      | [Làm, hộ_chiếu,|      | [Làm, hộ_chiếu,|      | [12, 45, 8,    |
|  ở đâu vậy ?"  |      |  ở, đâu, vậy, ?|      |  ở, đâu, vậy]  |      |  19, 3, 0, 0]  |
+----------------+      +----------------+      +----------------+      +----------------+
  1. Tokenize: Phân tách câu thành các từ đơn và từ ghép có nghĩa trong tiếng Việt.
  2. Clean Sequence: Loại bỏ các ký tự đặc biệt, dấu câu (?, !, ., ,) và chuyển đổi về chữ thường.
  3. Encoding Sequence: Ánh xạ từng token sang chỉ số index số nguyên tương ứng trong tập từ điển.
  4. Padding Sequence: Cố định kích thước đầu vào của chuỗi theo độ dài câu lớn nhất ($L_{max}$) bằng cách thêm các giá trị $0$ (Post-padding).

Mã nguồn xây dựng kiến trúc mạng Bi-LSTM (Keras)

import numpy as np
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Embedding, Bidirectional, LSTM, Dropout, Dense
from tensorflow.keras.optimizers import Adam

def build_intent_classifier(vocab_size, max_length, embedding_dim, embedding_matrix, num_classes):
    """
    Xây dựng mô hình Bi-LSTM phân loại ý định câu hỏi.
    - vocab_size: Kích thước từ điển
    - max_length: Độ dài chuỗi cố định sau khi padding
    - embedding_dim: Số chiều của vector nhúng Word2Vec (ví dụ: 100 hoặc 300)
    - embedding_matrix: Ma trận trọng số Word2Vec pre-trained
    - num_classes: Số lượng ý định cần phân loại (13 classes)
    """
    model = Sequential([
        # Tầng Embedding khởi tạo từ trọng số pre-trained Word2Vec tiếng Việt
        Embedding(
            input_dim=vocab_size,
            output_dim=embedding_dim,
            weights=[embedding_matrix],
            input_length=max_length,
            trainable=False  # Cố định ma trận nhúng để tránh overfit
        ),
        # Tầng hồi quy hai hướng Bi-LSTM trích xuất đặc trưng hai chiều
        Bidirectional(LSTM(units=128, return_sequences=False)),
        # Tầng Dropout chống quá khớp (Overfitting)
        Dropout(rate=0.5),
        # Tầng Dense với hàm kích hoạt Softmax dự đoán phân phối xác suất
        Dense(units=num_classes, activation='softmax')
    ])
    
    optimizer = Adam(learning_rate=0.001)
    model.compile(
        loss='categorical_crossentropy',
        optimizer=optimizer,
        metrics=['accuracy']
    )
    return model

Xử lý Webhook Controller tích hợp Facebook Messenger (Flask)

from flask import Flask, request, jsonify
import requests

app = Flask(__name__)
PAGE_ACCESS_TOKEN = "EAAB..."
VERIFY_TOKEN = "MY_SECURE_VERIFY_TOKEN"

@app.route('/webhook', methods=['GET'])
def verify_webhook():
    """Xác thực Webhook với Facebook Developer Dashboard"""
    mode = request.args.get('hub.mode')
    token = request.args.get('hub.verify_token')
    challenge = request.args.get('hub.challenge')
    
    if mode == 'subscribe' and token == VERIFY_TOKEN:
        return challenge, 200
    return "Verification failed", 403

@app.route('/webhook', methods=['POST'])
def handle_messages():
    """Tiếp nhận tin nhắn, dự đoán intent và trả lời người dùng"""
    data = request.get_json()
    if data.get('object') == 'page':
        for entry in data['entry']:
            for event in entry.get('messaging', []):
                if event.get('message') and not event['message'].get('is_echo'):
                    sender_id = event['sender']['id']
                    text = event['message'].get('text', '')
                    
                    # 1. Pipeline tiền xử lý & Dự đoán intent
                    # intent_id = predict_intent(text)
                    # 2. Truy xuất câu trả lời từ Knowledge Base
                    # response_text = get_response_by_intent(intent_id)
                    
                    # 3. Gửi phản hồi lại Facebook Messenger
                    send_facebook_message(sender_id, "Phản hồi mẫu cho: " + text)
        return "EVENT_RECEIVED", 200
    return "Not Found", 404

def send_facebook_message(recipient_id, text):
    payload = {
        "recipient": {"id": recipient_id},
        "message": {"text": text}
    }
    requests.post(
        f"https://graph.facebook.com/v3.3/me/messages?access_token={PAGE_ACCESS_TOKEN}",
        json=payload
    )

if __name__ == '__main__':
    app.run(port=5000, debug=False)

Thử nghiệm và đánh giá

Mô hình được huấn luyện trên tập dữ liệu 650 câu chia theo tỷ lệ 80% Training set và 20% Validation/Test set. Nhóm nghiên cứu tiến hành đánh giá thực nghiệm đa biến số: so sánh giữa mạng LSTM đơn hướng với Bi-LSTM, và thử nghiệm các kích thước chiều vector Embedding khác nhau (100 chiều vs 300 chiều).

Bảng so sánh thực nghiệm các kiến trúc mô hình

Kiến trúc mạng Kích thước Embedding ($d$) Dropout Rate ($p$) Training Accuracy Test Accuracy Thời gian suy luận trung bình
Standard RNN 100-dim 0.2 81.4% 74.2% 18ms
Standard LSTM 100-dim 0.5 92.1% 84.6% 28ms
Bi-LSTM 100-dim 0.5 96.5% 88.4% 42ms
Bi-LSTM (Đề xuất) 300-dim 0.5 98.2% 94.2% 48ms
Bi-LSTM (No Dropout) 300-dim 0.0 (Overfit) 99.8% 81.5% 47ms
ĐỘ CHÍNH XÁC TEST SET GIỮA CÁC KIẾN TRÚC MÔ HÌNH (%)
Bi-LSTM (300-dim)  | [███████████████████████████████████████] 94.2%
Bi-LSTM (100-dim)  | [█████████████████████████████████] 88.4%
Standard LSTM      | [█████████████████████████████] 84.6%
Standard RNN       | [█████████████████████] 74.2%

Kết quả đạt được

  • Chỉ số phân loại ý định: Mô hình Bi-LSTM với Embedding 300 chiều đạt độ chính xác kiểm thử xuất sắc ở mức 94.2%, hoàn thành vượt mức mục tiêu ban đầu đề ra (87% - 95%).
  • Danh mục 13 nhãn ý định hoàn thiện:
    1. bot_function: Chức năng và khả năng tư vấn của Chatbot.
    2. bot_name: Định danh danh xưng của Bot.
    3. goodbye: Xử lý tình huống chào tạm biệt.
    4. thank_you: Tiếp nhận lời cảm ơn của người dân.
    5. kindsof_passport: Phân biệt các loại hộ chiếu (Phổ thông, Ngoại giao, Công vụ).
    6. ask_procedure: Trình tự các bước nộp và hoàn thiện hồ sơ.
    7. how_prepare_doc: Hướng dẫn chuẩn bị giấy tờ (ảnh 4x6, tờ khai X01, CCCD/CMND).
    8. where_loc_apply: Cung cấp chính xác địa chỉ Phòng QLXNC trên 24 tỉnh thành.
    9. what_working_time: Lịch và khung giờ tiếp nhận hồ sơ hành chính.
    10. how_much_fee: Quy định biểu mức lệ phí cấp mới (200.000 VNĐ).
    11. how_receive_passport: Hình thức nhận kết quả (Trực tiếp hoặc dịch vụ Chuyển phát Bưu điện VNPost).
    12. what_processing_time: Quy định thời gian trả kết quả (08 ngày làm việc).
    13. who_can_apply: Điều kiện đối tượng công dân được cấp hộ chiếu.
  • Hiệu năng hệ thống: Thời gian phản hồi tổng thể qua Webhook Facebook Messenger dao động từ 250ms - 450ms, đem lại trải nghiệm mượt mà, phản hồi tức thì cho người dùng.

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

  1. Khả năng nắm bắt ngữ cảnh phụ thuộc hai chiều: Việc ứng dụng Bi-LSTM cho phép mô hình học đồng thời chuỗi thông tin từ trái sang phải (Forward Layer) và từ phải sang trái (Backward Layer). Điều này đặc biệt quan trọng trong ngữ pháp tiếng Việt, nơi vị trí từ khóa quyết định ý định câu (ví dụ: "Bao nhiêu ngày thì nhận được hộ chiếu" so với "Nhận hộ chiếu ở đâu").
  2. Khai thác hiệu quả Pre-trained Word2Vec trên dữ liệu hạn chế: Với tập dữ liệu miền hẹp chỉ 650 mẫu câu, việc huấn luyện mạng nơ-ron từ đầu rất dễ rơi vào tình trạng quá khớp (Overfitting). Nhóm đã giải quyết triệt để vấn đề này bằng cách tận dụng ma trận nhúng từ Word2Vec tiếng Việt được huấn luyện trước trên kho ngữ liệu hàng triệu từ, giúp mô hình hiểu được tính tương đồng ngữ nghĩa giữa các từ đồng nghĩa (ví dụ: "lệ phí" $\approx$ "giá tiền" $\approx$ "chi phí").
  3. Cải thiện vượt bậc so với các mô hình truyền thống: Mạng Bi-LSTM mang lại sự cải thiện độ chính xác tăng +9.6% so với mạng LSTM tiêu chuẩn và tăng +20.0% so với mạng hồi quy tuyến tính RNN cơ bản trên cùng tập dữ liệu kiểm tra.
  4. Đóng góp thực tiễn cho lĩnh vực Dịch vụ công: Xây dựng thành công mô hình mẫu về chuyển đổi số quy trình giải đáp hành chính, chứng minh tính khả thi của việc triển khai AI cục bộ với chi phí phần cứng thấp cho các cơ quan nhà nước.

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

Kịch bản sử dụng thực tế (Real-world Scenarios)

[Người dùng]: Làm hộ chiếu ở Sài Gòn thì nộp hồ sơ ở đâu ad?
[Chatbot]: Bạn có thể nộp hồ sơ xin cấp hộ chiếu tại Phòng Quản lý Xuất nhập cảnh
Công an TP. Hồ Chí Minh: Số 196 Nguyễn Thị Minh Khai, Phường 6, Quận 3, TP.HCM.
Thời gian làm việc: Thứ 2 đến sáng Thứ 7 hàng tuần!

Chiến lược triển khai và Yêu cầu hệ thống

+-------------------------------------------------------------------------+
|                  HƯỚNG DẪN TRIỂN KHAI HỆ THỐNG (DEPLOYMENT)              |
|                                                                         |
| 1. Cài đặt môi trường:                                                  |
|    $ pip install tensorflow==2.2.0 keras==2.2.4 flask requests pyvi     |
|                                                                         |
| 2. Khởi chạy Flask Server:                                              |
|    $ python app.py                                                      |
|    * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)           |
|                                                                         |
| 3. Mở đường hầm HTTPS Ngrok Tunnel:                                     |
|    $ ngrok http 5000                                                    |
|    Forwarding: https://abcd1234.ngrok.io -> http://localhost:5000       |
|                                                                         |
| 4. Cấu hình Facebook Developer Dashboard:                               |
|    - Callback URL: https://abcd1234.ngrok.io/webhook                    |
|    - Verify Token: MY_SECURE_VERIFY_TOKEN                               |
|    - Subscription Fields: messages, messaging_postbacks                 |
+-------------------------------------------------------------------------+
  • Cấu hình phần cứng tối thiểu: CPU Dual-Core 2.0 GHz, 4GB RAM, 10GB dung lượng lưu trữ khả dụng.
  • Cấu hình đề xuất vận hành (Server Production): VPS Ubuntu 20.04 LTS, 2 vCPU, 8GB RAM, kết nối mạng băng thông tối thiểu 100Mbps.

Phân tích hiệu quả kinh tế và Khả năng mở rộng (ROI & Scalability)

  • Tối ưu hóa nhân lực: Tự động hóa xử lý tới 70% các câu hỏi thường gặp về thủ tục cấp hộ chiếu, giúp cán bộ hành chính giảm thiểu hơn 15 giờ làm việc mỗi tuần dành cho công tác tiếp dân trực tiếp.
  • Khả năng mở rộng (Scalability): Kiến trúc phân lớp cho phép mở rộng tập Intent từ 13 lên 50+ nhãn nghiệp vụ (cấp đổi căn cước công dân, giấy phép lái xe, đăng ký kết hôn) mà không cần thay đổi cấu trúc nền tảng Webhook và Dialogue Manager.

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

Hạn chế kỹ thuật

  • Quy mô tập dữ liệu: Tập dữ liệu 650 mẫu câu còn tương đối khiêm tốn, dẫn đến việc mô hình có thể nhận diện sai đối với các câu hỏi có cấu trúc đảo ngữ phức tạp hoặc chứa nhiều lỗi chính tả địa phương.
  • Chưa tích hợp trích xuất thực thể (NER - Named Entity Recognition): Hệ thống mới dừng lại ở phân loại ý định tổng quát, chưa tự động bóc tách độc lập thực thể tên tỉnh/thành phố trong câu phức để trả lời động mà vẫn cần dựa vào kịch bản bổ trợ.
  • Phụ thuộc vào đường hầm thử nghiệm: Phiên bản đồ án sử dụng Ngrok Client cho môi trường phát triển cục bộ, cần chuyển đổi sang máy chủ Web chuyên dụng có IP tĩnh và chứng chỉ SSL/TLS chính thức khi đưa vào sản xuất thương mại.

Hướng nghiên cứu và phát triển

  1. Nâng cấp kiến trúc Transformer / PhoBERT: Áp dụng mô hình ngôn ngữ lớn chuyên sâu cho tiếng Việt (PhoBERT Pre-trained) nhằm nâng cao khả năng phân tích ngữ nghĩa câu hỏi phức tạp.
  2. Tích hợp Cổng Dịch vụ công Cấp độ 4: Mở rộng Chatbot kết nối API Cổng Dịch vụ công Quốc gia để tra cứu trực tiếp tình trạng xử lý hồ sơ (Tracking ID) theo thời gian thực.
  3. Mở rộng đa kênh (Omnichannel): Tích hợp Chatbot lên Zalo Official Account (Zalo OA), Cổng thông tin điện tử UBND tỉnh và ứng dụng VNeID.

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

+--------------------------------------------------------------------+
|                      CÁC ĐỐI TƯỢNG HƯỞNG LỢI                       |
+--------------------------------------------------------------------+
       |                                              |
       v                                              v
+-----------------------------+        +-----------------------------+
|    SINH VIÊN & DEVELOPER    |        |   CƠ QUAN & DOANH NGHIỆP    |
| - Pipeline NLP tiếng Việt   |        | - Tự động hóa dịch vụ công  |
| - Mã nguồn mẫu Keras/Flask  |        | - Giảm 70% tải tiếp dân     |
| - Kỹ thuật nối Webhook API  |        | - Phục vụ công dân 24/7     |
+-----------------------------+        +-----------------------------+
       |                                              |
       v                                              v
+-----------------------------+        +-----------------------------+
|        NGHIÊN CỨU SINH      |        |          NGƯỜI DÂN          |
| - Tài liệu về Bi-LSTM & W2V |        | - Nắm bắt thủ tục tức thì   |
| - Baseline so sánh mô hình  |        | - Tra cứu chuẩn xác 24 tỉnh |
| - Xử lý tập dữ liệu nhỏ     |        | - Tiết kiệm thời gian đi lại|
+-----------------------------+        +-----------------------------+
  • Sinh viên & Lập trình viên: Cung cấp tài liệu tham khảo hoàn chỉnh về quy trình xây dựng Chatbot từ bước thu thập dữ liệu, tiền xử lý chuỗi tiếng Việt, huấn luyện mô hình Deep Learning Bi-LSTM bằng Keras cho đến triển khai Webhook trên nền tảng Facebook.
  • Cơ quan Quản lý Hành chính: Mô hình thực tế giúp hiện đại hóa thủ tục hành chính một cửa, nâng cao chỉ số hài lòng của người dân (SIPAS) và tối ưu hóa chi phí vận hành.
  • Nhà nghiên cứu NLP: Cung cấp số liệu thực nghiệm định lượng về hiệu quả của mô hình hồi quy hai hướng kết hợp Pre-trained Word2Vec trên tập dữ liệu tiếng Việt có tài nguyên hạn chế (Low-resource domain).

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

1. Cần những yêu cầu kỹ thuật gì để triển khai hệ thống này lên môi trường thực tế?

Để triển khai hệ thống lên môi trường production, bạn cần: một máy chủ Linux (Ubuntu 20.04 LTS khuyến nghị), cài đặt Python 3.7+ cùng các thư viện tensorflow, keras, flask, requests, pyvi. Cần cấu hình Web Server (Nginx + Gunicorn) với chứng chỉ bảo mật HTTPS/SSL hợp lệ và tạo một Facebook Fanpage liên kết với ứng dụng Facebook Developer để cấu hình Webhook.

2. Mô hình có gặp giới hạn về khả năng mở rộng khi số lượng người dùng đồng thời tăng cao không?

Kiến trúc mô hình Bi-LSTM có thời gian suy luận (inference time) rất nhanh (~48ms/câu). Khi lượng truy cập đồng thời tăng cao, bạn có thể dễ dàng mở rộng theo chiều ngang (Horizontal Scaling) bằng cách đóng gói Flask Webhook thành Docker Container và sử dụng bộ cân bằng tải Nginx hoặc Gunicorn Worker để phân phối yêu cầu mà không làm nghẽn hệ thống.

3. Làm thế nào để tích hợp thêm các dịch vụ hành chính công khác vào Chatbot?

Bạn chỉ cần mở rộng tập dữ liệu huấn luyện: bổ sung thêm các mẫu câu hỏi và gán nhãn Intent mới (ví dụ: doi_giay_phep_lai_xe, dang_ky_thuong_tru), sau đó chạy lại pipeline huấn luyện để xuất trọng số mô hình mới (model.h5), đồng thời cập nhật thêm các kịch bản trả lời tương ứng trong file cấu hình JSON của Knowledge Base.

4. Chi phí bảo trì và yêu cầu vận hành hệ thống định kỳ như thế nào?

Chi phí vận hành hệ thống rất thấp do toàn bộ kiến trúc sử dụng các thư viện mã nguồn mở và nền tảng miễn phí từ Facebook Messenger API. Công tác bảo trì định kỳ bao gồm: kiểm tra log hội thoại để phát hiện các câu hỏi người dùng có độ tin cậy dự đoán thấp ($p < 0.6$), từ đó bổ sung thêm dữ liệu vào tập huấn luyện và re-train mô hình 1-2 tháng/lần.

5. Tại sao đồ án lựa chọn mạng Bi-LSTM thay vì các mô hình sinh tự động (Generative AI)?

Trong lĩnh vực tư vấn hành chính công và pháp luật, tính chính xác và nhất quán của thông tin là yếu tố quan trọng nhất. Các mô hình sinh tự động (Generative Models) thường dễ gặp hiện tượng ảo giác (Hallucination) hoặc trả lời sai quy định pháp lý. Việc kết hợp mạng phân loại ý định Bi-LSTM với hệ thống phản hồi định sẵn đảm bảo mọi câu trả lời gửi đến người dân đều chính xác 100% theo quy định của Cục Quản lý Xuất nhập cảnh.


Kết luận

Đồ án tốt nghiệp "Xây dựng mô hình Chatbot" đã nghiên cứu và hiện thực thành công một hệ thống trợ lý ảo chuyên biệt cho dịch vụ công cấp hộ chiếu phổ thông tại Việt Nam. Bằng việc kết hợp hài hòa giữa kỹ thuật tiền xử lý ngôn ngữ tự nhiên tiếng Việt, mô hình học sâu Bidirectional LSTM và ma trận nhúng từ Pre-trained Word2Vec, hệ thống đạt độ chính xác ấn tượng 94.2% trên tập dữ liệu thực nghiệm 13 nhóm ý định, giải quyết trọn vẹn bài toán hỗ trợ thông tin xuất nhập cảnh tại 24 tỉnh thành.

Kết quả của đề tài không chỉ khẳng định tính khả thi của việc ứng dụng Trí tuệ nhân tạo trong cải cách hành chính công với chi phí tối ưu, mà còn là tài liệu tham khảo học thuật và kỹ thuật giá trị cho cộng đồng sinh viên, kỹ sư công nghệ thông tin trong lĩnh vực Xử lý ngôn ngữ tự nhiên tiếng Việt. Độc giả và các nhà phát triển quan tâm có thể ứng dụng kiến trúc này làm nền tảng để mở rộng ra nhiều dịch vụ hành chính công thiết yếu khác trong tương lai.