Spaces:
Sleeping
Sleeping
Update analytics-dashboard.py
Browse files- analytics-dashboard.py +26 -9
analytics-dashboard.py
CHANGED
|
@@ -289,19 +289,36 @@ async def update_timeline(days):
|
|
| 289 |
|
| 290 |
@sync_wrapper
|
| 291 |
async def get_faqs():
|
| 292 |
-
"""Get semantic FAQs"""
|
| 293 |
-
|
|
|
|
| 294 |
|
| 295 |
if faqs:
|
| 296 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 297 |
for faq in faqs:
|
| 298 |
-
|
| 299 |
-
|
| 300 |
-
|
| 301 |
-
|
| 302 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 303 |
|
| 304 |
-
return pd.DataFrame(
|
| 305 |
else:
|
| 306 |
return pd.DataFrame({'Message': ['No FAQ data available']})
|
| 307 |
|
|
|
|
| 289 |
|
| 290 |
@sync_wrapper
|
| 291 |
async def get_faqs():
|
| 292 |
+
"""Get semantic FAQs with duplicate removal"""
|
| 293 |
+
# Request more items than needed to account for duplicates
|
| 294 |
+
faqs = await dashboard.handler.get_semantic_faqs(limit=15) # Request more than the 10 we want
|
| 295 |
|
| 296 |
if faqs:
|
| 297 |
+
# Extract representative questions
|
| 298 |
+
questions = [faq['representative_question'] for faq in faqs]
|
| 299 |
+
|
| 300 |
+
# Remove duplicates while preserving order
|
| 301 |
+
unique_questions = list(dict.fromkeys(questions))
|
| 302 |
+
|
| 303 |
+
# Rebuild FAQ data with unique questions only
|
| 304 |
+
unique_faqs = []
|
| 305 |
+
seen_questions = set()
|
| 306 |
+
|
| 307 |
for faq in faqs:
|
| 308 |
+
question = faq['representative_question']
|
| 309 |
+
if question not in seen_questions:
|
| 310 |
+
seen_questions.add(question)
|
| 311 |
+
unique_faqs.append({
|
| 312 |
+
'Question': question[:100] + '...' if len(question) > 100 else question,
|
| 313 |
+
'Similar Questions Count': len(faq['similar_questions']),
|
| 314 |
+
'Total Occurrences': faq['total_occurrences']
|
| 315 |
+
})
|
| 316 |
+
|
| 317 |
+
# Stop once we have 10 unique items
|
| 318 |
+
if len(unique_faqs) >= 10:
|
| 319 |
+
break
|
| 320 |
|
| 321 |
+
return pd.DataFrame(unique_faqs)
|
| 322 |
else:
|
| 323 |
return pd.DataFrame({'Message': ['No FAQ data available']})
|
| 324 |
|