Fidea AI Docs

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ệ:

  1. Hỗ trợ soạn Question Bank ngoại tuyến.
  2. 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 = 50

Metadata 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ả frontend

Output 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_prefix

force_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_KEY

Khô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.