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

Báo cáo đồ án môn học Lập trình mạng với đề tài "Xây dựng chương trình AI Chatbot" được thực hiện bởi nhóm sinh viên Phạm Minh Quang (MSSV: 22DH112941) và Nguyễn Công Khanh (MSSV: 22DH111558), dưới sự hướng dẫn của giảng viên Phạm Phú Thiện tại Khoa Công nghệ Thông tin, Trường Đại học Ngoại ngữ - Tin học Thành phố Hồ Chí Minh (báo cáo hoàn thành ngày 27/07/2024).

1. Lý do chọn đề tài và bối cảnh thực tiễn

Theo nhóm tác giả, trong bối cảnh trí tuệ nhân tạo (AI) phát triển nhanh chóng và trở thành một trong những lĩnh vực công nghệ trọng tâm, nhu cầu tương tác và giao tiếp tự động giữa doanh nghiệp và khách hàng ngày càng trở nên cấp thiết. Các ứng dụng chatbot tự động giúp giải quyết bài toán tối ưu hóa nguồn lực thông qua các khía cạnh:

  • Tiết kiệm chi phí nhân sự, thời gian và tài nguyên vận hành của hệ thống chăm sóc khách hàng.
  • Cung cấp dịch vụ hỗ trợ liên tục, giải đáp nhanh chóng các thắc mắc của người dùng.
  • Khả năng thu thập, học hỏi từ dữ liệu hội thoại trước đó để nâng cao chất lượng phản hồi và cải thiện trải nghiệm người dùng.

2. Mục tiêu và nhiệm vụ nghiên cứu

Văn bản xác định các mục tiêu và nhiệm vụ trọng tâm sau:

  1. Phát triển và củng cố kiến thức nền tảng về trí tuệ nhân tạo (AI) và cơ chế vận hành của ứng dụng Chatbot.
  2. Thiết kế và phát triển hoàn chỉnh một chương trình Chatbot có khả năng hoạt động ổn định, tương tác hiệu quả.
  3. Thử nghiệm thực tế và đánh giá hiệu suất vận hành của hệ thống khi triển khai.
  4. Đưa hệ thống vào ứng dụng thực tế để tiếp tục nâng cao, cải tiến các tính năng phần mềm.
  5. Chia sẻ kết quả thực nghiệm và bài học kinh nghiệm thu được từ quá trình triển khai dự án với cộng đồng nghiên cứu và phát triển AI.

3. Đối tượng và phạm vi nghiên cứu

Đồ án giới hạn cụ thể các khía cạnh nghiên cứu trong văn bản:

  • Đối tượng nghiên cứu: Ứng dụng AI Chatbot hoạt động dựa trên mô hình mạng giao tiếp máy trạm - máy chủ (Client - Server), có khả năng tiếp nhận yêu cầu, phân tích câu hỏi và phản hồi tự động.
  • Phạm vi công nghệ: Tập trung nghiên cứu và áp dụng các kỹ thuật xử lý ngôn ngữ tự nhiên (NLP), học máy (Machine Learning), học sâu (Deep Learning) phục vụ Chatbot; sử dụng nền tảng phát triển ứng dụng Java kết hợp lập trình mạng Socket.
  • Phạm vi chức năng: Thực hiện các chức năng cơ bản gồm trả lời câu hỏi, cung cấp thông tin, hỗ trợ kỹ thuật và thực thi một số tác vụ mạng chuyên dụng (tra cứu thời tiết, định vị địa chỉ IP, quét cổng mạng).
  • Phạm vi ứng dụng: Định hướng triển khai trong các lĩnh vực dịch vụ khách hàng, giáo dục và hỗ trợ kỹ thuật; văn bản nêu rõ đề tài không mở rộng sang các lĩnh vực phức tạp đòi hỏi tiêu chuẩn bảo mật và độ chính xác khắt khe như chăm sóc y tế hoặc tài chính.
  • Phạm vi ngôn ngữ: Hỗ trợ ngôn ngữ tiếng Việt làm trọng tâm và tích hợp bổ sung tiếng Anh theo yêu cầu của hệ thống.

Cơ sở lý thuyết và phương pháp

1. Khung lý thuyết và mô hình kiến trúc

Nghiên cứu được xây dựng trên nền tảng kiến thức môn học Lập trình mạng với các mô hình và khái niệm kỹ thuật cốt lõi:

  • Kiến trúc mạng Client - Server qua Socket: Ứng dụng giao thức truyền thông mạng tầng giao vận để thiết lập kết nối liên tục giữa ứng dụng khách (Client) và máy chủ (Server), thực hiện việc tiếp nhận và gửi dữ liệu dạng dòng (Stream).
  • Kỹ thuật xử lý đa luồng (Multi-threading): Triển khai luồng (Thread) độc lập tại phía máy chủ để quản lý đồng thời nhiều phiên kết nối từ các máy trạm khác nhau mà không làm nghẽn tiến trình chính.
  • Mô hình phân luồng hội thoại (Dialogue Processing Model): Quy trình xử lý thông tin được chia tách thành các khối chuyên biệt gồm giao diện (UI), xử lý ngôn ngữ tự nhiên (NLP), quản lý đối thoại (Dialogue Management) và tích hợp dịch vụ bên ngoài (Integration Module).
  • Hệ quản trị cơ sở dữ liệu quan hệ (RDBMS): Áp dụng mô hình lưu trữ bảng trong MySQL để quản trị người dùng và lịch sử nhắn tin.

2. Phương pháp nghiên cứu và phát triển

Tác giả sử dụng các phương pháp kỹ thuật phần mềm thực nghiệm để hoàn thành đồ án:

  • Phương pháp phân tích yêu cầu: Phân định rõ ràng giữa các yêu cầu chức năng (các lệnh tra cứu thời tiết, xác định IP, quét port, trò chuyện) và yêu cầu phi chức năng (hiệu năng phản hồi, bảo mật tài khoản, độ tin cậy và khả năng chịu lỗi).
  • Phương pháp thiết kế mô-đun hóa: Tách biệt mã nguồn giữa Client (xây dựng giao diện đồ họa GUI bằng JavaFX) và Server (quản trị kết nối Socket, luồng, kết nối cơ sở dữ liệu và gọi API).
  • Phương pháp tích hợp giao diện lập trình ứng dụng (API Integration): Kết nối các dịch vụ trực tuyến gồm SimSimi API (hội thoại tự động), API thời tiết (Weather API), API định vị địa lý theo địa chỉ IP và dịch vụ tìm kiếm Google.
  • Phương pháp kiểm thử thực nghiệm: Đánh giá tính chịu tải của hệ thống máy chủ bằng cách khởi chạy cùng lúc nhiều tiến trình Client để xác nhận khả năng vận hành đồng thời.

3. Nguồn dữ liệu

  • Dữ liệu tài khoản người dùng và nhật ký hội thoại được lưu trữ cục bộ trên cơ sở dữ liệu MySQL 8.4.
  • Dữ liệu thời tiết thu thập trực tiếp thông qua việc gửi truy vấn HTTP đến API thời tiết.
  • Dữ liệu tọa độ địa lý trích xuất từ API định vị hoặc dịch vụ website tra cứu vị trí địa chỉ IP.
  • Dữ liệu hội thoại thông minh được cung cấp thông qua dịch vụ SimSimi API.

Thiết kế và triển khai

Hệ thống được phát triển theo mô hình ứng dụng mạng tương tác hai chiều, bao gồm kiến trúc phân tầng, ngăn xếp công nghệ và quy trình luồng dữ liệu chi tiết.

1. Ngăn xếp công nghệ và môi trường phát triển

Thành phần Công nghệ / Công cụ sử dụng Vai trò trong hệ thống
Ngôn ngữ lập trình Java Ngôn ngữ chủ đạo phát triển cả phía Client và Server
Giao diện người dùng JavaFX Thiết kế giao diện đồ họa (GUI), các ô nhập liệu, cửa sổ chat, nút bấm, thông báo
Môi trường phát triển (IDE) Apache NetBeans IDE 22 Soạn thảo mã nguồn, gỡ lỗi (debug), quản lý dự án và tích hợp hệ thống
Hệ cơ sở dữ liệu MySQL Server Lưu trữ tài khoản người dùng, phân quyền và lịch sử hội thoại
Công cụ cấu hình DB MySQL 8.4 Configurator Hỗ trợ quản trị viên thiết lập, tối ưu hóa các tham số vận hành cho MySQL 8
Giao thức truyền thông Java Socket (TCP) Kết nối mạng, truyền nhận chuỗi dữ liệu văn bản giữa máy khách và máy chủ
Dịch vụ tích hợp bên ngoài SimSimi API, Weather API, Google Search, Dịch vụ Email OTP Cung cấp phản hồi tự động, dữ liệu thời tiết, tìm kiếm mạng và xác thực mật khẩu

2. Luồng dữ liệu và thiết kế các module

Kiến trúc xử lý yêu cầu được minh họa qua ví dụ về chức năng tra cứu thời tiết:

  1. Tiếp nhận: Người dùng nhập yêu cầu dạng văn bản (ví dụ: "Thời tiết hôm nay thế nào") tại giao diện Client.
  2. Truyền dẫn và phân tích: UI Module chuyển câu hỏi đến NLP Module để phân tích cú pháp và nhận dạng ý định (Intent) của người dùng là tra cứu thời tiết.
  3. Điều hướng: Module Quản lý đối thoại (Dialogue Management) điều hướng yêu cầu đến Module Tích hợp (Integration Module).
  4. Xử lý ngoại vi: Integration Module gửi yêu cầu kèm tham số địa danh đến API thời tiết và tiếp nhận kết quả phản hồi.
  5. Định dạng và trả lời: Dialogue Management nhận dữ liệu thô, xử lý định dạng hiển thị thành văn bản hoàn chỉnh, sau đó gửi trả về UI Module để hiển thị trên màn hình chat của người dùng.

Mô hình điều phối này cũng được áp dụng tương tự đối với các chức năng xác định vị trí IP, quét cổng mạng (Port scanner) và gọi SimSimi API.

3. Thiết kế mở rộng ngoài yêu cầu ban đầu

Bên cạnh các chức năng quy định, nhóm tác giả đã thiết kế bổ sung hai khối tính năng:

  • Cơ chế xác thực qua mã OTP: Khi người dùng có đăng ký địa chỉ email quên mật khẩu, hệ thống cho phép tạo và gửi một mã xác thực OTP qua email nhằm phục vụ thao tác đặt lại mật khẩu mới.
  • Hệ thống quản lý người dùng (CRUD): Cung cấp giao diện cho phép thực hiện đầy đủ các thao tác Thêm (Create), Đọc (Read), Sửa (Update) và Xóa (Delete) dữ liệu tài khoản người dùng trong cơ sở dữ liệu.

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

Chương 1: Mở đầu

Chương 1 thiết lập các luận điểm tổng quan về đề tài:

  • Trình bày định nghĩa AI Chatbot như một công cụ giao tiếp tự động, có khả năng tiết kiệm chi phí và tối ưu hóa vận hành cho các tổ chức, doanh nghiệp.
  • Nêu rõ 5 mục tiêu nghiên cứu cụ thể, tập trung vào việc làm chủ kiến thức AI/Chatbot, hoàn thiện ứng dụng phần mềm và chia sẻ bài học thực tiễn.
  • Giới hạn phạm vi nghiên cứu rõ ràng: tập trung vào các lĩnh vực chăm sóc khách hàng, hỗ trợ kỹ thuật, giáo dục; loại trừ y tế và tài chính; hỗ trợ xử lý ngôn ngữ tiếng Việt và tiếng Anh.

Chương 2: Phân tích yêu cầu

Nội dung chương 2 quy định chi tiết các đặc tả kỹ thuật của hệ thống phần mềm:

  • Yêu cầu chức năng:
    • Tra cứu thời tiết: Người dùng nhập tên một tỉnh/thành phố hoặc địa danh bằng tiếng Việt; hệ thống phản hồi tình trạng thời tiết của ngày hiện tại và các ngày/tuần kế tiếp.
    • Xác định vị trí IP: Người dùng nhập vào một địa chỉ IP bất kỳ; hệ thống trả lời tọa độ địa lý tương ứng thông qua việc gọi API hoặc trích xuất từ công cụ website.
    • Quét port: Tiếp nhận địa chỉ IP cùng khoảng giới hạn từ cổng $x$ đến cổng $y$ do người dùng chỉ định; hệ thống kiểm tra và trả về danh sách các port đang mở trong phạm vi đó.
    • Chức năng cộng điểm: Tích hợp thêm tìm kiếm Google, API SimSimi và xác thực OTP.
  • Yêu cầu phi chức năng: Đặt ra các tiêu chí về tốc độ phản hồi nhanh; tối ưu hóa tài nguyên phần cứng máy chủ; xác thực và phân quyền tài khoản chặt chẽ; đảm bảo tính toàn vẹn của dữ liệu và khả năng chịu lỗi liên tục khi có sự cố.
  • Kịch bản sử dụng: Phân tích các bước tương tác giữa người dùng và chatbot trên các giao diện thành phần.

Chương 3: Thiết kế hệ thống

Chương 3 mô tả cấu trúc chi tiết của phần mềm:

  • Trình bày sơ đồ kiến trúc hệ thống Client - Server qua Socket.
  • Đặc tả giao diện người dùng bằng bộ công cụ JavaFX, cho phép xây dựng các khung chat trực quan, ô nhập liệu, danh sách nút điều hướng và cơ chế chuyển đổi giao diện Sáng/Tối.
  • Thiết kế mô hình cơ sở dữ liệu MySQL lưu trữ bảng thông tin người dùng và nhật ký các phiên trò chuyện.
  • Trình bày chi tiết luồng xử lý qua 4 module: UI Module, NLP Module, Dialogue Management, Integration Module.
  • Mô tả thiết kế giao diện CRUD người dùng và quy trình gửi mã OTP đặt lại mật khẩu qua email.

Chương 4: Môi trường phát triển, Cấu trúc mã nguồn và Quá trình triển khai

Chương 4 đóng vai trò tài liệu kỹ thuật về cài đặt và cấu trúc mã nguồn:

  • Môi trường phát triển: Giới thiệu phiên bản Apache NetBeans IDE 22 với các tính năng gỡ lỗi, soạn thảo Java và hỗ trợ tích hợp Git; công cụ MySQL 8.4 Configurator hỗ trợ tối ưu hóa cấu hình cơ sở dữ liệu.
  • Cấu trúc mã nguồn và giao diện: Liệt kê các thành phần giao diện đã xây dựng gồm màn hình đăng nhập, màn hình đăng ký, cửa sổ chat, màn hình gửi nhận tin nhắn, màn hình chờ phản hồi từ bot, màn hình xử lý OTP, giao diện tra cứu thời tiết, lấy vị trí IP, quét port và tìm kiếm Google.
  • Quá trình triển khai: Trình bày 12 bước cấu hình trên Apache NetBeans và 19 bước chi tiết thiết lập máy chủ cơ sở dữ liệu MySQL (từ hình 22.1 đến 22.19 trong báo cáo).
  • Mô tả điểm nổi bật của mã nguồn:
    • Phía Client: Sử dụng Socket kết nối máy chủ; quản lý luồng dữ liệu I/O; phân biệt định dạng hiển thị tin nhắn của User và Bot; hiển thị dòng trạng thái thông báo bot đang xử lý; tích hợp chuyển đổi giao diện Sáng/Tối; hỗ trợ gửi OTP phục hồi mật khẩu.
    • Phía Server: Lập trình Socket tiếp nhận kết nối; quản lý đa máy trạm đồng thời bằng cơ chế đa luồng (Thread); xác thực thông tin đăng nhập từ cơ sở dữ liệu MySQL; lưu trữ nhật ký hội thoại vào cơ sở dữ liệu; xử lý các tác vụ API ngoại vi (Thời tiết, Vị trí IP, Quét port mở, Trò chuyện SimSimi API, Tìm kiếm Google).

Chương 5: Đánh giá và kết luận

  • Kết quả thực hiện: Hoàn thiện toàn bộ các màn hình giao diện thực tế gồm giao diện ChatBot, đăng ký, quên mật khẩu, khung chat, tra cứu thời tiết, xác định vị trí IP, quét cổng đang mở và tìm kiếm Google.
  • Đánh giá hệ thống: Đánh giá hiệu năng thực tế thông qua việc kích hoạt liên tiếp nhiều phiên Client cùng một lúc; hệ thống chứng minh vẫn duy trì khả năng tương tác ổn định, không gặp xung đột luồng.
  • Đánh giá mức độ hoàn thành nhiệm vụ: Báo cáo bao gồm bảng phân công công việc chi tiết giữa các thành viên.
Thành viên thực hiện Hạng mục phân công phụ trách Tỷ lệ đóng góp
Phạm Minh Quang - Phần mềm: Đăng nhập, Màn hình khung chat, Xác định vị trí IP, Gửi tin nhắn, Xóa lịch sử chat, Giao diện người dùng, Chủ đề giao diện sáng - tối, Cơ sở dữ liệu (MySQL), Đổi mật khẩu - Gửi mã OTP qua mail.
- Báo cáo: Chương Mở đầu, Phân tích yêu cầu, Thiết kế hệ thống.
60%
Nguyễn Công Khanh - Phần mềm: Đăng ký, Tra cứu thời tiết, Quét port, Tích hợp SimSimi API, Tìm kiếm Google.
- Báo cáo: Chương Mã nguồn, Đánh giá và kết luận.
40%

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

1. Kết quả thực hiện chính

Nhóm nghiên cứu đã xây dựng thành công ứng dụng AI Chatbot hoàn chỉnh theo đúng các yêu cầu kỹ thuật đề ra với các kết quả cụ thể:

  • Tính năng mạng cốt lõi:
    • Tra cứu thành công thời tiết tại các tỉnh/thành phố theo chuỗi tiếng Việt.
    • Phân tích và trả về chính xác tọa độ vị trí địa lý của một địa chỉ IP bất kỳ.
    • Quét và liệt kê danh sách các cổng mạng (port) đang mở trong phạm vi từ cổng $x$ đến cổng $y$ do người dùng cấu hình.
  • Tính năng mở rộng và tương tác thông minh:
    • Tích hợp thành công SimSimi API để duy trì các cuộc trò chuyện tự động với người dùng.
    • Tích hợp chức năng tìm kiếm thông tin nhanh trên Google từ giao diện chat.
    • Cung cấp cơ chế xác thực tài khoản đầy đủ (Đăng ký, Đăng nhập, Đổi mật khẩu thông qua mã xác thực OTP gửi về hộp thư điện tử).
    • Hoàn thiện giao diện đồ họa bằng JavaFX cho phép người dùng tùy chọn thay đổi giữa hai chủ đề hiển thị Sáng (Light) và Tối (Dark).
    • Tích hợp chức năng quản lý người dùng (CRUD) và lưu trữ nhật ký hội thoại vào cơ sở dữ liệu MySQL.
  • Kết quả kiểm thử hiệu năng: Hệ thống máy chủ Java Socket xử lý ổn định khi vận hành song song nhiều ứng dụng Client cùng một thời điểm, khẳng định tính đúng đắn của giải pháp thiết kế đa luồng (Multi-threading).

2. Giải pháp và kiến nghị của tác giả

  • Giải pháp kỹ thuật: Kết hợp mô hình mạng Socket TCP truyền thống với các API dịch vụ trực tuyến để mở rộng khả năng của một ứng dụng chat thông thường thành một trợ lý mạng đa năng.
  • Kiến nghị phát triển: Tận dụng cấu trúc mã nguồn được phân chia rõ ràng theo từng module để dễ dàng tích hợp thêm các dịch vụ mạng và công cụ xử lý dữ liệu mới trong tương lai.

3. Đóng góp tự nêu của đồ án

  • Ứng dụng thành công các kiến thức lý thuyết của môn học Lập trình mạng vào việc giải quyết một bài toán thực tiễn.
  • Cung cấp một sản phẩm phần mềm mẫu hoàn chỉnh, minh họa cách thức kết hợp giữa giao diện đồ họa JavaFX, hệ cơ sở dữ liệu MySQL, kỹ thuật quản lý đa luồng trên Server và kỹ thuật gọi các dịch vụ API hiện đại.

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

Theo văn bản báo cáo, đồ án tồn tại các hạn chế kỹ thuật và định hướng hoàn thiện sau:

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

  • Khả năng xử lý đối thoại còn bị giới hạn trong một số chủ đề cụ thể, chưa đáp ứng được toàn diện tất cả các nhu cầu thông tin mở rộng của người sử dụng.
  • Khả năng phân tích ngôn ngữ tự nhiên còn ở mức cơ bản; hệ thống chưa có khả năng nhận biết cảm xúc và bối cảnh chuyên sâu của người dùng trong quá trình hội thoại, dẫn đến một số trường hợp câu trả lời phản hồi chưa thực sự chuẩn xác hoặc chưa phù hợp với ngữ cảnh.

2. Hướng nghiên cứu và phát triển tiếp theo

  • Mở rộng thêm nhiều dịch vụ tiện ích và chức năng thông minh mới cho Chatbot nhằm phục vụ đa dạng nhu cầu của người dùng.
  • Tăng cường nghiên cứu các mô hình học sâu và xử lý ngôn ngữ tự nhiên tiên tiến hơn để nâng cao độ chính xác, cải thiện năng lực nhận diện bối cảnh và cảm xúc.
  • Tối ưu hóa hiệu suất truyền nhận và độ tin cậy của hệ thống mạng nhằm đảm bảo ứng dụng vận hành liên tục và phản ứng tức thời trước các yêu cầu kết nối.

Giá trị tham khảo

Báo cáo đồ án môn học này là tài liệu tham khảo hữu ích cho các đối tượng và mục đích học thuật cụ thể:

  • Đối tượng tham khảo:
    • Sinh viên chuyên ngành Công nghệ Thông tin, Kỹ thuật Phần mềm và Mạng máy tính đang thực hiện đồ án môn học Lập trình mạng hoặc Lập trình Java nâng cao.
    • Người học cần tài liệu tham khảo về việc thiết kế hệ thống tương tác Client - Server sử dụng kiến trúc Socket TCP kết hợp giao diện đồ họa người dùng.
  • Các nội dung đáng tham khảo trong tài liệu:
    • Mô hình xử lý đa luồng phía Server: Giải pháp tổ chức Thread để quản lý đồng thời nhiều Client gửi yêu cầu cùng lúc.
    • Kỹ thuật tích hợp API bên thứ ba: Phương thức gọi và định dạng dữ liệu trả về từ các dịch vụ mạng như API thời tiết, API định vị IP, quét mở cổng mạng và API hội thoại SimSimi.
    • Thiết kế giao diện JavaFX: Cấu trúc xây dựng khung chat hoàn chỉnh, phân biệt định dạng hiển thị tin nhắn giữa người dùng và máy, bổ sung tính năng chuyển đổi chủ đề Sáng - Tối và hiển thị dòng trạng thái xử lý dữ liệu.
    • Quy trình xác thực an toàn: Cơ chế cấp phát và gửi mã xác thực OTP qua email để khôi phục mật khẩu tài khoản người dùng kết hợp lưu trữ cơ sở dữ liệu MySQL.

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

1. Hệ thống quản lý các kết nối đồng thời từ nhiều người dùng bằng phương thức nào?

Máy chủ (Server) sử dụng giao thức Socket TCP để tiếp nhận kết nối mạng và quản lý nhiều ứng dụng Client đồng thời bằng kỹ thuật xử lý đa luồng (Multi-threading). Mỗi kết nối máy trạm được gán một luồng riêng biệt để xử lý dữ liệu I/O, giúp hệ thống duy trì hoạt động ổn định và không bị gián đoạn khi nhiều Client cùng tương tác một lúc.

2. Đồ án đã hiện thực hóa những chức năng mạng đặc thù nào theo yêu cầu môn học?

Hệ thống đã triển khai đầy đủ 3 chức năng mạng chính:

  • Tra cứu thời tiết bằng cách gửi tên tỉnh/thành phố tiếng Việt và nhận thông tin thời tiết hiện tại kèm các ngày kế tiếp.
  • Xác định tọa độ địa lý tương ứng của một địa chỉ IP bất kỳ thông qua API hoặc trích xuất từ công cụ web.
  • Quét các cổng mạng (port) đang mở trên một địa chỉ IP mục tiêu trong giới hạn từ cổng $x$ đến cổng $y$ do người dùng nhập.

3. Dữ liệu của chương trình Chatbot được quản lý và lưu trữ ở đâu?

Dữ liệu hệ thống được lưu trữ trong hệ quản trị cơ sở dữ liệu quan hệ MySQL Server (được cấu hình bằng công cụ MySQL 8.4 Configurator). Cơ sở dữ liệu này đảm nhận nhiệm vụ lưu trữ thông tin tài khoản người dùng, phân quyền truy cập và lưu vết toàn bộ lịch sử các phiên trò chuyện giữa người dùng với Chatbot.

4. Giao diện người dùng có những điểm nổi bật nào về mặt trải nghiệm (UX)?

Giao diện ứng dụng được phát triển bằng JavaFX với các điểm nổi bật:

  • Hỗ trợ nút chuyển đổi linh hoạt giữa giao diện nền sáng và nền tối.
  • Phân định rõ ràng về kiểu dáng và định dạng tin nhắn của người dùng so với tin nhắn trả về từ Bot.
  • Hiển thị dòng thông báo trạng thái "đang đợi tin nhắn của bot" trong thời gian hệ thống truy vấn và xử lý dữ liệu từ API bên ngoài.

5. Cơ chế xử lý trường hợp người dùng quên mật khẩu được thiết kế như thế nào?

Hệ thống tích hợp quy trình gửi mã xác thực OTP qua email. Khi người dùng yêu cầu khôi phục mật khẩu, máy chủ sẽ xác thực địa chỉ email đã đăng ký và phát sinh một mã OTP gửi trực tiếp đến hộp thư của người dùng để xác nhận quyền thay đổi mật khẩu mới.


Kết luận

Báo cáo đồ án môn học Lập trình mạng "Xây dựng chương trình AI Chatbot" của nhóm sinh viên Trường Đại học Ngoại ngữ - Tin học TP.HCM đã hoàn thành đầy đủ các mục tiêu thiết kế và cài đặt hệ thống tương tác Client - Server bằng ngôn ngữ Java. Phần mềm tích hợp đồng bộ giữa mô hình Socket đa luồng, cơ sở dữ liệu MySQL và các dịch vụ mạng thực tế như SimSimi API, tra cứu thời tiết, định vị địa chỉ IP cùng công cụ quét cổng mạng. Dù còn một số hạn chế về khả năng nhận diện ngữ cảnh và cảm xúc hội thoại chuyên sâu, hệ thống đã chứng minh tính ổn định qua các kịch bản kiểm nghiệm đa kết nối đồng thời và cung cấp giá trị tham khảo kỹ thuật rõ ràng cho các đồ án ứng dụng mạng cùng định hướng.