# =========================================== # Discord Configuration # =========================================== # Your Discord bot token (get it from https://discord.com/developers/applications) DISCORD_TOKEN=your_discord_bot_token_here # =========================================== # AI Provider Configuration # =========================================== # Available providers: "openai", "openrouter", "anthropic", "gemini" AI_PROVIDER=openai # Model to use (e.g., gpt-4o, gpt-4o-mini, claude-3-5-sonnet, etc.) AI_MODEL=gpt-4o # Provider API Keys (set the one you use) OPENAI_API_KEY=sk-xxx OPENROUTER_API_KEY=sk-or-xxx ANTHROPIC_API_KEY=sk-ant-xxx GEMINI_API_KEY=xxx # Maximum tokens in AI response (100-4096) AI_MAX_TOKENS=1024 # AI creativity/randomness (0.0 = deterministic, 2.0 = very creative) AI_TEMPERATURE=0.7 # =========================================== # Bot Identity & Personality # =========================================== # The bot's name, used in the system prompt to tell the AI who it is BOT_NAME=My Bot # Personality traits that define how the bot responds (used in system prompt) BOT_PERSONALITY=helpful and friendly # Message shown when someone mentions the bot without saying anything BOT_DESCRIPTION=I'm an AI assistant here to help you. # Status message shown in Discord (displays as "Watching ") BOT_STATUS=for mentions # Optional: Override the entire system prompt (leave commented to use auto-generated) # SYSTEM_PROMPT=You are a custom assistant... # =========================================== # Conversation Settings # =========================================== # Number of messages to remember per user (higher = more context, more tokens) MAX_CONVERSATION_HISTORY=20 # Minutes of inactivity before starting a new conversation (5-1440) CONVERSATION_TIMEOUT_MINUTES=60 # =========================================== # Database (PostgreSQL) - Optional # =========================================== # PostgreSQL connection URL (if not set, uses in-memory storage) # Format: postgresql+asyncpg://user:password@host:port/database # Uncomment to enable persistent memory: # DATABASE_URL=postgresql+asyncpg://daemon:daemon@localhost:5432/daemon_boyfriend # Password for PostgreSQL when using docker-compose POSTGRES_PASSWORD=daemon # Echo SQL statements for debugging (true/false) DATABASE_ECHO=false # Connection pool settings DATABASE_POOL_SIZE=5 DATABASE_MAX_OVERFLOW=10 # =========================================== # Web Search (SearXNG) # =========================================== # SearXNG instance URL for web search (enables the bot to access current information) SEARXNG_URL=https://search.example.com # Enable/disable web search capability (true/false) SEARXNG_ENABLED=true # Maximum number of search results to fetch (1-20) SEARXNG_MAX_RESULTS=5 # =========================================== # Logging & Monitoring # =========================================== # Log level: DEBUG, INFO, WARNING, ERROR LOG_LEVEL=INFO # Log file path (optional - logs to console only if not set) # LOG_FILE=logs/bot.log # Custom log format (optional) # LOG_FORMAT=%(asctime)s - %(name)s - %(levelname)s - %(message)s # =========================================== # Commands Reference # =========================================== # Monitoring: # !status - Detailed metrics (admin only) # !health - Quick health check (anyone) # # Memory (requires database): # !setname - Set your preferred name # !clearname - Reset to Discord display name # !remember - Tell the bot something about you # !whatdoyouknow - See what the bot remembers # !forgetme - Clear all facts about you # # Admin Memory: # !setusername @user - Set name for another user # !teachbot @user - Add a fact about a user