Bối cảnh và vấn đề nghiên cứu
Sự phát triển của công nghệ thông tin đã đưa các nền tảng mạng xã hội trở thành phương tiện kết nối, giao tiếp và chia sẻ thông tin thiết yếu trong đời sống thường nhật. Đi cùng với sự tăng trưởng của ngành công nghiệp điện ảnh, nhu cầu thảo luận, trao đổi kiến thức, chia sẻ quan điểm phê bình và cập nhật tin tức phim ảnh của công chúng ngày càng gia tăng. Tuy nhiên, các nền tảng đánh giá hiện hành hoặc các diễn đàn chung thường bộc lộ những hạn chế về tính tương tác thời gian thực, thiếu tính chuyên biệt hoặc chất lượng kiểm duyệt nội dung chưa cao. Từ thực tế này, đề tài "Xây dựng forum đánh giá phim sử dụng công nghệ Spring Boot và NextJS" được thực hiện nhằm xây dựng một mạng xã hội chuyên đề có tên gọi MIF (Movie Inside Forum), tạo ra không gian trực tuyến chuyên biệt, tin cậy và lành mạnh cho cộng đồng yêu thích nghệ thuật thứ bảy.
Mục tiêu nghiên cứu và nhiệm vụ của đồ án bao gồm:
- Nghiên cứu lý thuyết và phương pháp ứng dụng các công nghệ hiện đại trong phát triển ứng dụng web: Next.js, Axios, Tailwind CSS, Spring Boot, Spring Security, JWT, Redis, RabbitMQ, Quartz Job Scheduling, WebSocket, Amazon S3, ZEGOCLOUD và MongoDB.
- Ứng dụng các công nghệ trí tuệ nhân tạo (AI): Tích hợp Spring AI (mô hình RAG, Tool Calling), AWS Comprehend và Omni-moderation-latest để phân tích cảm xúc, xây dựng trợ lý ảo và kiểm duyệt nội dung tự động.
- Phân tích yêu cầu, thiết kế kiến trúc hệ thống, mô hình hóa cơ sở dữ liệu và quy trình nghiệp vụ bằng hệ thống lược đồ UML (Usecase, Sequence diagram).
- Cài đặt hoàn chỉnh ứng dụng web bao gồm phía máy khách (Frontend) và giao diện lập trình ứng dụng phía máy chủ (Backend RESTful API).
- Thực hiện kiểm thử toàn bộ hệ thống về mặt chức năng, hiệu năng và tính ổn định.
Đối tượng và phạm vi nghiên cứu của đồ án được xác định rõ ràng:
- Đối tượng nghiên cứu: Nhu cầu tương tác trên mạng xã hội của khán giả đại chúng, nhà phê bình phim và nhân viên quản lý trong ngành điện ảnh; các chức năng cơ bản của một mạng xã hội (tạo nhóm, đăng bài viết, bình luận, tương tác reaction, nhắn tin, quản lý sự kiện); cấu trúc lưu trữ cơ sở dữ liệu NoSQL (MongoDB); kỹ thuật xây dựng RESTful API với Spring Boot và giao diện người dùng tối ưu hóa SEO với Next.js; các giải pháp xử lý bất đồng bộ, bộ nhớ đệm, truyền thông thời gian thực và trí tuệ nhân tạo.
- Phạm vi nghiên cứu:
- Quản lý người dùng: Đăng ký tài khoản (xác thực OTP qua email), đăng nhập, cấp phát token JWT, quên mật khẩu, cập nhật hồ sơ cá nhân và danh sách nội dung lưu trữ.
- Giao tiếp và tương tác xã hội: Nhắn tin trực tiếp, phòng chat trong nhóm, truyền phát trực tiếp sự kiện (livestream) và hệ thống thông báo thời gian thực.
- Quản lý nội dung phim ảnh: Đăng tải bài viết thảo luận trong nhóm, đánh giá chi tiết phim, upvote/downvote bình luận, quản trị thông tin phim, danh mục thể loại, diễn viên và đạo diễn.
- Không gian và thời gian: Đồ án tốt nghiệp kỹ sư ngành Công nghệ Thông tin, chuyên ngành Công nghệ Phần mềm tại Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh, thực hiện trong Học kỳ II năm học 2024–2025 (từ tháng 02/2025 đến tháng 06/2025).
Cơ sở lý thuyết và phương pháp
Đồ án xây dựng trên nền tảng kết hợp các công nghệ phần mềm phân tán và mô hình xử lý ngôn ngữ tự nhiên hiện đại, bao gồm:
- Công nghệ Frontend: Next.js (framework mã nguồn mở trên nền tảng React hỗ trợ Server-Side Rendering - SSR, Static Site Generation - SSG, Virtual DOM, Dynamic Routes), Axios (thư viện HTTP client dựa trên Promise hỗ trợ Interceptors), Tailwind CSS (framework CSS utility-first hỗ trợ thiết kế giao diện thích ứng responsive).
- Công nghệ Backend và Dịch vụ nền tảng: Spring Boot (nền tảng xây dựng RESTful API dựa trên Java với cơ chế Auto-Configuration, nhúng sẵn web server, Actuator), Spring Security kết hợp JWT (JSON Web Token) phục vụ xác thực và phân quyền, MapStruct (chuyển đổi DTO và entity), Spring Validation (kiểm tra tính hợp lệ của dữ liệu đầu vào).
- Lưu trữ và Truyền thông dữ liệu:
- MongoDB: Hệ quản trị cơ sở dữ liệu NoSQL hướng tài liệu (BSON/JSON format), schema-less, hỗ trợ phân mảnh dữ liệu (Sharding) và cơ chế nhân bản (Replica Set).
- Redis: Cơ sở dữ liệu In-memory key-value (RAM) với cơ chế lưu trữ bền vững RDB và AOF, đóng vai trò bộ nhớ đệm (caching) dữ liệu phim và bài viết, hỗ trợ cấu trúc dữ liệu string, list, set, hash, sorted set và cơ chế Pub/Sub.
- RabbitMQ: Message broker mã nguồn mở hỗ trợ giao thức AMQP, định tuyến tin nhắn thông qua các loại Exchange (Direct, Default, Fanout, Topic, Header) tới các Queue phục vụ xử lý tác vụ bất đồng bộ.
- Quartz Job Scheduling: Khung lập lịch tác vụ chuyên sâu trong môi trường Java sử dụng Scheduler, Job, JobDetail, SimpleTrigger và CronTrigger.
- WebSocket: Giao thức truyền thông song công toàn phần (full-duplex) trên một kết nối TCP duy nhất thông qua cơ chế HTTP Upgrade, phục vụ các tính năng tương tác thời gian thực.
- Amazon S3 (Simple Storage Service): Dịch vụ lưu trữ đối tượng đám mây của AWS với mô hình Bucket/Object, hỗ trợ mã hóa dữ liệu Server-Side Encryption (SSE) và phân lớp lưu trữ (Standard, IA, Glacier).
- ZEGOCLOUD: Nền tảng cung cấp dịch vụ Live Streaming SDK và Live Streaming Kit tích hợp tính năng phát video trực tiếp, xác thực người dùng qua token, hỗ trợ livestream đa người dẫn (multi-host).
- Trí tuệ nhân tạo và Xử lý ngôn ngữ tự nhiên:
- Spring AI: Tích hợp kỹ thuật Retrieval-Augmented Generation (RAG) kết hợp lưu trữ vector trên MongoDB Atlas ($vectorSearch dựa trên HNSW), sử dụng các Advisors (QuestionAnswerAdvisor, RetrievalAugmentationAdvisor), các module chuyển đổi và mở rộng truy vấn (CompressionQueryTransformer, RewriteQueryTransformer, MultiQueryExpander), kết hợp cơ chế Tool Calling qua annotation
@Tool và callback chương trình.
- AWS Comprehend: Dịch vụ NLP đám mây sử dụng kiến trúc Deep Learning, trích xuất điểm tin cậy (confidence score từ 0 đến 1) trong phân tích cảm xúc (sentiment analysis) các bài đánh giá phim, cung cấp các chế độ xử lý đồng bộ và bất đồng bộ (batch job).
- Omni-moderation-latest: Mô hình kiểm duyệt nội dung đa phương thức từ OpenAI dựa trên GPT-4o, đánh giá điểm xác suất (probability score từ 0 đến 1) trên 13 danh mục vi phạm đối với văn bản và 6 danh mục đối với hình ảnh, hỗ trợ hơn 40 ngôn ngữ.
Phương pháp nghiên cứu thực tế được triển khai theo quy trình kỹ thuật phần mềm:
- Khảo sát hiện trạng: Phân tích đối sánh các nền tảng tương tự hiện có gồm IMDb, Voz và Reddit để xác định điểm mạnh và khoảng trống chức năng cần hoàn thiện.
- Phân tích và mô hình hóa: Đặc tả chi tiết các yêu cầu chức năng và phi chức năng; xây dựng hệ thống lược đồ Usecase và 34 lược đồ tuần tự (Sequence Diagram) mô tả luồng dữ liệu hệ thống.
- Thiết kế kiến trúc và dữ liệu: Thiết kế mô hình cơ sở dữ liệu NoSQL gồm 15 bộ sưu tập (collection) dữ liệu; chuẩn hóa luồng gọi API và tích hợp pipeline AI.
- Cài đặt và kiểm thử: Phát triển giao diện người dùng, lập trình backend, kiểm thử chức năng từng ca sử dụng và kiểm tra độ ổn định của hệ thống.
Thiết kế và triển khai
Hệ thống MIF được thiết kế theo kiến trúc phân tầng rõ ràng, tách biệt giữa tầng hiển thị máy khách (Client-side), tầng cung cấp dịch vụ giao diện lập trình ứng dụng (RESTful API Web Service), tầng điều phối hàng đợi và lập lịch (RabbitMQ, Quartz), tầng bộ nhớ đệm (Redis) và tầng lưu trữ dữ liệu (MongoDB, Amazon S3).
| Thành phần kiến trúc |
Công nghệ sử dụng |
Chức năng kỹ thuật chính |
| Giao diện người dùng |
Next.js, Tailwind CSS, Axios |
Hiển thị giao diện, tối ưu hóa SEO với SSR/SSG, xử lý Virtual DOM, gửi yêu cầu HTTP. |
| Tầng dịch vụ Backend |
Spring Boot, Spring Security |
Xử lý logic nghiệp vụ, bảo vệ tài nguyên API thông qua xác thực phân quyền JWT. |
| Hàng đợi thông điệp |
RabbitMQ (AMQP) |
Tiếp nhận payload tin nhắn, định tuyến qua exchange và queue cho các tác vụ bất đồng bộ. |
| Lập lịch tác vụ |
Quartz Job Scheduling |
Thiết lập Trigger và biểu thức Cron để thực thi các tác vụ định kỳ dưới máy chủ. |
| Truyền thông thời gian thực |
WebSocket, ZEGOCLOUD |
Hỗ trợ chat nhóm, đẩy thông báo tức thì, phát sóng livestream sự kiện có xác thực token. |
| Bộ nhớ đệm & Phiên |
Redis |
Caching dữ liệu thông tin phim, bài viết, giảm tải truy vấn cho cơ sở dữ liệu chính. |
| Cơ sở dữ liệu chính & Vector |
MongoDB, MongoDB Atlas |
Lưu trữ tài liệu NoSQL linh hoạt, cung cấp Vector Search Index (HNSW) phục vụ RAG. |
| Lưu trữ tập tin tĩnh |
Amazon S3 |
Lưu trữ hình ảnh bài viết, áp phích phim, ảnh đại diện người dùng dưới dạng bucket/object. |
| Kiểm duyệt & Cảm xúc AI |
Omni-moderation, AWS Comprehend |
Kiểm duyệt nội dung tự động đa danh mục, tính điểm cảm xúc của đánh giá phim. |
| Trợ lý ảo thông minh |
Spring AI, Discord Bot |
Tích hợp Chatbot AI hỏi đáp phim/bài viết bằng RAG, cung cấp trợ lý ảo qua Discord. |
Cơ sở dữ liệu của hệ thống được tổ chức thành 15 bảng/tập tài liệu (collection) chuyên biệt:
user: Quản lý thông tin tài khoản, thông tin cá nhân và quyền hạn người dùng.
Movie: Lưu trữ chi tiết thông tin các bộ phim, danh mục, thời lượng, mô tả.
actors: Lưu thông tin lý lịch, tiểu sử và hình ảnh của diễn viên.
directors: Lưu trữ thông tin tiểu sử và danh sách tác phẩm của đạo diễn.
movie_categories: Định nghĩa các thể loại phim phục vụ phân loại và tìm kiếm.
groups: Quản lý danh sách các hội nhóm cộng đồng thảo luận phim.
group_posts: Chứa nội dung bài viết đăng tải trong từng nhóm.
comments: Lưu trữ bình luận của các thành viên đối với bài viết.
group_post_ratings: Ghi nhận dữ liệu đánh giá và chấm điểm phim của người dùng.
save_movie: Quản lý danh sách các bộ phim được người dùng lưu lại.
saved_posts: Quản lý danh sách các bài thảo luận được người dùng đánh dấu lưu.
favorite_actors: Lưu trữ danh sách diễn viên yêu thích của từng người dùng.
events: Quản lý các sự kiện do nhóm tổ chức hoặc ban quản trị khởi tạo.
notifications: Lưu trữ dữ liệu thông báo gửi đến người dùng theo thời gian thực.
chatbot_history: Ghi nhận lịch sử tương tác và hội thoại giữa người dùng và chatbot AI.
Tích hợp AI được triển khai qua các điểm kết nối:
- Pipeline RAG trong Spring AI kết nối cơ sở dữ liệu Vector Store MongoDB Atlas, sử dụng thuật toán KNN với ngưỡng tương đồng (similarity threshold) mặc định 0.8 để truy xuất dữ liệu tài liệu liên quan, cung cấp ngữ cảnh chính xác cho mô hình ngôn ngữ lớn khi người dùng tra cứu dữ liệu phim ảnh hoặc sự kiện.
- AWS Comprehend nhận chuỗi văn bản đánh giá từ API, trả về kết quả điểm số tin cậy cho từng nhãn cảm xúc (Positive, Negative, Neutral, Mixed).
- Omni-moderation-latest tiếp nhận văn bản và hình ảnh của bài viết gửi lên, trả về mảng điểm xác suất để hệ thống so khớp ngưỡng và tự động chặn các nội dung vi phạm chính sách.
Nội dung chính theo từng chương
Chương 1: Cơ sở lý thuyết
Chương 1 trình bày tổng quan và chi tiết các công nghệ được áp dụng trong toàn bộ đồ án:
- Frontend: Phân tích kiến trúc Next.js (SSR, SSG, Virtual DOM, JSX, Automatic Routing và Dynamic Routes), ưu nhược điểm của framework; đặc điểm utility-first của Tailwind CSS; cấu trúc xử lý HTTP client của thư viện Axios.
- Hạ tầng lưu trữ và trung gian: Cơ chế vận hành bộ nhớ RAM và hai phương pháp lưu trữ dữ liệu bền vững (RDB và AOF) của Redis; mô hình message broker AMQP của RabbitMQ với các quy tắc định tuyến Exchange (Direct, Fanout, Topic, Header); kiến trúc lập lịch tác vụ Quartz với Scheduler, Job, Trigger (SimpleTrigger, CronTrigger) và JobDataMap; nguyên lý kết nối song công hai chiều của giao thức WebSocket; dịch vụ lưu trữ đối tượng đám mây Amazon S3 với cấu trúc dữ liệu Data, Metadata, Key, cùng các cơ chế bảo mật khóa IAM và mã hóa SSE.
- Backend: Các đặc tính cốt lõi của Spring Boot bao gồm cơ chế Auto-Configuration, quản lý gói phụ thuộc Spring Boot Starters, tích hợp web server độc lập và giám sát hệ thống qua Spring Boot Actuator; dịch vụ phát trực tiếp ZEGOCLOUD Live Streaming với quy trình xác thực token.
- Cơ sở dữ liệu và Trí tuệ nhân tạo: Khái niệm và nguyên lý hoạt động của MongoDB (NoSQL schema-less, BSON, chỉ mục Indexing, Replica Set, Sharding); kiến trúc Spring AI bao gồm cơ chế RAG, Tool Calling qua annotation
@Tool, Vector Store MongoDB Atlas ($vectorSearch theo giải thuật HNSW); dịch vụ AWS Comprehend phân tích cảm xúc văn bản với điểm tin cậy; mô hình kiểm duyệt đa phương tiện Omni-moderation-latest từ OpenAI với các thước đo Precision, Recall, F1 Score và False Positive Rate.
Chương 2: Khảo sát thực trạng và xác định yêu cầu
Chương 2 tập trung vào việc nghiên cứu hiện trạng, phân tích yêu cầu kỹ thuật và mô hình hóa nghiệp vụ:
- Khảo sát thực trạng: Khảo sát chi tiết 3 ứng dụng tương tự gồm IMDb (thế mạnh về hệ thống đánh giá và điểm số chuẩn mực nhưng thiếu tương tác mạng xã hội chuyên sâu, giao diện phức tạp), Voz (tính cộng đồng cao, chủ đề phong phú nhưng chất lượng bài viết suy giảm, nhiều tranh cãi) và Reddit (cộng đồng subreddit chuyên sâu, cơ chế upvote/downvote nhưng khó kiểm duyệt nội dung độc hại, dễ gây quá tải thông tin).
- Yêu cầu hệ thống: Đặt ra yêu cầu tối ưu hiệu suất server và thiết kế giao diện thân thiện.
- Yêu cầu chức năng người dùng: Đăng ký tài khoản có xác thực OTP qua email; đăng nhập; quản lý hồ sơ cá nhân (avatar, bài viết đã đăng/đã lưu, phim đã lưu, diễn viên yêu thích, sự kiện); tương tác với phim (đánh giá chi tiết, bình luận); tương tác nhóm (tạo nhóm, tham gia, chỉnh sửa, quản lý thành viên); tương tác bài viết (đăng bài, sửa, xóa, upvote, downvote, lưu); theo dõi thông tin diễn viên; tạo và tham gia sự kiện (livestream sự kiện); nhắn tin trò chuyện nhóm; hệ thống thông báo thời gian thực; trợ lý ảo Chatbot AI (tra cứu phim, bài viết, sự kiện nổi bật).
- Yêu cầu chức năng quản trị viên: Xem biểu đồ thống kê số liệu, xuất báo cáo định dạng Excel và CSV; quản lý người dùng (tìm kiếm, khóa/mở khóa tài khoản); kiểm duyệt và xóa bài viết vi phạm; quản lý và giám sát hoạt động của các nhóm; quản lý thông tin phim; quản lý danh mục và hồ sơ diễn viên.
- Yêu cầu phi chức năng: Hệ thống phải có khả năng xử lý ít nhất 1000 yêu cầu đồng thời mà không bị giảm hiệu suất; toàn bộ mật khẩu và thông tin cá nhân nhạy cảm phải được mã hóa khi lưu trữ và truyền tải; hỗ trợ khả năng mở rộng kiến trúc và dễ dàng tích hợp các dịch vụ bên thứ ba.
- Mô hình hóa yêu cầu: Danh mục 29 ca sử dụng (use case) hoàn chỉnh kèm đặc tả chi tiết, cùng các lược đồ use case phân quyền cho Guest, User, Content Creator và Admin.
Chương 3: Phân tích thiết kế hệ thống
Chương 3 triển khai chi tiết các thành phần thiết kế kỹ thuật của hệ thống MIF:
- Thiết kế cơ sở dữ liệu: Đặc tả chi tiết cấu trúc trường, kiểu dữ liệu và mối quan hệ của 15 bảng tài liệu NoSQL MongoDB (
save_movie, events, notifications, user, Movie, group_post_ratings, directors, favorite_actors, group_posts, actors, comments, saved_posts, groups, movie_categories, chatbot_history).
- Lược đồ tuần tự (Sequence Diagram): Xây dựng 34 lược đồ tuần tự chi tiết biểu diễn luồng tương tác giữa Actor, Giao diện Next.js, API Gateway/Backend Controller, Service, Repository, Database và các dịch vụ AI bên ngoài:
- Đăng ký tài khoản (xử lý OTP qua email)
- Đăng nhập hệ thống (cấp phát token JWT)
- Tham gia nhóm
- Tạo nhóm mới
- Tạo bài viết trong nhóm
- Quản lý lời mời tham gia nhóm (phần 1)
- Quản lý lời mời tham gia nhóm (phần 2)
- Quản lý thành viên trong nhóm (phần 1)
- Quản lý thành viên trong nhóm (phần 2)
- Quản lý thành viên trong nhóm (phần 3)
- Xem chi tiết thông tin phim
- Lưu phim vào danh sách cá nhân
- Đánh giá và chấm điểm phim
- Xem thông tin chi tiết diễn viên
- Đánh dấu yêu thích diễn viên
- Xem chi tiết bài viết
- Xem thông báo hệ thống
- Tương tác Reaction bài viết (tích cực/tiêu cực)
- Bình luận bài viết
- Lưu bài viết
- Xem các sự kiện đã đăng ký tham gia
- Đăng ký tham gia sự kiện
- Xem danh sách sự kiện trong nhóm
- Reaction tương tác bình luận (Upvote/Downvote)
- Nhắn tin trò chuyện trong nhóm
- Xem trang tổng hợp và phân tích hệ thống
- Xem huy hiệu người dùng
- Phân tích cảm xúc của đánh giá phim (tích hợp AWS Comprehend)
- Tương tác với trợ lý ảo Chatbot AI (tích hợp Spring AI)
- Quản lý và xử lý báo cáo vi phạm (report) bài viết
- Tương tác trợ lý ảo thông qua Discord
- Thiết kế giao diện: Mô tả chi tiết cấu trúc thành phần, biểu mẫu nhập liệu và bản vẽ wireframe của 21 trang/khung nhìn giao diện người dùng (Trang đăng nhập, đăng ký, thanh header, trang phim, trang chủ, trang diễn viên, trang danh sách nhóm, form tạo nhóm, chi tiết nhóm với các tab Bảng tin, Quy tắc, Thông tin, Thành viên, Event; form tạo bài viết, form tạo event; trang cá nhân với các tab Bài viết của tôi, Thông tin, Phim đã lưu, Diễn viên yêu thích, Sự kiện; trang chi tiết phim).
Chương 4: Cài đặt và kiểm thử
Chương 4 mô tả quá trình hiện thực hóa giải pháp phần mềm và đánh giá chất lượng:
- Cài đặt ứng dụng: Triển khai mã nguồn máy khách bằng Next.js, cấu hình styling với Tailwind CSS, tích hợp Axios để điều phối các lệnh gọi API backend; cài đặt ứng dụng máy chủ Spring Boot, cấu hình Spring Security và JWT Filter; thiết lập kết nối cụm lưu trữ MongoDB Atlas; cài đặt cấu hình hàng đợi RabbitMQ, lập lịch tác vụ Quartz và bộ nhớ đệm Redis; cấu hình endpoint WebSocket và tích hợp dịch vụ livestream ZEGOCLOUD; tích hợp pipeline RAG, Tool Calling qua Spring AI, kết nối các API kiểm duyệt Omni-moderation-latest và phân tích cảm xúc AWS Comprehend; phát triển bot hỗ trợ trên nền tảng Discord.
- Kiểm thử ứng dụng: Thực hiện các ca kiểm thử chức năng bám sát danh mục use case đã thiết kế; rà soát lỗi giao diện và luồng dữ liệu; kiểm thử khả năng đáp ứng đồng thời theo yêu cầu phi chức năng (mục tiêu 1000 yêu cầu đồng thời); đánh giá tính ổn định của các dịch vụ bên ngoài trước khi đóng gói sản phẩm.
Kết quả và đóng góp
Đồ án đã hoàn thành toàn diện các mục tiêu nghiên cứu và phát triển phần mềm đề ra với các kết quả cụ thể:
- Xây dựng hoàn chỉnh mạng xã hội đánh giá phim MIF (Movie Inside Forum) với kiến trúc phân tầng hiện đại, đáp ứng đầy đủ các chức năng nghiệp vụ của người dùng thông thường và ban quản trị hệ thống.
- Thiết kế hệ thống cơ sở dữ liệu NoSQL tối ưu gồm 15 bộ sưu tập trên MongoDB, mô hình hóa chi tiết nghiệp vụ thông qua 29 use case và 34 lược đồ tuần tự.
- Triển khai thành công các dịch vụ hạ tầng kỹ thuật tiên tiến: xử lý bộ nhớ đệm với Redis, giải quyết các tác vụ bất đồng bộ thông qua hàng đợi RabbitMQ, tự động hóa tiến trình nền với Quartz Scheduler, và cung cấp tính năng chat/livestream thời gian thực với WebSocket và ZEGOCLOUD.
- Ứng dụng thành công các giải pháp trí tuệ nhân tạo hiện đại vào hệ thống thực tế: xây dựng Chatbot AI tra cứu thông tin theo kiến trúc RAG kết hợp Vector Store MongoDB Atlas, tự động hóa quy trình kiểm duyệt văn bản và hình ảnh thông qua mô hình đa phương thức Omni-moderation-latest, và tự động phân loại cảm xúc đánh giá phim dựa trên dịch vụ AWS Comprehend.
Đóng góp chính của đề tài so với các nghiên cứu và diễn đàn hiện hành bao gồm việc kết hợp mô hình mạng xã hội tương tác cao với hệ thống đánh giá phim chuyên sâu, khắc phục hạn chế thiếu gắn kết cộng đồng của các trang thông tin phim truyền thống như IMDb, đồng thời khắc phục vấn đề nhiễu loạn nội dung và khó kiểm duyệt của các diễn đàn tự do như Voz hay Reddit nhờ cơ chế kiểm duyệt tự động bằng AI.
Hạn chế và hướng nghiên cứu tiếp
Theo các phân tích kỹ thuật được đề cập trong tài liệu, đề tài còn tồn tại một số hạn chế nhất định:
- Các mô hình AI sử dụng như AWS Comprehend và Omni-moderation-latest vận hành dưới dạng "hộp đen" (black-box), không công khai chi tiết cấu trúc mô hình bên trong, gây khó khăn cho việc tinh chỉnh sâu; đồng thời chi phí vận hành dịch vụ có thể gia tăng khi khối lượng dữ liệu xử lý mở rộng.
- Mô hình Omni-moderation-latest có tỷ lệ dự đoán dương tính giả nhất định, đòi hỏi phải duy trì quy trình kiểm tra thủ công của quản trị viên đối với các trường hợp tranh chấp phức tạp.
- Cơ sở dữ liệu MongoDB có yêu cầu cao về dung lượng bộ nhớ RAM, giới hạn kích thước tài liệu đơn ở mức 16MB và giới hạn độ sâu lồng dữ liệu không quá 100 cấp độ.
- Tính năng Tool Calling trong Spring AI dựa trên phương thức còn hạn chế, chưa hỗ trợ trực tiếp các kiểu dữ liệu không bắt buộc (Optional), các cơ chế xử lý bất đồng bộ (CompletableFuture, Future) hoặc lập trình phản ứng (Reactive - Mono, Flux).
Hướng phát triển tiếp theo được nhóm tác giả xác định:
- Tiếp thu các ý kiến đóng góp từ giảng viên hướng dẫn và hội đồng đánh giá để hoàn thiện và triển khai những tính năng nâng cao còn dang dở.
- Tối ưu hóa hiệu năng và khả năng bảo mật của hệ thống để tiến tới bước phát hành và ứng dụng thực tế trong đời sống, phục vụ cộng đồng người yêu điện ảnh.
Giá trị tham khảo
Báo cáo khóa luận là tài liệu tham khảo hữu ích cho sinh viên, giảng viên và các kỹ sư phần mềm thuộc ngành Công nghệ Thông tin, Khoa học Máy tính và Kỹ thuật Phần mềm. Cụ thể:
- Tham khảo về kiến trúc ứng dụng Fullstack: Cung cấp giải pháp mẫu mực trong việc kết hợp Next.js (SSR/SSG) ở phía máy khách với Spring Boot ở phía máy chủ, đảm bảo tối ưu hóa trải nghiệm người dùng và chuẩn hóa API RESTful.
- Tham khảo về thiết kế hệ thống NoSQL và thông điệp phân tán: Hệ thống 15 cấu trúc dữ liệu MongoDB và quy trình tích hợp Redis, RabbitMQ, Quartz mang lại tư liệu thực tế cho việc thiết kế các hệ thống chịu tải cao.
- Tham khảo về tích hợp AI thế hệ mới: Phần tài liệu phân tích và cấu hình RAG trên Spring AI kết hợp Vector Search MongoDB Atlas, cùng kỹ thuật tích hợp AWS Comprehend và Omni-moderation-latest, là nguồn tài liệu giá trị cho các đồ án có định hướng ứng dụng trí tuệ nhân tạo vào sản phẩm web.
Câu hỏi thường gặp
1. Hệ thống MIF áp dụng giải pháp công nghệ nào để thực hiện kiểm duyệt nội dung tự động và phân loại cảm xúc đánh giá?
Hệ thống tích hợp mô hình Omni-moderation-latest (dựa trên GPT-4o từ OpenAI) để kiểm duyệt văn bản và hình ảnh thông qua điểm xác suất trên 13 danh mục vi phạm nội dung; đồng thời sử dụng dịch vụ AWS Comprehend để phân tích văn bản đánh giá phim và trả về điểm tin cậy (confidence score từ 0 đến 1) cho các trạng thái cảm xúc.
2. Đồ án xử lý vấn đề hiệu năng và tính bất đồng bộ của máy chủ bằng các công cụ nào?
Hệ thống sử dụng Redis làm bộ nhớ đệm (caching) trên RAM để lưu trữ tạm các thông tin thường xuyên truy cập (thông tin phim, bài viết), dùng RabbitMQ (giao thức AMQP) làm message broker để điều phối và định tuyến các tác vụ xử lý bất đồng bộ cần đảm bảo thứ tự, và sử dụng Quartz Job Scheduling để quản lý các tác vụ lặp lịch định kỳ dưới máy chủ.
3. Yêu cầu phi chức năng về hiệu suất xử lý đồng thời của hệ thống MIF được đặt ra ở mức nào?
Theo đặc tả yêu cầu phi chức năng trong Chương 2, hệ thống phải đáp ứng khả năng xử lý ít nhất 1000 yêu cầu đồng thời mà không bị suy giảm hiệu suất hoạt động.
4. Mô hình RAG (Retrieval-Augmented Generation) được thiết lập như thế nào trong hệ thống Chatbot AI của đề tài?
Spring AI kết nối với cơ sở dữ liệu vector MongoDB Atlas (sử dụng chỉ mục tìm kiếm vector $vectorSearch theo cấu trúc HNSW). Hệ thống sử dụng các Advisors như QuestionAnswerAdvisor với ngưỡng tương đồng mặc định 0.8 và số lượng kết quả lấy ra là top 6 để truy xuất dữ liệu ngữ cảnh liên quan, phục vụ việc sinh câu trả lời chính xác cho người dùng.
5. Cơ chế truyền thông thời gian thực phục vụ tính năng chat nhóm và livestream được hiện thực bằng cách nào?
Tính năng nhắn tin và cập nhật thông báo thời gian thực được xây dựng dựa trên giao thức WebSocket với kết nối hai chiều liên tục (full-duplex) trên cổng TCP tiêu chuẩn. Tính năng phát trực tiếp sự kiện (livestream) được triển khai qua SDK và Live Streaming Kit của nền tảng ZEGOCLOUD, có cơ chế xác thực người dùng bằng token bảo mật từ máy chủ.
Kết luận
Khóa luận tốt nghiệp "Xây dựng forum đánh giá phim sử dụng công nghệ Spring Boot và NextJS" của sinh viên Nguyễn Chí Thanh và Đặng Công Tuấn đã xây dựng thành công nền tảng mạng xã hội chuyên biệt MIF (Movie Inside Forum) phục vụ cộng đồng yêu điện ảnh. Đồ án thể hiện sự hoàn chỉnh từ khâu khảo sát thực trạng, phân tích nghiệp vụ, mô hình hóa bằng 34 lược đồ tuần tự cho đến cài đặt thực nghiệm hệ thống phân tán sử dụng Spring Boot, Next.js, MongoDB, Redis, RabbitMQ và Quartz. Điểm nổi bật về mặt kỹ thuật của công trình là việc ứng dụng thành công các công nghệ trí tuệ nhân tạo hiện đại như Spring AI, AWS Comprehend và Omni-moderation-latest nhằm nâng cao khả năng tìm kiếm thông minh, phân tích dữ liệu đánh giá và tự động hóa kiểm duyệt nội dung.