Không gian học và RAG
Pipeline ingestion, vector retrieval, vòng đời nội dung học và các ranh giới runtime của RAG.
RAG trong Fidea có hai vai trò hợp lệ:
- Hỗ trợ soạn Question Bank ngoại tuyến.
- Sinh nội dung Study Workspace theo yêu cầu.
RAG không được dùng để chấm MCQ hoặc quyết định Agent 3.
1. Ingestion pipeline — luồng nạp dữ liệu
Baseline ingestion:
chunk_size = 800 ký tự
chunk_overlap = 150 ký tự
batch_size = 50Metadata gồm document ID, filename, page, chunk index, subject và subject đã chuẩn hóa bỏ dấu.
2. Vector retrieval — truy xuất vector
VectorStoreService dùng langchain-postgres và NVIDIA embeddings. Filter phẳng
được đổi sang toán tử PGVector:
{"subject": "DSA"}
→ {"subject": {"$eq": "DSA"}}Similarity search trả các đoạn gần nghĩa nhất. Connection string của SQLAlchemy
được đổi sang driver postgresql+psycopg:// khi dùng langchain-postgres.
3. Study content lifecycle
GET/POST study request
→ tạo cache ID từ student + subject + topic
→ cache hit: trả DB
→ cache miss: retrieve 8 chunks
→ format context
→ LLM sinh structured content
→ validate + normalize
→ lưu PostgreSQL
→ trả frontendOutput gồm:
- document pages;
- mind map branches/leaves;
- 10–15 flashcards theo prompt mục tiêu;
- 15–20 quiz questions theo prompt mục tiêu.
Các số lượng này hiện là yêu cầu prompt; code normalize không ép đủ số lượng nếu LLM trả ít hơn.
4. Cache identity
ID cache:
student_id:lower(subject):normalized_topic_prefixforce_regenerate=true bỏ qua cache, sinh mới rồi upsert cùng record.
5. No-context fallback
Nếu pgvector không trả chunk, generator hiện yêu cầu LLM tổng hợp từ kiến thức môn học chuẩn. Điều này giúp trải nghiệm tiếp tục nhưng không còn bảo đảm grounded hoàn toàn vào giáo trình.
UI/tài liệu nên phân biệt:
- Grounded content — nội dung có neo nguồn: có retrieved chunks.
- Fallback synthesis — tổng hợp dự phòng: không tìm thấy nguồn khóa học.
Không được đưa fallback synthesis vào Question Bank runtime grading.
6. Structured normalization
Generator kiểm tra từng:
- document page;
- mindmap branch/leaf;
- flashcard;
- quiz item.
Item sai schema bị bỏ. Nếu cả document hoặc mind map trống, code tạo nội dung tối
thiểu. Quiz option được đưa về bốn lựa chọn và correct_idx về miền 0–3.
7. API keys
Hai key độc lập:
NVIDIA_LLM_API_KEY
NVIDIA_EMBEDDING_API_KEYKhông fallback giữa hai key và không log secret hoặc database connection string.
8. Ranh giới với Agent 1 legacy
Study generator đang tái sử dụng retrieve_context từ node content_mapper.
Việc dùng retrieval cho Study Workspace là hợp lệ. Việc node legacy dùng retrieval
trong đường chấm triage cũ không phải kiến trúc Agent 2 hiện hành.
9. Thuật ngữ
- RAG — sinh có tăng cường truy xuất: tìm nguồn trước khi sinh nội dung.
- Embedding — biểu diễn vector: dãy số mô tả ý nghĩa văn bản.
- Chunk — đoạn dữ liệu: phần nhỏ của tài liệu dùng để tìm kiếm.
- Similarity search — tìm kiếm tương đồng: tìm vector gần truy vấn.
- Grounding — neo nguồn: buộc nội dung dựa trên tài liệu truy xuất.
- Cache hit/miss — trúng/trượt bộ nhớ đệm: đã có/chưa có nội dung lưu sẵn.
- Upsert — thêm hoặc cập nhật: ghi mới hoặc thay record cùng khóa.