HCM , đến quý th y, cô gi ng viên khoa Công nghầ ả ệ thông tin đã đưa môn học ập trình mạng vào chương trình giảng dạy và đã luôn quan tâm, giúp đỡ Lchung em trong quá trình h c tọ ập..
Phân tích yêu cầu
Yêu cầu chức năng
- Các chức năng chính của hệ thống:
+ Tra cứu th i tiết: gửi yêu c u là tên m t t nh/thành phờ ầ ộ ỉ ố hoặc địa danh (b ng ằ tiếng Việt) Kết qu ảphản h i là th i tiồ ờ ết ngày hiện t i và m t sạ ộ ố ngày/tuần (do SV quyết định) k tiếp của địa điểm đó ế
+ Xác định vị trí IP: gửi yêu cầu là 1 địa ch IP b t k K t qu ỉ ấ ỳ ế ảphản h i là tồ ọa độ địa điểm tương ứng với địa chỉ IP đó Có thể sử d ng API có s n ho c trích xu t kụ ẵ ặ ấ ết quả từ m t website có công c này ộ ụ
+ Quét port: g i yêu c u là mử ầ ột địa ch IP K t qu ỉ ế ảphản hồi là các port đang mở trong giới hạn t port x đến port y (với x, y là dữ liệu người dùng nh p) ừ ậ
+ Các chức năng khác nếu có cài đặt sẽ có điểm c ng ộ
2.2 Yêu c u phi chầ ức năng
+ Tốc độ phản hồi nhanh chóng
+ Khả năng xử lý số lượng người dùng và câu h i không g p vỏ ặ ấn đề
+ Tối ưu hóa tài nguyên: không gây tải nặng cho hệ thống
+ Xác thực và phân quy n: chề ỉ những người được s d ng m i có thử ụ ớ ể truy cập + B o vả ệ dữ liệu: Bảo đảm dữ liệu người dùng được b o v ả ệ
+ Ch ng b t n công: B i các l h ng b o m ố ị ấ ở ỗ ổ ả ật.
+ Khả năng chịu lỗi: Hoạt động liên t c k cụ ể ả khi gặp s cự ố
+ C p nh t và bậ ậ ảo trì thường xuyên
2.3 Các kịch bản sử dụng
Các kịch bản sử dụng
Thiết kế hệ thống
Kiến trúc hệ thống
1 Kiến trúc hệ thống đồ án
Thiết kế chi tiết
- Về thiết k giao diế ện: Xài JavaFX(là m t b công c ộ ộ ụphần mềm để t o giao diạ ện đồ họa (GUI) phong phú cho các ứng d ng Java.) Nó giúp cho ChatBot t o các cụ ạ ửa s ổ chat, các ô nh p liậ ệu, nút b m và các thông báo ấ ở giao diện người dùng, giúp dễ dàng tương tác với ChatBo và mang l i tr i nghiạ ả ệm tốt hơn cho người dùng mà còn giúp phát triển và b o trì mã ngu n dả ồ ễ dàng hơn
- Về thiết k ế cơ sở d ữliệu: Xài MySQL(được biết đến v i hiớ ệu su t cao, tính ấ ổn định, và kh ả năng mở r ng t t, phù h p cho c các ộ ố ợ ả ứng d ng nh lụ ỏ ẻ đến các hệ thống lớn)
Nó giúp cho ChatBot lưu trữ dữ liệu người dùng và tương tác, Quản lý dữ liệu và bảo mật
- Về thiết kế các module và các lu ng dồ ữ liệu:
+ Ví dụ ở chức năng tra cứu th i tiờ ết:
1) Người dùng hỏi “Thời tiết hôm nay thế nào”
2) UI Module: nh n câu h i tậ ỏ ừ người dùng
3) NLP Module: phân tích câu hỏi và xác định ý định là tra c u th i tiứ ờ ết
4) Dialogue Management: điều hướng yêu cầu đến module thích hợp
5) Integration Module: Gửi yêu cầu đến API th i tiờ ết
6) Integration Module: Nh n k t qu t API th i tiậ ế ả ừ ờ ết
7) Dialogue Management: Xử lý và định dạng kết qu ả
8) UI Module: Tr lả ời người dùng
+ Tương tự như vậy ở chức năng tìm vị trí ip hay xem các port đang chạy, người dùng cũng sẽ gửi đến yêu cầu và các Module s xẽ ử lý và gửi l i câu tr lạ ả ời cho người dùng
- Về thiết kế ngoài yêu cầu:
+ Gửi OTP: Trường hợp người dùng đăng ký tài khoản có email quên m t khậ ẩu thì sẽ gửi m t mã OTP nhộ ằm đổ ại l i m t khậ ẩu.
+ Chức năng thêm, sửa và xóa người dùng:
2 Giao diện CRUD người dùng
Mã nguồn
Môi trường phát triển
- Là phiên b n m i nh t cả ớ ấ ủa môi trường phát triển tích h p (IDE) NetBeans do ợ Apache Software Foundation phát triển và duy trì
- N i tiổ ếng với các tính năng mạnh mẽ h ỗtrợ lập trình Java, nhưng cũng cung cấp các công c phát triụ ển cho các ngôn ng lữ ập trình khác như PHP, JavaScript, HTML5, C/C++, và nhiều ngôn ngữ khác
- M t s ộ ố tính năng nổi b t: H ậ ỗtrợ đa ngôn ngữ, trình so n thạ ảo mã thông minh, công cụ gỡ lỗi, tích h p Git và các hợ ệ thống qu n lý phiên bả ản khác,…
- Apache NetBeans IDE 22 tiếp tục là một công cụ phổ biến cho người lập trình mạng nhằm đảm bảo hiệu suất và tính ổn định của ứng dụng.
- Là m t công cộ ụ tiện ích giúp qu n tr viên và nhà phát triả ị ển cơ sở dữ liệu d dàng ễ cấu hình và tối ưu hóa các cài đặt cho MySQL 8.4
- Giúp đơn giản hóa quá trình thiết lập và điều chỉnh các tham s cố ấu hình để MySQL hoạt động hiệu quả nhất trong môi trường cụ thể của người dùng
- M t sộ ố tính năng chính: giao diện thân thiện, hướng d n c u hình, hẫ ấ ỗ trợ đa nền tảng, theo dõi và giám sát hiệu suất,…
Cấu trúc mã nguồn
3.1 Tạo màn hình đăng nhập
8 3.2 Tạo màn hình đăng nhập
4.1 Tạo màn hình đăng ký
9 4.2 Tạo màn hình đăng ký
4.3 Tạo màn hình đăng ký
8 Hiện cửa sổ đăng nhập
9 Người dùng nh p tin ậ nhắn
11 Hiện tin nhắn người dùng
12.1 Hiện tin nh n cắ ủa Bot
15 12.2 Hiện tin nh n cắ ủa Bot
12.3 Hiện tin nh n cắ ủa Bot
13 Đợi tin nh n ch c a Bot ắ ờ ủ
14 X lý viử ệc gửi OTP
15.1 Tra cứu th i tiờ ết
15.2 Tra cứu th i tiờ ết
Quá trình cài đặt và triển khai
Các mã nguồn quan trọng và mô tả các điểm nổi bật
+ K t nế ối và đăng nhập:
⚫ Sử dụng socket để kết n i v i máy ch ố ớ ủ
⚫ Xử lý lu ng dồ ữ liệu đầu vào/đầu ra để gửi và nh n tin nhậ ắn văn bản.
⚫ Phân biệt và hiển th tin nh n cị ắ ủa người dùng và bot với định dạng khác nhau
⚫ Cung c p các chấ ức năng đăng nhập, đăng ký và đóng kết nối
⚫ Cho phép chuyển đổi giữa các chủ đề giao diện sáng và t ối.
⚫ Khi gửi yêu cầu có hiện dòng tin nhắn đợi bot đang xử lý
⚫ Gửi mã OTP qua mail
⚫ Sử dụng socket để tạo kết nối giữa server và client
⚫ Quản lý nhiều client đồng thời bằng cách s d ng lu ng (thread) ử ụ ồ
⚫ Xác thực người dùng b ng cách ki m tra ằ ể thông tin đăng nhập với cơ sở dữ liệu
⚫ Lưu trữ lịch s chat vào database ử
⚫ Thực hiện các tác vụ đa dạng d a trên yêu c u cự ầ ủa người dùng:
✓ Lấy thông tin th i tiờ ết
✓ Xác định vị trí IP
✓ Quét port kiểm tra các port đang mở
✓ Trò chuy n vệ ới người dùng b ng Simsimi API ằ
✓ Tìm kiếm t khóa trên Google ừ
⚫ Mã nguồn đượ ổ chức t c rõ ràng, dễ hiểu và d bảo trì.ễ
Đánh giá và kết luận
Kết quả thực hiện
Đánh giá hệ thống
- Về hiệu năng: vẫn có thể xài ChatBot được dù b t liên tiậ ếp nhiều client cùng 1 lúc
31 Xài cùng lúc nhiều client
Kết luận
- D án "Xây dự ựng chương trình AI Chatbot" đã hoàn thành với thành công và đáp ứng được các mục tiêu ban đầu đã đề ra Chương trình được phát tri n trên nể ền tảng Apache NetBeans IDE, s d ng ngôn ngử ụ ữ lập trình Java và các công ngh liên quan ệ Dưới đây là những điểm chính c a d án: ủ ự
+ M c tiêu và t m quan tr ng: ch n lụ ầ ọ ọ ựa để nghiên c u và phát triứ ển một chương trình
AI Chatbot nhằm giúp người dùng tương tác và nhận thông tin m t cách hiộ ệu quả thông qua công ngh AI ệ
+ M c tiêu nghiên cụ ứu: Xác định và phân tích nhu c u cầ ủa người dùng để xây dựng một Chatbot có khả năng phản h i tồ ự động và linh hoạt
+ Ph m vi nghiên cạ ứu: T p trung vào các chậ ức năng chính như tra cứu th i tiờ ết, xác định v trí IP, và quét port ị
+ Môi trường phát tri n ph n m m: S d ng Apache Netbeans IDE 22 và ể ầ ề ử ụ MySQL 8.4 Configurator một cách hiệu quả để xây dựng nên một chương trình ChatBot đúng như đề tài yêu cầu
- Tóm lại: Dự án đã đạt được nh ng kữ ết quả đáng kể, cung c p m t giấ ộ ải pháp Chatbot đáp ứng được nhu cầu thực tế và đem lại giá tr ị cho người dùng, những thành quả này là kết qu cả ủa sự n lỗ ực nghiên cứu, phát triển và ki m thể ử chặt chẽ t ừ đầu đến cuối quá trình.
Hạn chế và hướng phát triển
- H n chạ ế: Bị giớ ại h n trong m t s ộ ốchủ đề c ụthể và không đáp ứng được t t c nhu ấ ả cầu của người s dử ụng cũng như không hiểu được cảm xúc, b i cố ảnh của người dùng dẫn đến các ph n h i không phù hả ồ ợp
- Hướng phát triển: M r ng thêm nhiở ộ ều dịch v và chụ ức năng khác, việc xây d ng ự và triển khai chương trình ChatBot mang lại nhiều l i ích thiợ ết th c cho viự ệc kết nối và giao tiếp với người dùng Đề tài này không ch giúp c i thiỉ ả ện hiệu suất và độ tin c y cậ ủa ChatBot mà còn tăng cường khả năng phả ứng nhanh chóng trướn c những nhu cầu mà người dùng cần, đảm b o hoả ạt động liên t c và hiụ ệu qu ả
Thành viên Phân công Đánh giá
⚫ Xác định vị trí IP
⚫ Gửi tin nhắn, xóa lịch sử chat
⚫ 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
⚫ Đánh giá và kết luận
Bảng 1 Phân công công vi c ệ