ARQ-RAG / shared /query_analyzer.py
neshaki091
add backendhug
0451cfe
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())
# Simple heuristic for complexity
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)"
}