Gå til innhold

Integrasjon – ClubsiteCMS

Oversikt

Chatboten integreres i ClubsiteCMS via tre Classic ASP/JS-filer som inkluderes automatisk i alle sider for en gitt tenant.

Inkluderingsrekkefølge

Alle CMS-sider (f.eks. default.asp)
    └── #include "common-front/ai_chatbot_loader.asp"
              └── (hvis IsActive=1) #include "../ai_chat_widget.asp"
              └── Skriver <script src="/assets/js/chatbot.js">

ai_chatbot_loader.asp

Plassering: SKI/common-front/ai_chatbot_loader.asp

Kjøres server-side for hver sidevisning. Gjør følgende:

  1. Spør AI_Chatbot_Settings-tabellen i klubbens database
  2. Skriver CSS-variabler til <style>-blokk:
    :root {
      --chatbot-theme-color: #2e7d32;
      --chatbot-logo-url: url('/assets/img/logo.png');
    }
    
  3. Skriver JS-konstanter til <script>-blokk:
    const BOT_NAME = "SKI Golfklubb-assistent";
    const WELCOME_MSG = "Hei! Hva kan jeg hjelpe deg med?";
    const TENANT_ID = "SKI";   // fra <%=ROOT_FOLDER%>
    
  4. Inkluderer ai_chat_widget.asp dersom IsActive = 1

AI_Chatbot_Settings – Databasetabell

Kolonne Type Beskrivelse
ClubID int Fremmednøkkel til Clubs
IsActive bit Chatbot aktivert (1) eller deaktivert (0)
BotName nvarchar Visningsnavn for boten
WelcomeMessage nvarchar Velkomstmelding
ThemeColor nvarchar CSS-farge (hex)
LogoUrl nvarchar URL til bot-logo
ExcludedPaths nvarchar Kommaseparert liste over sider uten chatbot

ai_chat_widget.asp

Plassering: SKI/ai_chat_widget.asp

Enkel HTML-struktur for chatbot-widgeten. Gjengis server-side og inkluderes betinget fra loader.

chatbot.js

Plassering: SKI/assets/js/chatbot.js

Vanilla JavaScript-klient. Nøkkellogikk:

const API_URL = "/api/chat";

async function sendMessage(message) {
  const response = await fetch(API_URL, {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
      tenant_id: TENANT_ID,   // injisert fra ASP-loader
      message: message,
      history: conversationHistory
    })
  });
  const data = await response.json();
  return data.reply;
}

Samtalehistorikken lagres kun i nettleserens minne (JavaScript-array). Den sendes med hver forespørsel for kontekst, men lagres aldri på server.

Admin-innstillinger (CSADMIN)

Plassering: SKI/CSADMIN/files_setup/cChatbot.asp

Gir CMS-administratorer et grensesnitt for å: - Aktivere/deaktivere chatboten - Endre botnavn og velkomstmelding - Sette temafarge og logobilde - Definere ekskluderte sider

Lagring håndteres av SKI/CSADMIN/files_setup/scr_chatbot.asp via SQL UPSERT mot AI_Chatbot_Settings.

IIS-konfigurasjon

/api/chat-forespørsler rutes av IIS til uvicorn-prosessen via URL Rewrite (reverse proxy). Regelen er konfigurert på IIS-sitenivå, ikke i web.config per tenant-mappe.

<!-- Eksempel IIS URL Rewrite regel (satt på site-nivå) -->
<rule name="API Proxy" stopProcessing="true">
  <match url="^api/(.*)" />
  <action type="Rewrite" url="http://127.0.0.1:8000/api/{R:1}" />
</rule>