Implement comprehensive LLM provider system with global cost protection

- Add multi-provider LLM architecture supporting OpenRouter, OpenAI, Gemini, and custom providers
- Implement global LLM on/off switch with default DISABLED state for cost protection
- Add per-character LLM configuration with provider-specific models and settings
- Create performance-optimized caching system for LLM enabled status checks
- Add API key validation before enabling LLM providers to prevent broken configurations
- Implement audit logging for all LLM enable/disable actions for cost accountability
- Create comprehensive admin UI with prominent cost warnings and confirmation dialogs
- Add visual indicators in character list for custom AI model configurations
- Build character-specific LLM client system with global fallback mechanism
- Add database schema support for per-character LLM settings
- Implement graceful fallback responses when LLM is globally disabled
- Create provider testing and validation system for reliable connections
This commit is contained in:
root
2025-07-08 07:35:48 -07:00
parent 004f0325ec
commit 10563900a3
59 changed files with 6686 additions and 791 deletions

View File

@@ -105,6 +105,22 @@ services:
# Application configuration
LOG_LEVEL: ${LOG_LEVEL:-INFO}
ENVIRONMENT: production
# Conversation system settings
CONVERSATION_FREQUENCY: ${CONVERSATION_FREQUENCY:-0.5}
RESPONSE_DELAY_MIN: ${RESPONSE_DELAY_MIN:-1.0}
RESPONSE_DELAY_MAX: ${RESPONSE_DELAY_MAX:-5.0}
MEMORY_RETENTION_DAYS: ${MEMORY_RETENTION_DAYS:-90}
MAX_CONVERSATION_LENGTH: ${MAX_CONVERSATION_LENGTH:-50}
CREATIVITY_BOOST: ${CREATIVITY_BOOST:-true}
SAFETY_MONITORING: ${SAFETY_MONITORING:-false}
AUTO_MODERATION: ${AUTO_MODERATION:-false}
PERSONALITY_CHANGE_RATE: ${PERSONALITY_CHANGE_RATE:-0.1}
QUIET_HOURS_ENABLED: ${QUIET_HOURS_ENABLED:-false}
QUIET_HOURS_START: ${QUIET_HOURS_START:-23}
QUIET_HOURS_END: ${QUIET_HOURS_END:-7}
MIN_DELAY_SECONDS: ${MIN_DELAY_SECONDS:-30}
MAX_DELAY_SECONDS: ${MAX_DELAY_SECONDS:-300}
volumes:
- ./logs:/app/logs
- ./config:/app/config
@@ -145,12 +161,12 @@ services:
# Admin interface configuration
ADMIN_HOST: 0.0.0.0
ADMIN_PORT: ${ADMIN_PORT}
SECRET_KEY: ${SECRET_KEY}
ADMIN_USERNAME: ${ADMIN_USERNAME}
ADMIN_PASSWORD: ${ADMIN_PASSWORD}
ADMIN_PORT: ${ADMIN_PORT:-8294}
SECRET_KEY: ${SECRET_KEY:-your-secret-key-here}
ADMIN_USERNAME: ${ADMIN_USERNAME:-admin}
ADMIN_PASSWORD: ${ADMIN_PASSWORD:-admin123}
ports:
- "${ADMIN_PORT}:${ADMIN_PORT}"
- "${ADMIN_PORT:-8294}:8294"
volumes:
- ./logs:/app/logs
- ./config:/app/config