| import logging |
|
|
| logger = logging.getLogger("QueryAnalyzer") |
|
|
| class QueryAnalyzer: |
| """ |
| Phân tích câu hỏi để quyết định độ rộng tìm kiếm (Adaptive RAG). |
| Được tối ưu để chạy nhẹ trên Hugging Face. |
| """ |
| def analyze(self, query: str): |
| query_len = len(query.split()) |
| |
| |
| if query_len > 15: |
| return { |
| "complexity": "HIGH", |
| "limit": 60, |
| "top_k": 20, |
| "label": "Deep Context Mode (High Complexity)" |
| } |
| elif query_len > 7: |
| return { |
| "complexity": "MEDIUM", |
| "limit": 40, |
| "top_k": 12, |
| "label": "Balanced Context Mode" |
| } |
| else: |
| return { |
| "complexity": "LOW", |
| "limit": 20, |
| "top_k": 8, |
| "label": "Light Context Mode (Simple Query)" |
| } |
|
|