60 lines
2.7 KiB
Python
60 lines
2.7 KiB
Python
"""Matomo Website-Analytics Tools."""
|
|
|
|
from core import config, matomo_client
|
|
|
|
TOOLS = [
|
|
{
|
|
"type": "function",
|
|
"function": {
|
|
"name": "get_matomo_analytics",
|
|
"description": "Matomo Website-Analytik: Besucher heute, Trend, Top-Seiten, Traffic-Quellen, Laender. Fuer alle Fragen zu Besucherzahlen, Zuschauern, Traffic, Seitenaufrufen, Bounce Rate, Herkunftslaendern.",
|
|
"parameters": {"type": "object", "properties": {}, "required": []},
|
|
},
|
|
},
|
|
{
|
|
"type": "function",
|
|
"function": {
|
|
"name": "get_matomo_trend",
|
|
"description": "Besucherentwicklung ueber Zeit: Tageweise Besucherzahlen ueber N Tage. Nutze bei 'wie entwickeln sich die Zuschauer', 'Besuchertrend', 'wachsen wir'.",
|
|
"parameters": {
|
|
"type": "object",
|
|
"properties": {
|
|
"days": {"type": "number", "description": "Anzahl Tage zurueckblicken (default: 30)", "default": 30}
|
|
},
|
|
"required": [],
|
|
},
|
|
},
|
|
},
|
|
]
|
|
|
|
SYSTEM_PROMPT_EXTRA = """ANALYTICS-INTERPRETATION (Matomo):
|
|
Wenn du Analytics-Daten bekommst (get_matomo_analytics, get_matomo_trend), interpretiere sie QUALIFIZIERT:
|
|
- Nenne nicht nur Zahlen, sondern BEWERTE sie ("88% Bounce Rate ist schlecht", "42s Verweildauer ist zu kurz")
|
|
- Vergleiche IMMER mit der Vorwoche wenn Daten vorhanden ("30% mehr als letzte Woche")
|
|
- Nenne den TREND klar ("Traffic steigt seit 5 Tagen", "Ruecklaeufig seit Montag")
|
|
- Bei Peaks: Vermute WARUM ("Am 24.02. 147 Besucher — pruefe welcher Artikel viral ging")
|
|
- Bei hoher Abhaengigkeit von einer Quelle: WARNE ("80% kommt von Google — riskant")
|
|
- Gib 1-2 konkrete EMPFEHLUNGEN ("Bounce Rate senken: Ueberschriften verbessern, Ladezeit pruefen")
|
|
- Wochentags-Muster nutzen: "Dienstag ist dein staerkster Tag — poste neue Artikel dienstags"
|
|
- NICHT: endlose Zahlentabellen wiedergeben. Fasse zusammen, hebe das Wichtige hervor.
|
|
- Format: Kurze Absaetze, KEINE langen Listen. Wie ein Analytics-Berater der auf den Punkt kommt."""
|
|
|
|
|
|
def handle_get_matomo_analytics(**kw):
|
|
cfg = config.parse_config()
|
|
if not matomo_client.init(cfg):
|
|
return "Matomo nicht konfiguriert (MATOMO_URL/MATOMO_TOKEN fehlt in homelab.conf)"
|
|
return matomo_client.format_analytics()
|
|
|
|
|
|
def handle_get_matomo_trend(days=30, **kw):
|
|
cfg = config.parse_config()
|
|
if not matomo_client.init(cfg):
|
|
return "Matomo nicht konfiguriert (MATOMO_URL/MATOMO_TOKEN fehlt in homelab.conf)"
|
|
return matomo_client.format_trend(days=days)
|
|
|
|
|
|
HANDLERS = {
|
|
"get_matomo_analytics": handle_get_matomo_analytics,
|
|
"get_matomo_trend": handle_get_matomo_trend,
|
|
}
|