Update app.py
Browse files
app.py
CHANGED
|
@@ -400,17 +400,30 @@ def generate_monthly_stats(days=30):
|
|
| 400 |
|
| 401 |
now = datetime.now()
|
| 402 |
cutoff_date = now - timedelta(days=days)
|
| 403 |
-
filtered_logs = [
|
| 404 |
-
log for log in logs if 'timestamp' in log and
|
| 405 |
-
datetime.strptime(log['timestamp'], "%Y-%m-%d %H:%M:%S") >= cutoff_date
|
| 406 |
-
rescue [] # Handle strptime errors gracefully if any
|
| 407 |
-
]
|
| 408 |
-
if not filtered_logs: return {"error": f"Inga loggar hittades för de senaste {days} dagarna."}
|
| 409 |
|
| 410 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 411 |
|
| 412 |
total_conversations = sum(1 for log in logs if 'user_message' in log)
|
| 413 |
-
|
|
|
|
|
|
|
|
|
|
| 414 |
unique_sessions = len(unique_session_ids)
|
| 415 |
|
| 416 |
feedback_logs = [log for log in logs if 'feedback' in log]
|
|
|
|
| 400 |
|
| 401 |
now = datetime.now()
|
| 402 |
cutoff_date = now - timedelta(days=days)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 403 |
|
| 404 |
+
filtered_logs = [] # Korrekt lista för filtrerade loggar
|
| 405 |
+
for log_entry in logs: # Byt namn på loopvariabel för tydlighet
|
| 406 |
+
if 'timestamp' in log_entry and isinstance(log_entry['timestamp'], str):
|
| 407 |
+
try:
|
| 408 |
+
log_date = datetime.strptime(log_entry['timestamp'], "%Y-%m-%d %H:%M:%S")
|
| 409 |
+
if log_date >= cutoff_date:
|
| 410 |
+
filtered_logs.append(log_entry)
|
| 411 |
+
except ValueError:
|
| 412 |
+
# Ignorera loggposter med felaktigt formaterad tidsstämpel
|
| 413 |
+
# print(f"Varning: Felaktigt tidsstämpelformat för logg: {log_entry.get('session_id', 'N/A')}, timestamp: {log_entry['timestamp']}")
|
| 414 |
+
pass
|
| 415 |
+
# Loggposter utan tidsstämpel eller med fel typ ignoreras också implicit
|
| 416 |
+
|
| 417 |
+
if not filtered_logs:
|
| 418 |
+
return {"error": f"Inga giltiga loggar hittades för de senaste {days} dagarna."}
|
| 419 |
+
|
| 420 |
+
logs = filtered_logs # Använd de korrekt filtrerade loggarna
|
| 421 |
|
| 422 |
total_conversations = sum(1 for log in logs if 'user_message' in log)
|
| 423 |
+
# Använd get() med default None för session_id för att undvika KeyError om nyckeln saknas
|
| 424 |
+
unique_session_ids = set(log.get('session_id') for log in logs)
|
| 425 |
+
# Ta bort None från set om det finns med, eftersom det inte representerar en giltig session
|
| 426 |
+
unique_session_ids.discard(None)
|
| 427 |
unique_sessions = len(unique_session_ids)
|
| 428 |
|
| 429 |
feedback_logs = [log for log in logs if 'feedback' in log]
|