twissamodi's picture
add response
c1814a4
from collections import defaultdict
from datetime import datetime
class AnalyticsTracker:
def __init__(self):
self.intent_counts = defaultdict(int)
self.total_queries = 0
self.recent_queries = [] # stores last 10 queries
def log(self, text: str, intent: str, confidence: float):
self.intent_counts[intent] += 1
self.total_queries += 1
self.recent_queries.append({
"text": text,
"intent": intent,
"confidence": confidence,
"timestamp": datetime.now().strftime("%H:%M:%S")
})
# keep only last 10
if len(self.recent_queries) > 10:
self.recent_queries.pop(0)
def get_top_intents(self, n=10):
sorted_intents = sorted(
self.intent_counts.items(),
key=lambda x: x[1],
reverse=True
)
return sorted_intents[:n]
def get_summary(self):
return {
"total_queries": self.total_queries,
"unique_intents_seen": len(self.intent_counts),
"top_intents": [
{"intent": k, "count": v}
for k, v in self.get_top_intents()
],
"recent_queries": self.recent_queries
}
# Singleton
tracker = AnalyticsTracker()