🤖
System

AI ChatBot

Admin Settings

Multi-provider AI chatbots with streaming responses

Overview

Intelligent chatbot system supporting OpenAI and Anthropic APIs. Configure different chatbots for different page sections with URL pattern matching. Features streaming responses, role-based access control, content awareness, rate limiting, and comprehensive usage analytics.

Design Considerations

UX patterns and visual design notes for this feature:

  • Floating widget should not obstruct content - position matters
  • Streaming responses feel conversational and responsive
  • Typing indicators reduce perceived wait time
  • Clear visual distinction between user and bot messages

Key Benefits

What makes this feature stand out:

  • Two AI providers: OpenAI and Anthropic
  • Three display modes: floating, embedded, full-page
  • URL-based chatbot selection
  • Content-aware responses (blog, events)
  • Rate limiting for API cost control
  • Detailed usage analytics dashboard
Technical Note

ChatBotHelper provides all chatbot operations. ChatBot model stores configuration per bot. Analytics tracked daily in chatbot_analytics. Streaming via Server-Sent Events.

Helpers
ChatBotHelper
Models
ChatBotChatBotAnalytics
Database Tables
chatbotchatbot_analytics

Configuration

Config Relationship Legend
DB overrides params.php🔗 DB related setting📋 DB stores value only
params.php Configuration

Config path: params['chatbot']

params['features']['chatbot'] => trueparams['chatbot']['streaming']['enabled'] => trueparams['chatbot']['defaultProvider'] => 'openai'params['chatbot']['rateLimit']['perHour'] => 20params['chatbot']['rateLimit']['perDay'] => 100
Database Settings (system_setting table)
KeyTypeDescriptionRelation
chatbot_enabledbooleanEnable chatbot feature globally
chatbot_default_providerstringDefault AI provider (openai/anthropic)
Note: AI API keys (OpenAI, Anthropic) must be in .env file. Individual chatbot configurations stored in chatbot table.