# Hệ thống Feedback & Tự động tối ưu (Feedback Agent)

Hệ thống cho phép người dùng đánh giá (Like/Dislike) các câu trả lời của AI và lưu trữ để cải thiện chất lượng thông qua **Learning Loop**.

## 1. Luồng thu thập phản hồi (Background Processing)

Khi người dùng gửi phản hồi qua `/api/feedback`, quá trình được xử lý ngầm bằng `BackgroundTasks` trong FastAPI để không gây trễ cho giao diện người dùng.

```mermaid
sequenceDiagram
    participant U as User
    participant A as FastAPI (/api/feedback)
    participant B as BackgroundTasks
    participant L as Langfuse
    participant DB as Local DB
    
    U->>A: POST (trace_id, rating, comment, category)
    A->>B: add_task(_process_feedback_background)
    A-->>U: Trả về HTTP 200 (Success)
    
    B->>L: _push_langfuse_scores(trace_id, rating...)
    B->>DB: save_feedback()
    B->>L: async_flush_langfuse()
```

## 2. Learning Loop (Quy trình tự học của Agent)

Phòng ban **Learning Agent** chứa Logic tự động phân tích phản hồi xấu (bad feedbacks) để điều chỉnh hệ thống luật (Rules).

1. **Kéo dữ liệu:** `/api/feedback-agent/analyze` gọi `langfuse_puller.fetch_bad_feedbacks()` để lấy danh sách feedback tiêu cực từ Langfuse.
2. **Phân tích (LLM):** Hàm `run_optimization_logic` đọc cấu hình `fashion_rules.json` hiện tại, sau đó yêu cầu LLM phân tích các khiếu nại của user để thêm mới các luật cấm kỵ (VD: `negative_matches` - cấm gợi ý áo nỉ vào mùa hè).
3. **Đánh giá (Admin Review):** LLM sinh ra file JSON nháp (draft_json). Admin có thể so sánh bản nháp với bản gốc.
4. **Áp dụng:** Khi Admin xác nhận qua `/api/feedback-agent/apply`, file `fashion_rules.json` mới chính thức được ghi đè, hoàn tất chu trình học.
