# Tại sao LLM không được gọi? ## Vấn đề Chatbot đã trả lời được, nhưng response là **template-based** (không phải từ LLM API). ## Nguyên nhân ### 1. Không có documents được tìm thấy - Response cho thấy: `"count": 0`, `"results": []` - Database chưa có tables hoặc chưa có dữ liệu ### 2. LLM chỉ được gọi khi CÓ documents Trong `rag.py`: ```python # Try LLM generation first if enabled and documents are available if use_llm and documents: # ← Cần có documents llm = get_llm_generator() if llm: llm_answer = llm.generate_answer(...) ``` **Logic:** - Nếu **KHÔNG có documents** → Trả về template message ngay lập tức - Nếu **CÓ documents** → Gọi LLM để generate answer ## Giải pháp ### 1. Chạy migrations để tạo tables ```bash cd backend && source venv/bin/activate && cd hue_portal python3 manage.py makemigrations python3 manage.py migrate ``` ### 2. Import/Ingest dữ liệu vào database - Cần có dữ liệu về fines, procedures, legal sections, etc. - Sau khi có dữ liệu, search sẽ tìm thấy documents - Khi có documents, LLM sẽ được gọi ### 3. Test với câu hỏi có documents - Nếu database đã có dữ liệu, test với câu hỏi chắc chắn có trong DB - Ví dụ: "Mức phạt vượt đèn đỏ" (nếu có dữ liệu về fines) ## Flow hoạt động 1. **User gửi câu hỏi** → `chatbot/views.py` 2. **Intent classification** → Xác định loại câu hỏi 3. **RAG pipeline** → Tìm documents trong database - Nếu **KHÔNG có documents** → Trả về template message - Nếu **CÓ documents** → Gọi LLM để generate answer 4. **LLM generation** (chỉ khi có documents): - `get_llm_generator()` → Lấy LLM instance - `llm.generate_answer(query, documents=documents)` → Generate - Với API mode: Gọi HF Spaces API với prompt (có documents) 5. **Response** → Trả về cho user ## Để test API mode 1. **Đảm bảo database có dữ liệu** 2. **Gửi câu hỏi có documents** (ví dụ: "Mức phạt vượt đèn đỏ") 3. **Xem server logs** để thấy: - `[RAG] Using LLM provider: api` - `[LLM] 🔗 Calling API: ...` - `[LLM] 📥 Response status: 200` ## Lưu ý - **API mode đã được cấu hình đúng** (`LLM_PROVIDER=api`) - **Code đã sửa để gửi prompt (có documents)** thay vì chỉ query - **Vấn đề hiện tại:** Database chưa có dữ liệu → Không có documents → LLM không được gọi