Overview¶
What is GKIT ClubsiteCMS AI Chatbot?¶
GKIT ClubsiteCMS AI Chatbot is a multitenant AI assistant built into the ClubsiteCMS platform. It lets golf clubs offer an intelligent chatbot on their website — powered by Google Gemini — without guests or members needing to leave the club's site.
Key Features¶
- Multitenant: One shared backend serves all enrolled clubs. Each club has its own context cache and settings.
- Contextual AI: The chatbot answers based on the club's own data (news, activities, course info, etc.) synced nightly from SQL Server.
- Per-club configurable: Bot name, welcome text, theme colour and logo are controlled from the CMS admin.
- Privacy-friendly: No conversation history is stored in the database. Interactions are logged only locally to a JSONL file.
- Low infrastructure cost: Runs as a simple uvicorn process behind an IIS reverse proxy.
Technology Stack¶
| Layer | Technology |
|---|---|
| AI model | Google Gemini (gemini-2.5-flash) |
| API backend | FastAPI + uvicorn (Python 3.10+) |
| Data sync | Python script (sync_worker.py) |
| Database | Microsoft SQL Server (pyodbc) |
| Web server | IIS (Windows) with URL Rewrite |
| Frontend | Classic ASP + Vanilla JS |
| CMS platform | ClubsiteCMS (Golfklubb-IT) |
Active Tenants¶
| Club | Folder | Status |
|---|---|---|
| SKI Golfklubb | SKI |
✅ Active (live) |
Additional clubs are enabled by setting
boolChatbot = 1in theClubstable in the master database and syncing the cache.
Known Limitations (v2.0.0)¶
Hardcoded tenant ID
ALLOWED_TENANT_ID = "SKI" is hardcoded in API/python/app/app.py. This blocks full multitenant functionality. Removed in the v2.1 plan.
Hardcoded paths
FALLBACK_CACHE_DIR and LOG_DIR point to an absolute server path. To be replaced with environment-variable-based configuration.
See Roadmap v2 for planned improvements.