Tổng quan
Hệ thống hỏi đáp dựa trên tài liệu, sử dụng RAG (Retrieval-Augmented Generation) và AI để trả lời câu hỏi từ nội dung tài liệu.
Kiến trúc hệ thống
- Backend: API REST với FastAPI, xử lý bất đồng bộ
- Frontend: SPA với React, giao tiếp với backend qua REST API
- Lưu trữ: MongoDB cho metadata, FAISS cho vector embeddings, file system cho tài liệu gốc
Các module chính
1. Xác thực và phân quyền
- Đăng ký/đăng nhập với JWT
- Phân quyền admin
- Bảo vệ route và endpoint
2. Quản lý tài liệu
- Upload PDF, DOCX, Markdown, TXT
- Parse và tách thành chunks
- Lưu metadata trong MongoDB
- Quản lý tài liệu theo user
3. Embedding và Vector Search
- Tạo embeddings bằng OpenAI hoặc Sentence Transformers
- Lưu vector trong FAISS index (mỗi tài liệu một index)
- Hỗ trợ batch processing
- Lưu metadata mapping trong MongoDB
4. RAG (Retrieval-Augmented Generation)
- Embed câu hỏi và tìm kiếm vector similarity
- Lấy top-k chunks liên quan
- Tạo câu trả lời bằng LLM (OpenAI/Gemini)
- Trả về câu trả lời kèm references
5. Lịch sử hỏi đáp
- Lưu lịch sử câu hỏi/trả lời
- Lọc theo tài liệu
- Xem và quản lý lịch sử
- Hiển thị references và similarity scores
6. Tạo Quiz tự động
- Tạo câu hỏi từ tài liệu bằng LLM
- Hỗ trợ nhiều loại câu hỏi
- Chế độ Practice và Test
- Hiển thị kết quả và giải thích
7. Tích hợp Google Calendar
- Kết nối tài khoản Google Calendar
- Tạo sự kiện từ quiz/test
- Quản lý lịch học
- Mã hóa credentials
8. Admin Dashboard
- Quản lý người dùng
- Xem thống kê hệ thống
- Quản lý tài liệu
- Theo dõi hoạt động
Luồng xử lý chính
Upload và xử lý tài liệu
- User upload → lưu file gốc
- Parse nội dung → tách chunks
- Tạo embeddings → lưu vào FAISS
- Cập nhật metadata trong MongoDB
Hỏi đáp với RAG
- User đặt câu hỏi
- Embed câu hỏi
- Tìm kiếm vector similarity trong FAISS
- Lấy top-k chunks liên quan
- Ghép context → gọi LLM
- Trả về câu trả lời + references
- Lưu vào lịch sử
Tính năng nổi bật
- Hỗ trợ nhiều định dạng tài liệu
- Embedding linh hoạt (OpenAI/local)
- LLM đa provider (OpenAI/Gemini)
- Tìm kiếm vector nhanh với FAISS
- Bảo mật JWT và phân quyền
- Giao diện responsive
- Tích hợp Google Calendar
- Tạo quiz tự động
Bảo mật
- Xác thực JWT
- Mã hóa mật khẩu với bcrypt
- Phân quyền admin
- CORS
- Mã hóa credentials Google Calendar
Hiệu năng
- Xử lý bất đồng bộ
- Batch processing cho embeddings
- FAISS cho tìm kiếm vector nhanh
- Tối ưu context length cho LLM
Dự án phù hợp cho ứng dụng học tập, nghiên cứu và quản lý tài liệu với AI.
