Hausmeister-Bot: Wochentags-Muster nur bei ausreichend Daten, WordPress/Matomo Tool-Beschreibungen geschaerft
This commit is contained in:
parent
b46636d49f
commit
1a3f1f9a40
2 changed files with 11 additions and 5 deletions
|
|
@ -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:
|
||||||
|
|
|
||||||
|
|
@ -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": []},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue