Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh công nghệ thông tin phát triển và trở thành ngành kinh tế mũi nhọn, các kênh tương tác trực tuyến đóng vai trò trọng yếu trong hoạt động vận hành của doanh nghiệp và tổ chức. Tại Việt Nam, hoạt động giải đáp thắc mắc của bộ phận chăm sóc khách hàng (CSKH) qua tin nhắn trực tuyến ngày càng được ưa chuộng. Tuy nhiên, quy trình này phần lớn vẫn thực hiện thủ công, dẫn đến tình trạng tiêu tốn nhiều thời gian và chi phí nhân sự chỉ để phản hồi những câu hỏi lặp lại, có nội dung đơn giản. Nhằm tự động hóa quy trình hỗ trợ và tối ưu hóa nguồn lực vận hành, việc xây dựng một hệ thống điều khiển tự động thông minh là nhu cầu cấp thiết. Đề tài "Nghiên cứu, thiết kế và xây dựng Chatbot CSKH Truyền thanh thông minh" được tác giả Lê Duy Sơn Tùng (ngành Kỹ thuật Phần mềm, Trường Đại học Công nghiệp Hà Nội, năm 2022) thực hiện nhằm giải quyết bài toán trên.

Mục tiêu cụ thể của đề tài bao gồm bốn nhiệm vụ nghiên cứu chính:

  1. Nắm vững các yêu cầu thực tế cũng như phương pháp phân tích thiết kế để xây dựng một ứng dụng hoàn chỉnh.
  2. Nghiên cứu tổng quan về lý thuyết, cấu trúc và nguyên lý vận hành của hệ thống chatbot.
  3. Tìm hiểu chuyên sâu về ngôn ngữ lập trình Python, vi khung (micro-framework) Flask và thư viện mã nguồn mở ChatterBot.
  4. Vận dụng tổng hợp các kiến thức đã nghiên cứu để lập trình và triển khai ứng dụng Web Chatbot CSKH phục vụ lĩnh vực thiết bị truyền thanh thông minh.

Đối tượng và phạm vi nghiên cứu của đồ án tập trung vào:

  • Đối tượng nghiên cứu: Cơ chế hoạt động của chatbot xử lý ngôn ngữ tự nhiên, kỹ thuật so khớp mẫu đối thoại bằng máy học, quy trình quản trị người dùng và phân quyền hệ thống.
  • Phạm vi ứng dụng: Hệ thống Web Chatbot mang tên Haedap, cung cấp dịch vụ thông tin, hướng dẫn sử dụng thiết bị truyền thanh thông minh, giới thiệu chi phí, lợi ích và lịch sử doanh nghiệp. Đối tượng sử dụng hướng tới mọi tầng lớp người dùng có nhu cầu tìm hiểu thông tin về giải pháp truyền thanh thông minh cũng như các nhà quản trị hệ thống.

Cơ sở lý thuyết và công nghệ áp dụng

Đồ án tổng hợp nền tảng lý thuyết về trí tuệ nhân tạo (AI), hệ thống xử lý ngôn ngữ tự nhiên (NLP), học máy (Machine Learning) và kiến trúc phát triển ứng dụng web trên nền tảng Python.

Khung lý thuyết về Chatbot

Theo tổng quan của tác giả, chatbot là một dạng chương trình máy tính tiến hành cuộc trò chuyện qua thính giác hoặc văn bản nhằm tự động giải đáp câu hỏi hoặc xử lý tình huống. Cấu tạo cơ bản của một hệ thống chatbot gồm ba thành phần:

  • Cơ sở dữ liệu (Database): Lưu trữ dữ liệu hội thoại, thông tin hệ thống và nội dung phản hồi.
  • Tầng ứng dụng (Application Layer): Điều phối giao thức trao đổi dữ liệu giữa máy nguồn và máy đích, hỗ trợ xử lý các trình ứng dụng.
  • Giao diện lập trình ứng dụng (API) và Giao diện người dùng (GUI): Cho phép kết nối dịch vụ giữa các ứng dụng và cung cấp không gian tương tác trực quan cho người dùng.

Về mặt phân loại, đồ án chỉ ra ba mô hình chatbot chính:

  • Chatbot viết kịch bản (Script/Rules-based Chatbot): Hoạt động theo các quy tắc và cây quyết định được định nghĩa sẵn.
  • Chatbot thông minh (Intelligent/Corpus-based Chatbot): Sử dụng kỹ thuật trí tuệ nhân tạo để tiếp nhận đầu vào dạng tự do và tự học từ dữ liệu hội thoại.
  • Chatbot hướng khung mẫu (Frame-based Agents): Thu thập thông tin theo luồng tác vụ đại lý xác định để đáp ứng các yêu cầu cụ thể của khách hàng.

Bên cạnh đó, đồ án khảo sát các nền tảng xây dựng chatbot phổ biến tại Việt Nam và thế giới như Doopage, Chatfuel, ManyChat, Messnow và Ahachat, đồng thời điểm qua các ứng dụng thực tế trong dự báo thời tiết (Poncho), từ thiện (Yeshi) và giải trí (Mitsuku, Rose, Insomno Bot).

Công nghệ và công cụ phát triển

Hệ thống được phát triển hoàn toàn trên nền tảng mã nguồn mở nhằm đảm bảo tính bảo mật và quyền kiểm soát mã nguồn, không phụ thuộc vào dịch vụ bên thứ ba (như Wit.ai):

  • Ngôn ngữ lập trình Python: Sử dụng cấu trúc lập trình đa hình kết hợp xử lý hướng đối tượng, môi trường phát triển tích hợp (IDE) PyCharm.
  • Thư viện ChatterBot: Thư viện Python phát hành theo giấy phép BSD 3-khoản, sử dụng các thuật toán lựa chọn của máy học để sinh câu trả lời tự động dựa trên độ tương đồng của câu nhập vào (input statement) với các mẫu dữ liệu đã huấn luyện.
  • Cấu hình Adapter trong ChatterBot:
    • Storage Adapter: Sử dụng SQLStorageAdapter kết nối với cơ sở dữ liệu SQLite cục bộ (sqlite:///database).
    • Logic Adapters: Tích hợp TimeLogicAdapter (trả về thời gian thực) và MathematicalEvaluation (giải quyết các phép toán số học cơ bản).
  • Thư viện bổ trợ: Hỗ trợ tính toán và tiền xử lý dữ liệu với tensorflow, numpy, pandas, sklearn và imutils.
  • Vi khung Flask: Đóng vai trò làm cổng giao tiếp web (Web micro-framework), xử lý định tuyến (routing), tiếp nhận yêu cầu từ giao diện trình duyệt và kết nối tới lõi xử lý ChatterBot.

Thiết kế và triển khai hệ thống

Yêu cầu hệ thống

Hệ thống Web Chatbot CSKH Haedap được thiết kế để đáp ứng các nhóm yêu cầu cụ thể:

  • Yêu cầu chức năng: Khách hàng có thể tương tác hỏi đáp trực tiếp với chatbot trên nền tảng web; xem thông tin sản phẩm và dịch vụ truyền thanh thông minh; gọi điện thoại hoặc gửi tin nhắn trực tiếp cho nhân viên chăm sóc khách hàng; sử dụng tính năng chuyển văn bản thành giọng nói (Text-to-Speech); quản trị viên thực hiện đăng nhập và quản lý tài khoản, quản lý quyền và phân quyền hệ thống.
  • Yêu cầu phi chức năng: Đảm bảo tính sẵn sàng hoạt động ổn định; tốc độ phản hồi truy cập nhanh; giao diện thân thiện, dễ thao tác; khả năng tương thích trên các trình duyệt web phổ biến và dễ dàng phục hồi dữ liệu khi có sự cố.

Thiết kế cơ sở dữ liệu và ca sử dụng

Hệ thống được mô hình hóa thông qua biểu đồ thực thể liên kết (ERD) mức logic và hệ thống biểu đồ Use case, biểu đồ trình tự (Sequence Diagram), biểu đồ lớp (Class Diagram) cho từng phân hệ quản trị. Cơ sở dữ liệu của hệ thống quản lý các bảng chính:

  • admin_user: Lưu trữ thông tin tài khoản, mật khẩu, tên đầy đủ và trạng thái của người dùng nội bộ/quản trị viên.
  • admin_permission: Lưu trữ danh sách quyền thao tác, bao gồm tên quyền và định danh (slug).
  • admin_role: Lưu trữ các vai trò truy cập và liên kết phân quyền chức vụ cho người dùng.
+-------------------------------------------------------------------------------+
|                            KIẾN TRÚC TỔNG QUAN HỆ THỐNG                        |
|                                                                               |
|  [ Giao diện Web (HTML/CSS/JS) ] <---> [ Flask Web Server (Python) ]          |
|                 |                                    |                        |
|                 +---> Text-to-Speech Engine          +---> Hàm getBotResponse |
|                                                              |                |
|  [ Quản trị: admin_user / permission / role ] <----+         |                |
|                                                    |         v                |
|  [ Cơ sở dữ liệu SQLite: sqlite:///database ] <----+-- [ ChatterBot Core ]    |
|                                                        (Logic & SQL Adapters) |
+-------------------------------------------------------------------------------+

Các ca sử dụng chính trong hệ thống được phân tích luồng sự kiện chi tiết:

  1. Use case Đăng nhập: Kiểm tra tính hợp lệ của tài khoản và mật khẩu từ bảng admin_user, điều hướng vào giao diện quản trị khi xác thực thành công.
  2. Use case Quản lý tài khoản: Cung cấp các thao tác xem, thêm, sửa thông tin chi tiết và xóa tài khoản nhân viên.
  3. Use case Quản lý quyền: Quản lý danh mục quyền hạn của hệ thống, cho phép khởi tạo, chỉnh sửa các tham số định danh và xóa quyền khỏi bảng admin_permission.
  4. Use case Quản lý phân quyền: Thiết lập và phân bổ các vai trò truy cập trong bảng admin_role tương ứng với từng nhóm người dùng.

Quy trình lập trình và huấn luyện mô hình

Quy trình xây dựng lõi chatbot trải qua các bước lập trình cụ thể:

  • Xây dựng giao diện web: Sử dụng tệp giao diện index.html tích hợp khung nhập liệu hội thoại và các trang thông tin phụ trợ.
  • Thu nhận và xử lý tín hiệu: Tiếp nhận chuỗi văn bản người dùng nhập từ giao diện, chuyển vào hàm getBotResponse() trong Flask để gọi phương thức xử lý của đối tượng ChatterBot.
  • Cơ chế huấn luyện (Training): Nạp tập danh sách các phát biểu đối thoại (statement list) về sản phẩm truyền thanh thông minh vào mô hình. Thuật toán của ChatterBot ghi nhận văn bản đầu vào và câu phản hồi tương ứng, tự động tính toán khoảng cách ngữ nghĩa để trích xuất phản hồi có độ phù hợp cao nhất từ kho tri thức.
  • Tích hợp giọng nói: Bổ sung module tiếp nhận chuỗi ký tự văn bản và biến đổi thành âm thanh phát ra trực tiếp trên trình duyệt.

Nội dung chính theo từng chương

Cấu trúc đồ án tốt nghiệp được tổ chức thành 5 chương với các nội dung chi tiết:

Chương Tên chương trong văn bản Nội dung chính và trọng tâm kỹ thuật
Chương 1 Giới thiệu đề tài Trình bày bối cảnh chuyển đổi số, lý do chọn đề tài, 4 mục tiêu nghiên cứu, tiêu chuẩn thiết kế web và phạm vi khách hàng mục tiêu.
Chương 2 Cơ sở lý thuyết Hệ thống hóa khái niệm AI, phân loại 3 dạng chatbot, ưu nhược điểm của chatbot, khảo sát các nền tảng thương mại, phân tích cấu tạo thư viện ChatterBot, vi khung Flask, ngôn ngữ Python và hướng dẫn cài đặt môi trường PyCharm.
Chương 3 Phân tích thiết kế hệ thống Định nghĩa yêu cầu chức năng và phi chức năng; xây dựng biểu đồ thực thể liên kết, biểu đồ Use case tổng quát, biểu đồ lớp, biểu đồ trình tự và đặc tả chi tiết 4 Use case quản trị.
Chương 4 Xây dựng hệ thống Mô tả tổng quan kiến trúc, thiết lập cơ sở tri thức đối thoại, triển khai mã nguồn hàm getBotResponse(), tích hợp tính năng chuyển văn bản thành giọng nói và chụp ảnh các giao diện thực nghiệm.
Chương 5 Kết luận Tổng kết các hạng mục đã hoàn thành và đề xuất các định hướng phát triển, mở rộng hệ thống trong tương lai.

Chương 1: Giới thiệu đề tài

Chương này phân tích vai trò của công nghệ thông tin trong các lĩnh vực giáo dục, văn hóa nghệ thuật và doanh nghiệp tại Việt Nam. Tác giả nhấn mạnh sự cần thiết của một website tích hợp chatbot hoạt động 24/24 nhằm cung cấp thông tin liên tục, nhanh chóng về sản phẩm truyền thanh thông minh. Chương 1 xác định rõ các yêu cầu khi xây dựng website: nhận diện đối tượng khách hàng, làm rõ mục đích hệ thống, thiết lập khối thông tin chính và vạch ra định hướng duy trì kỹ thuật dài hạn.

Chương 2: Cơ sở lý thuyết

Nội dung chương 2 đi sâu vào cấu trúc 3 tầng của chatbot (Cơ sở dữ liệu, Lớp ứng dụng, API/GUI) và 3 mô hình tương tác (Rules-based, Corpus-based, Frame-based). Tác giả tổng hợp số liệu dự báo xu hướng công nghệ (như 80% doanh nghiệp có kế hoạch triển khai chatbot vào năm 2020; nghiên cứu của Juniper Research về việc chatbot giúp tiết kiệm khoảng 8 tỷ USD ngân sách CSKH vào năm 2022). Phần kỹ thuật phân tích chi tiết cơ chế cấp phép mã nguồn mở BSD của ChatterBot, hướng dẫn cài đặt các gói phụ thuộc (pip install chatterbot, git clone), cách cấu hình SQLStorageAdapter, TimeLogicAdapter, MathematicalEvaluation và các đặc tính của Flask cùng ngôn ngữ Python.

Chương 3: Phân tích thiết kế hệ thống

Chương 3 tập trung mô hình hóa hệ thống Web Chatbot CSKH Haedap. Tác giả xây dựng biểu đồ thực thể liên kết mức logic và biểu đồ ca sử dụng tổng quát. Phân hệ quản trị được phân tích qua 4 ca sử dụng cụ thể: Đăng nhập, Quản lý tài khoản, Quản lý quyền và Quản lý phân quyền. Mỗi ca sử dụng đều được đặc tả rõ ràng luồng sự kiện cơ bản, luồng rẽ nhánh khi phát sinh lỗi hoặc mất kết nối cơ sở dữ liệu, tiền điều kiện và hậu điều kiện, kèm theo biểu đồ trình tự và biểu đồ lớp tương ứng.

Chương 4: Xây dựng hệ thống

Chương 4 mô tả quá trình hiện thực hóa thiết kế thành phần mềm thực tế. Tác giả trình bày cách thức xây dựng cơ sở tri thức dữ liệu mẫu cho thiết bị truyền thanh thông minh, cấu hình tập tin index.html và viết hàm tiếp nhận dữ liệu getBotResponse(). Kết quả triển khai được minh họa qua các giao diện hệ thống: giao diện trang chủ, giao diện đăng nhập, giao diện quản trị viên, giao diện hộp thoại chatbot, giao diện trang lý do sử dụng chatbot và giao diện chuyển đổi văn bản thành giọng nói.

Chương 5: Kết luận

Chương cuối cùng tổng kết các kết quả đạt được sau quá trình thực hiện đồ án tốt nghiệp, chỉ ra các mặt giới hạn trong quá trình vận hành và nêu lên các ý tưởng phát triển hệ thống trong tương lai.


Kết quả và đóng góp

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

Đồ án đã hoàn thành việc nghiên cứu và xây dựng thành công ứng dụng Web Chatbot CSKH Haedap với các kết quả cụ thể:

  • Xây dựng hoàn chỉnh ứng dụng web trên nền tảng vi khung Flask kết nối với nhân xử lý ngôn ngữ ChatterBot.
  • Triển khai thành công cơ sở dữ liệu SQLite (sqlite:///database) thông qua SQLStorageAdapter, cho phép lưu trữ cục bộ dữ liệu đối thoại và lịch sử tương tác.
  • Tích hợp thành công hai bộ điều hợp logic (TimeLogicAdapter và MathematicalEvaluation) cho phép chatbot phản hồi thông tin thời gian thực và thực hiện các phép toán cơ bản.
  • Xây dựng giao diện tương tác trực quan bao gồm: cửa sổ chat trực tuyến, giao diện giới thiệu thông tin thiết bị truyền thanh thông minh, giao diện đăng nhập và bảng điều khiển quản trị viên (quản lý người dùng, quyền và phân quyền).
  • Tích hợp thêm chức năng chuyển đổi chuỗi văn bản thành giọng nói phát trực tiếp trên nền web.

Đóng góp của đề tài

  • Tính tự chủ công nghệ: Hệ thống sử dụng hoàn toàn các thư viện và framework mã nguồn mở (Python, Flask, ChatterBot), giúp doanh nghiệp làm chủ toàn bộ mã nguồn và cơ sở dữ liệu, không bị phụ thuộc vào các nền tảng trả phí hoặc dịch vụ đám mây của bên thứ ba.
  • Bảo mật dữ liệu: Việc lưu trữ cơ sở tri thức và thông tin quản trị cục bộ trên hệ quản trị cơ sở dữ liệu riêng giúp bảo mật thông tin nội bộ và dữ liệu khách hàng.
  • Khả năng ứng dụng thực tế: Đưa ra giải pháp mẫu về tự động hóa khâu giải đáp thắc mắc khách hàng cho lĩnh vực đặc thù là thiết bị truyền thanh thông minh, hỗ trợ giảm tải khối lượng công việc cho nhân viên trực tuyến.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế của hệ thống

Dựa trên phạm vi và nội dung trình bày trong văn bản, hệ thống còn tồn tại một số điểm hạn chế:

  • Nội dung phản hồi của chatbot còn phụ thuộc chặt chẽ vào tập dữ liệu kịch bản và các câu hội thoại đã được huấn luyện trước.
  • Khi gặp các câu hỏi có cấu trúc phức tạp hoặc những tình huống chưa có trong tập dữ liệu tri thức, chatbot chưa thể xử lý linh hoạt và có thể bỏ qua phản hồi.
  • Cơ chế học tự động đòi hỏi phải có quá trình tích lũy dữ liệu tương tác lớn và thời gian đào tạo liên tục để nâng cao độ chính xác của phản hồi.

Hướng phát triển trong tương lai

Văn bản đề tài xác định các định hướng nâng cấp hệ thống tiếp theo bao gồm:

  • Mở rộng và làm giàu cơ sở tri thức chuyên sâu về thiết bị truyền thanh thông minh và các dịch vụ liên quan của doanh nghiệp.
  • Tăng cường huấn luyện thêm nhiều bộ dữ liệu hội thoại mẫu với các biến thể ngôn ngữ đa dạng nhằm nâng cao độ chính xác và độ rộng phản hồi của chatbot.
  • Tối ưu hóa các thuật toán xử lý ngôn ngữ tự nhiên và học máy để nâng cao khả năng tự học của hệ thống sau mỗi phiên hội thoại thực tế.

Giá trị tham khảo

Tài liệu đồ án tốt nghiệp này mang lại giá trị tham khảo thiết thực cho các đối tượng:

  • Sinh viên ngành Kỹ thuật Phần mềm và Công nghệ Thông tin: Là tài liệu tham khảo trực quan về quy trình phân tích thiết kế hệ thống thông tin hoàn chỉnh theo chuẩn UML (từ biểu đồ Use case, biểu đồ tuần tự, biểu đồ lớp đến biểu đồ thực thể liên kết ERD).
  • Lập trình viên phát triển ứng dụng Python/Flask: Cung cấp hướng dẫn chi tiết về phương pháp nhúng thư viện xử lý hội thoại ChatterBot vào ứng dụng web Flask, kỹ thuật thiết lập Storage Adapter với SQLite và cách tích hợp các Logic Adapter.
  • Người nghiên cứu giải pháp Chatbot nội bộ: Cung cấp mô hình kiến trúc tham khảo để xây dựng các hệ thống chatbot độc lập, mã nguồn mở, giúp tiết kiệm chi phí bản quyền và bảo vệ dữ liệu hội thoại cho doanh nghiệp vừa và nhỏ.

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

1. Hệ thống chatbot trong đồ án có tên là gì và hướng tới đối tượng người dùng nào?
Hệ thống có tên là ChatBot CSKH Haedap, được xây dựng để cung cấp thông tin, hướng dẫn sử dụng thiết bị truyền thanh thông minh và thông tin doanh nghiệp. Hệ thống hướng tới tất cả mọi đối tượng khách hàng có nhu cầu tìm hiểu thông tin mà không phân biệt tầng lớp.

2. Thư viện ChatterBot được tác giả cấu hình lưu trữ dữ liệu bằng phương thức nào?
ChatterBot được cấu hình sử dụng lớp SQLStorageAdapter để kết nối tới cơ sở dữ liệu SQL, cụ thể là tạo và lưu trữ tự động vào tệp cơ sở dữ liệu SQLite cục bộ tại đường dẫn sqlite:///database.

3. Những Logic Adapter nào được tích hợp mẫu cho Chatbot trong văn bản?
Tác giả đã cấu hình hai logic adapter tích hợp sẵn của ChatterBot bao gồm TimeLogicAdapter (cho phép trả về thời gian hiện tại khi người dùng hỏi) và MathematicalEvaluation (sử dụng các toán tử số học cơ bản cộng, trừ, nhân, chia để giải toán).

4. Phân hệ quản trị của hệ thống sử dụng những bảng dữ liệu nào để kiểm soát truy cập?
Cơ sở dữ liệu quản trị bao gồm ba bảng chính: bảng admin_user (lưu trữ thông tin tài khoản, mật khẩu nhân viên), bảng admin_permission (lưu trữ danh sách tên quyền và slug) và bảng admin_role (lưu trữ thông tin các vai trò phân quyền truy cập).

5. Ngoài tính năng chat tự động, hệ thống còn hỗ trợ những kênh tương tác nào khác cho khách hàng?
Hệ thống tích hợp thêm tính năng chuyển đổi văn bản thành giọng nói (Text-to-Speech) ngay trên giao diện web, đồng thời cung cấp các nút chức năng hỗ trợ khách hàng gọi điện trực tiếp hoặc kết nối trao đổi trực tiếp với nhân viên chăm sóc khách hàng.


Kết luận

Đồ án tốt nghiệp "Nghiên cứu, thiết kế và xây dựng Chatbot CSKH Truyền thanh thông minh" của sinh viên Lê Duy Sơn Tùng đã hoàn thành trọn vẹn mục tiêu nghiên cứu lý thuyết và triển khai thực nghiệm một hệ thống chatbot chăm sóc khách hàng hoàn chỉnh. Bằng việc kết hợp hiệu quả giữa vi khung Flask, thư viện học máy ChatterBot và hệ cơ sở dữ liệu SQLite, tác giả đã xây dựng thành công ứng dụng Web Chatbot CSKH Haedap có khả năng tương tác tự động và quản trị phân quyền chặt chẽ. Đề tài thể hiện tính thực tiễn cao, đóng vai trò là một tài liệu tham khảo hữu ích cho sinh viên kỹ thuật phần mềm trong việc phát triển các giải pháp trợ lý ảo mã nguồn mở.