{
    "title": "Cache & Rate Limiting",
    "description": "Chi tiết về cơ chế bảo vệ hệ thống khỏi spam và tối ưu chi phí LLM thông qua lớp Cache/Rate Limit.",
    "diagram": "diagrams/auth-routing.svg",
    "sections": [
        {
            "title": "Cơ chế Rate Limit",
            "type": "text",
            "content": "Hệ thống sử dụng middleware <code>CanifaAuthMiddleware</code> để kiểm soát số lượng request từ mỗi user/device. Giới hạn mặc định là 60 request/phút cho các API chat để tránh việc spam gây tốn kém token."
        },
        {
            "title": "LLM Semantic Cache",
            "type": "text",
            "content": "Đối với các câu hỏi phổ biến, hệ thống sử dụng <b>Redis</b> để cache kết quả trả về từ LLM. Nếu một câu hỏi tương tự xuất hiện, Agent sẽ trả về kết quả từ cache thay vì gọi lại OpenAI/Anthropic, giúp giảm latency xuống < 100ms và tiết kiệm chi phí."
        },
        {
            "title": "API Cache & Limit",
            "type": "api",
            "endpoints": [
                { "method": "GET", "path": "/api/cache/stats", "description": "Xem tỷ lệ Hit/Miss của hệ thống cache." },
                { "method": "POST", "path": "/api/cache/clear", "description": "Xóa toàn bộ cache LLM (dùng khi cập nhật prompt mới)." },
                { "method": "GET", "path": "/api/limit/status", "description": "Kiểm tra trạng thái quota còn lại của user hiện tại." }
            ]
        }
    ]
}
