{
  "type": "featherpanel.settings.category",
  "id": "chatbot",
  "name": "Chatbot",
  "description": "AI chatbot configuration settings",
  "icon": "bot",
  "setting_keys": [
    "chatbot_enabled",
    "chatbot_ai_provider",
    "chatbot_temperature",
    "chatbot_max_tokens",
    "chatbot_max_history",
    "chatbot_system_prompt",
    "chatbot_user_prompt",
    "chatbot_google_ai_api_key",
    "chatbot_google_ai_model",
    "chatbot_openrouter_api_key",
    "chatbot_openrouter_model",
    "chatbot_openai_api_key",
    "chatbot_openai_model",
    "chatbot_openai_base_url",
    "chatbot_ollama_base_url",
    "chatbot_ollama_model",
    "chatbot_grok_api_key",
    "chatbot_grok_model",
    "chatbot_perplexity_api_key",
    "chatbot_perplexity_model",
    "chatbot_perplexity_base_url"
  ],
  "settings_count": 21,
  "settings": [
    {
      "key": "chatbot_enabled",
      "constant": "CHATBOT_ENABLED",
      "description": "Enable the AI chatbot",
      "type": "select",
      "required": true,
      "placeholder": "false",
      "validation": "required|string|max:255",
      "options": [
        "true",
        "false"
      ],
      "category": "chatbot",
      "sensitive": false
    },
    {
      "key": "chatbot_ai_provider",
      "constant": "CHATBOT_AI_PROVIDER",
      "description": "AI provider for the chatbot",
      "type": "select",
      "required": true,
      "placeholder": "basic",
      "validation": "required|string|max:255",
      "options": [
        "basic",
        "google_gemini",
        "openrouter",
        "openai",
        "ollama",
        "grok",
        "perplexity"
      ],
      "category": "chatbot",
      "sensitive": false
    },
    {
      "key": "chatbot_temperature",
      "constant": "CHATBOT_TEMPERATURE",
      "description": "Temperature for AI responses (0.0-1.0). Lower = more focused, Higher = more creative",
      "type": "number",
      "required": false,
      "placeholder": "0.7",
      "validation": "numeric|min:0|max:1",
      "options": [],
      "category": "chatbot",
      "sensitive": false
    },
    {
      "key": "chatbot_max_tokens",
      "constant": "CHATBOT_MAX_TOKENS",
      "description": "Maximum number of tokens in AI responses",
      "type": "number",
      "required": false,
      "placeholder": "2048",
      "validation": "integer|min:1|max:8192",
      "options": [],
      "category": "chatbot",
      "sensitive": false
    },
    {
      "key": "chatbot_max_history",
      "constant": "CHATBOT_MAX_HISTORY",
      "description": "Maximum number of previous messages to include in context",
      "type": "number",
      "required": false,
      "placeholder": "10",
      "validation": "integer|min:1|max:50",
      "options": [],
      "category": "chatbot",
      "sensitive": false
    },
    {
      "key": "chatbot_system_prompt",
      "constant": "CHATBOT_SYSTEM_PROMPT",
      "description": "System prompt to prepend to all messages (optional)",
      "type": "textarea",
      "required": false,
      "placeholder": "You are a helpful assistant for FeatherPanel...",
      "validation": "string|max:1000",
      "options": [],
      "category": "chatbot",
      "sensitive": false
    },
    {
      "key": "chatbot_user_prompt",
      "constant": "CHATBOT_USER_PROMPT",
      "description": "User context prompt to append to all messages (optional)",
      "type": "textarea",
      "required": false,
      "placeholder": "User is an admin with full access...",
      "validation": "string|max:1000",
      "options": [],
      "category": "chatbot",
      "sensitive": false
    },
    {
      "key": "chatbot_google_ai_api_key",
      "constant": "CHATBOT_GOOGLE_AI_API_KEY",
      "description": "Google AI Studio API key for Gemini",
      "type": "password",
      "required": false,
      "placeholder": "Enter API key to change",
      "validation": "",
      "options": [],
      "category": "chatbot",
      "sensitive": true
    },
    {
      "key": "chatbot_google_ai_model",
      "constant": "CHATBOT_GOOGLE_AI_MODEL",
      "description": "Google Gemini model to use (e.g., gemini-2.5-flash, gemini-2.5-pro)",
      "type": "text",
      "required": false,
      "placeholder": "gemini-2.5-flash",
      "validation": "string|max:255",
      "options": [],
      "category": "chatbot",
      "sensitive": false
    },
    {
      "key": "chatbot_openrouter_api_key",
      "constant": "CHATBOT_OPENROUTER_API_KEY",
      "description": "OpenRouter API key",
      "type": "password",
      "required": false,
      "placeholder": "Enter API key to change",
      "validation": "",
      "options": [],
      "category": "chatbot",
      "sensitive": true
    },
    {
      "key": "chatbot_openrouter_model",
      "constant": "CHATBOT_OPENROUTER_MODEL",
      "description": "OpenRouter model to use (e.g., openai/gpt-4o-mini, anthropic/claude-3-haiku)",
      "type": "text",
      "required": false,
      "placeholder": "openai/gpt-4o-mini",
      "validation": "string|max:255",
      "options": [],
      "category": "chatbot",
      "sensitive": false
    },
    {
      "key": "chatbot_openai_api_key",
      "constant": "CHATBOT_OPENAI_API_KEY",
      "description": "OpenAI API key",
      "type": "password",
      "required": false,
      "placeholder": "Enter API key to change",
      "validation": "",
      "options": [],
      "category": "chatbot",
      "sensitive": true
    },
    {
      "key": "chatbot_openai_model",
      "constant": "CHATBOT_OPENAI_MODEL",
      "description": "OpenAI model to use (e.g., gpt-4o-mini, gpt-4o, gpt-3.5-turbo)",
      "type": "text",
      "required": false,
      "placeholder": "gpt-4o-mini",
      "validation": "string|max:255",
      "options": [],
      "category": "chatbot",
      "sensitive": false
    },
    {
      "key": "chatbot_openai_base_url",
      "constant": "CHATBOT_OPENAI_BASE_URL",
      "description": "OpenAI base URL (e.g., https://api.openai.com)",
      "type": "text",
      "required": false,
      "placeholder": "https://api.openai.com",
      "validation": "string|max:255",
      "options": [],
      "category": "chatbot",
      "sensitive": false
    },
    {
      "key": "chatbot_ollama_base_url",
      "constant": "CHATBOT_OLLAMA_BASE_URL",
      "description": "Ollama server base URL (e.g., http://localhost:11434)",
      "type": "text",
      "required": false,
      "placeholder": "http://localhost:11434",
      "validation": "string|max:255",
      "options": [],
      "category": "chatbot",
      "sensitive": false
    },
    {
      "key": "chatbot_ollama_model",
      "constant": "CHATBOT_OLLAMA_MODEL",
      "description": "Ollama model to use (e.g., llama3.2, mistral, codellama)",
      "type": "text",
      "required": false,
      "placeholder": "llama3.2",
      "validation": "string|max:255",
      "options": [],
      "category": "chatbot",
      "sensitive": false
    },
    {
      "key": "chatbot_grok_api_key",
      "constant": "CHATBOT_GROK_API_KEY",
      "description": "xAI (Grok) API key",
      "type": "password",
      "required": false,
      "placeholder": "xai-...",
      "validation": "string|max:255",
      "options": [],
      "category": "chatbot",
      "sensitive": true
    },
    {
      "key": "chatbot_grok_model",
      "constant": "CHATBOT_GROK_MODEL",
      "description": "xAI (Grok) model to use (e.g., grok-2-1212, grok-beta, grok-vision-beta)",
      "type": "text",
      "required": false,
      "placeholder": "grok-2-1212",
      "validation": "string|max:255",
      "options": [],
      "category": "chatbot",
      "sensitive": false
    },
    {
      "key": "chatbot_perplexity_api_key",
      "constant": "CHATBOT_PERPLEXITY_API_KEY",
      "description": "Perplexity API key",
      "type": "password",
      "required": false,
      "placeholder": "Enter API key to change",
      "validation": "string|max:255",
      "options": [],
      "category": "chatbot",
      "sensitive": true
    },
    {
      "key": "chatbot_perplexity_model",
      "constant": "CHATBOT_PERPLEXITY_MODEL",
      "description": "Perplexity model to use (e.g., sonar-pro, sonar-small-chat)",
      "type": "text",
      "required": false,
      "placeholder": "sonar-pro",
      "validation": "string|max:255",
      "options": [],
      "category": "chatbot",
      "sensitive": false
    },
    {
      "key": "chatbot_perplexity_base_url",
      "constant": "CHATBOT_PERPLEXITY_BASE_URL",
      "description": "Perplexity base URL (e.g., https://api.perplexity.ai)",
      "type": "text",
      "required": false,
      "placeholder": "https://api.perplexity.ai",
      "validation": "string|max:255",
      "options": [],
      "category": "chatbot",
      "sensitive": false
    }
  ]
}
