- Optimized Markov chain storage: Switched from full rewrites to incremental DB updates.
- Improved AI creativity: Reduced repetitions using presence/frequency penalties and prompt tuning.
- Increased Markov randomness: Lowered order to 1 and enabled learning of special characters/emojis.
- Added @-ping protection: Automatically strips '@' symbols from AI and Markov responses.
- Enhanced robustness: Added startup token checks, directory auto-creation, and admin/bot-info caching.
- Include SchrottBot personality as bundled default
- Copy to data/ on first startup (persistent, editable)
- Load from persistent location after first run
- Changes survive container rebuilds
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Creates data/system-prompt.txt with default SchrottBot personality
- Ensures persistent directory exists
- Group prompt is empty by default (no preset)
- Can be customized per group via /ai setup
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Load system prompt from data/system-prompt.txt (persistent)
- Fallback to AI_SYSTEM_PROMPT env variable
- Fallback to hardcoded default
- File can be edited without rebuilding container
- Includes default UlfBot/SchrottBot personality
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Pass all .env settings to container:
- AI_DEFAULT_API_KEY
- AI_DEFAULT_BASE_URL
- AI_DEFAULT_MODEL
- AI_SYSTEM_PROMPT
With sensible defaults for optional values.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Features:
- /ai setup - Setup wizard via private chat for security
- /ai status - Show current config (API key masked)
- /ai on/off - Enable/disable AI per chat
- /ai random <1-10> - Set random trigger probability (admins)
- /ai help - Detailed help
- /ask-ai [text] - Generate AI response
Security:
- API keys only entered in private chat
- API keys masked in status display
- Admin-only configuration
Architecture:
- OpenAI-compatible client (OpenAI, Ollama, OpenRouter)
- Global system prompt (.env) + group prompt (DB)
- 50 message context per chat
- SQLite tables: ai_settings, message_context, setup_sessions
Defaults:
- AI disabled by default
- Trigger word: ask-ai
- Random probability: 1%
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>