"""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, }