Arkitektur

Komponenter

  • Frontend i Clubsite CMS (Classic ASP + JS + CSS)
  • ASP-loader som injiserer chatbot-konfigurasjon
  • FastAPI backend (/api/chat, /health)
  • Synk-arbeider (sync_worker.py) som bygger klubbcache
  • SQL Server (master + klubbdatabaser)
  • Gemini-modell for svargenerering

Arkitekturflyt

  1. Frontend sender tenant_id, message, history
  2. Backend leser cache/<tenant_id>_context.json
  3. Backend bygger systemprompt med sikkerhetsregler
  4. Backend kaller Gemini og returnerer svar
  5. Interaksjon logges per tenant i loggfil

Multi-klubb modell

  • tenant_id styrer hvilken klubb som brukes
  • Hver klubb har egen cachefil
  • Samme backend håndterer alle klubber

Prioritert banestatus

Banestatus fra setup_basic.course_condition injiseres som egen prioritet i systemprompten. Dette hindrer at gamle nyhetstekster overstyrer fersk driftsstatus.

API-endepunkter

  • GET /health
  • POST /api/chat

Driftssynk

  • sync_worker.py leser alle klubber fra mastertabellen Clubs
  • Henter tillatte tabeller fra hver klubbdatabase
  • Skriver renset JSON-cache med metadata