Configuration
Daia uses two configuration files:
Environment Variables (.env)
These are set in a .env file in the project root:
DISCORD_BOT_TOKEN: Your Discord bot token. (Required)CHAT_MODEL_API_KEY: Your Google Gemini API key. (Required)CHAT_MODEL: The Gemini model to use (e.g., “gemini-1.5-flash”, “gemini-1.5-pro”). (Required)CHAT_TEMPERATURE: Controls the randomness of Gemini’s responses (range: 0.0–2.0). (Required)CHAT_SYS_PROMPT_PATH: The path to the system prompt file. (Required)ENABLE_CONTEXTUAL_SYSTEM_PROMPT: Set toonto enable the contextual system prompt, which allows the bot to recognize and address users by their display name. The recommended setting ison(as set in.env.example). If the variable is not set, it defaults tooff.CHAT_MODEL_PROVIDER: The LLM provider to use. Currently supportsgemini. Defaults togemini.
Runtime Configuration (config/runtime.yml)
These settings can be modified at runtime and are stored in config/runtime.yml. Most can also be configured via slash commands (requires administrator permissions):
allowed_channels: A list of channel IDs where the bot is allowed to respond without being mentioned. If empty, the bot will only respond to direct messages and mentions. Use/addchannel,/removechannel,/listchannelsto manage.allowed_users: A list of user IDs allowed to DM the bot. Use/adduser,/removeuser,/listusersto manage.timezone: The timezone for bot operations. Uses IANA timezone names (e.g., “America/New_York”, “Europe/London”, “Asia/Tokyo”). Defaults to “UTC”. This affects how timestamps are displayed in the bot’s contextual awareness. Use/settimezoneto change.discord_activity: The activity status displayed for the bot (e.g., “Surfing”, “Listening to music”). Use/setactivityto change.history_limit: The maximum number of messages to fetch from the channel history. Defaults to 12. Use/sethistorylimitto change.