# 🏗️ Kiến Trúc & Luồng Dữ Liệu (Data Flow)

## 🗺️ Sơ Đồ Quy Trình Nghiệp Vụ (SVG Architecture)

Sơ đồ dưới đây mô tả luồng dữ liệu khép kín từ lúc nhận phản hồi đến khi cập nhật tri thức mới cho Chatbot.

```mermaid
graph TD
    %% Khai báo Style chuyên nghiệp
    classDef userNode fill:#f9f9f9,stroke:#333,stroke-width:2px,color:#333;
    classDef systemNode fill:#e1f5fe,stroke:#01579b,stroke-width:1px,color:#01579b;
    classDef logicNode fill:#fff3e0,stroke:#e65100,stroke-width:1px,color:#e65100;
    classDef storageNode fill:#f3e5f5,stroke:#4a148c,stroke-width:1px,color:#4a148c;
    classDef decisionNode fill:#e8f5e9,stroke:#1b5e20,stroke-width:1px,color:#1b5e20;
    classDef alertNode fill:#ffebee,stroke:#c62828,stroke-width:1px,color:#c62828;

    %% Luồng dữ liệu
    User([Khách hàng gửi Feedback]) --> API_In[API: /autotrain/feedback]
    
    subgraph "Giai đoạn Tiếp nhận & Lưu trữ"
        API_In --> DB_Feed[(Database: feedbacks)]
    end

    subgraph "Giai đoạn Phân tích tự động (AI Pipeline)"
        DB_Feed --> AI_Gen[AI Logic: Phân tích & Đề xuất Rule]
        AI_Gen --> Val{Kiểm tra tính hợp lệ}
        Val -- Không đạt --> Reject_Auto[Đánh dấu Rejected]
        Val -- Đạt --> DB_Rule[(Database: generated_rules)]
    end

    subgraph "Giai đoạn Kiểm soát & Phê duyệt (Admin Control)"
        DB_Rule --> Admin_UI[Giao diện Admin Review]
        Admin_UI --> Decision{Admin Phê duyệt?}
        Decision -- Từ chối --> Reject_Manual[Mark Rejected]
        Decision -- Đồng ý --> Approved[Trạng thái: Approved]
    end

    subgraph "Giai đoạn Triển khai thực tế (Production)"
        Approved --> Backup[Sao lưu Config hiện tại]
        Backup --> Patch[Cập nhật fashion_rules.json]
        Patch --> DB_Deploy[(Database: deployments)]
        DB_Deploy --> Prod([Chatbot nhận tri thức mới])
    end

    %% Gán Style
    class User,Prod userNode;
    class API_In,AI_Gen systemNode;
    class Val,Decision logicNode;
    class DB_Feed,DB_Rule,DB_Deploy storageNode;
    class Admin_UI,Approved decisionNode;
    class Reject_Auto,Reject_Manual alertNode;
```

---

## 🔍 Chi Tiết Luồng Nghiệp Vụ

### 1. Tiếp Nhận (Ingestion)
Dữ liệu feedback không chỉ là văn bản thuần túy mà bao gồm cả **ngữ cảnh (Context)**: Câu hỏi gốc của khách hàng và câu trả lời lỗi của AI.

### 2. Phân Tích (Analysis)
AI Engine sẽ so khớp phản hồi với các mẫu lỗi (Patterns) hoặc sử dụng LLM để hiểu ý định người dùng, sau đó chuyển hóa thành các chỉ dẫn (Prompts) cụ thể.

### 3. Phê Duyệt (Governance)
Hệ thống tuân thủ nguyên tắc **Human-in-the-loop**. Mọi thay đổi về cấu hình vận hành bắt buộc phải được Admin xác nhận để tránh lỗi logic dây chuyền.

### 4. Triển Khai (Deployment)
Cơ chế "Surgical Patching" đảm bảo chỉ cập nhật phần `auto_train_rules`, giữ nguyên tính toàn vẹn cho các quy tắc cốt lõi khác của hệ thống.
