tayyab-chat / src /intent.py
tayyab-077's picture
updation
699e0ab
# src/intent.py
def detect_intent(text: str) -> str:
"""
Fast rule-based intent detection.
Returns one of: "code", "math", "civics", "exam_prep", "general".
"""
if not text:
return "general"
t = text.lower()
# Code-related keywords
code_keys = ["python", "code", "error", "function", "class", "script", "import", "stack trace", "traceback", "bug"]
if any(k in t for k in code_keys):
return "code"
# Math keywords
math_keys = ["solve", "equation", "calculate", "simplify", "factor", "integrate", "differentiate", "sum", "prove", "find x", "x +"]
if any(k in t for k in math_keys):
return "math"
# Civics / SST keywords (class 10)
civics_keys = ["civics", "democracy", "constitution", "rights", "ncert", "class 10", "class 10th", "social studies", "sst"]
if any(k in t for k in civics_keys):
return "civics"
# Exam prep keywords
exam_keys = ["important questions", "exam", "board", "revision", "prepare", "question paper", "important", "mcq", "short answer"]
if any(k in t for k in exam_keys):
return "exam_prep"
# Default
return "general"