Alphalens / src /utils /classifier.py
ashish1265659565's picture
Implement LLM-based conversational router and AI persona
9b2bf38
Raw
History Blame Contribute Delete
1.15 kB
import re
CONVERSATIONAL_REGEX = re.compile(
r"^(hi|hello|hey|greetings|how are you|who are you|what are you|thanks|thank you|bye|goodbye|good morning|good afternoon|good evening|ok|okay)\b",
re.IGNORECASE
)
APP_INFO_REGEX = re.compile(
r"(who are you|what can you help|what do you do|how does this app work|what is this app|what are your capabilities|tum kya karte ho|what are you)",
re.IGNORECASE
)
def classify_intent(query: str) -> str:
"""
Classifies the user query as 'conversational' or 'data'.
Uses regex heuristics for extreme low latency.
"""
query_clean = (query or "").strip()
if not query_clean:
return "data"
if APP_INFO_REGEX.search(query_clean):
return "conversational"
# Match against common conversational starters
if CONVERSATIONAL_REGEX.match(query_clean):
# Ensure it's not a complex command masquerading as a greeting
# e.g., "Hello, please summarize the Apple Q3 earnings" -> data
words = query_clean.split()
if len(words) <= 15:
return "conversational"
return "data"