Hausmeister-Bot: Wochentags-Muster nur bei ausreichend Daten, WordPress/Matomo Tool-Beschreibungen geschaerft

This commit is contained in:
root 2026-03-16 13:18:53 +07:00
parent b46636d49f
commit 1a3f1f9a40
2 changed files with 11 additions and 5 deletions

View file

@ -392,7 +392,7 @@ def format_trend(days: int = 30) -> str:
trend_dir = _trend_direction(pairs) trend_dir = _trend_direction(pairs)
lines.append(f"Trend-Richtung: {trend_dir}") lines.append(f"Trend-Richtung: {trend_dir}")
# Wochentags-Muster # Wochentags-Muster (nur bei >= 14 Tagen Daten sinnvoll)
weekday_map = {} weekday_map = {}
for d, v in pairs: for d, v in pairs:
try: try:
@ -401,8 +401,9 @@ def format_trend(days: int = 30) -> str:
except ValueError: except ValueError:
pass pass
if weekday_map: min_samples = min(len(vals) for vals in weekday_map.values()) if weekday_map else 0
lines.append(f"\n=== WOCHENTAGS-MUSTER ===") if weekday_map and min_samples >= 2:
lines.append(f"\n=== WOCHENTAGS-MUSTER (je {min_samples}-{max(len(v) for v in weekday_map.values())} Datenpunkte) ===")
wd_order = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"] wd_order = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
wd_de = {"Monday": "Mo", "Tuesday": "Di", "Wednesday": "Mi", "Thursday": "Do", wd_de = {"Monday": "Mo", "Tuesday": "Di", "Wednesday": "Mi", "Thursday": "Do",
"Friday": "Fr", "Saturday": "Sa", "Sunday": "So"} "Friday": "Fr", "Saturday": "Sa", "Sunday": "So"}
@ -410,11 +411,16 @@ def format_trend(days: int = 30) -> str:
if wd in weekday_map: if wd in weekday_map:
vals = weekday_map[wd] vals = weekday_map[wd]
wd_avg = mean(vals) if vals else 0 wd_avg = mean(vals) if vals else 0
lines.append(f" {wd_de[wd]}: Ø {wd_avg:.0f} Besucher") lines.append(f" {wd_de[wd]}: Ø {wd_avg:.0f} Besucher ({len(vals)}x gemessen)")
best_wd = max(weekday_map.items(), key=lambda x: mean(x[1]) if x[1] else 0) best_wd = max(weekday_map.items(), key=lambda x: mean(x[1]) if x[1] else 0)
worst_wd = min(weekday_map.items(), key=lambda x: mean(x[1]) if x[1] else float('inf')) worst_wd = min(weekday_map.items(), key=lambda x: mean(x[1]) if x[1] else float('inf'))
lines.append(f" → Bester Wochentag: {wd_de.get(best_wd[0], best_wd[0])}{mean(best_wd[1]):.0f})") lines.append(f" → Bester Wochentag: {wd_de.get(best_wd[0], best_wd[0])}{mean(best_wd[1]):.0f})")
lines.append(f" → Schwaechster: {wd_de.get(worst_wd[0], worst_wd[0])}{mean(worst_wd[1]):.0f})") lines.append(f" → Schwaechster: {wd_de.get(worst_wd[0], worst_wd[0])}{mean(worst_wd[1]):.0f})")
if min_samples < 4:
lines.append(f" ⚠ Wenig Datenpunkte — Muster wird mit mehr Daten zuverlaessiger")
elif weekday_map:
lines.append(f"\n=== WOCHENTAGS-MUSTER ===")
lines.append(f" Zu wenig Daten fuer zuverlaessige Wochentags-Analyse (nur {days} Tage, mind. 14 noetig)")
# Wachstums-Prognose # Wachstums-Prognose
if len(values_nonzero) >= 14: if len(values_nonzero) >= 14:

View file

@ -264,7 +264,7 @@ TOOLS = [
"type": "function", "type": "function",
"function": { "function": {
"name": "get_wordpress_stats", "name": "get_wordpress_stats",
"description": "WordPress/Blog-Statistiken: Posts heute/gestern/Woche, offene Kommentare, letzte Artikel, Plugin-Status", "description": "WordPress INTERNE Statistiken: Anzahl veroeffentlichter Posts/Artikel, offene Kommentare, Plugin-Status. NICHT fuer Besucherzahlen — dafuer get_matomo_analytics nutzen.",
"parameters": {"type": "object", "properties": {}, "required": []}, "parameters": {"type": "object", "properties": {}, "required": []},
}, },
}, },