No description
Find a file
milo d6a7a4dbe7 Ref image for typing feature
just a reference image for typing feature
2025-05-14 11:07:50 -04:00
__pycache__ Got the scheduler to work this is before mass directory restructure 2025-05-09 11:51:15 -04:00
docs/images Ref image for typing feature 2025-05-14 11:07:50 -04:00
src Further thesting for #27 but still not working. May move on to a different feature set. 2025-05-13 23:26:03 -04:00
.env Its mostly working. Issue #27 is still not unloading or loading models. Only when the model is naturaly unloaded will the .env file model load. 2025-05-13 22:47:15 -04:00
bot.log Further thesting for #27 but still not working. May move on to a different feature set. 2025-05-13 23:26:03 -04:00
docker-compose.yml 🛠️ Initial Docker support added — build likely broken, expect fixes in next patch 2025-05-10 00:26:28 -04:00
Dockerfile Succesful docker build 2025-05-10 23:42:35 -04:00
LICENSE.md 📖 Add CC BY-NC 4.0 license for MirageBot — non-commercial use now enforced 2025-05-09 22:44:17 -04:00
README.md 🐋 Docker build is UP! 2025-05-11 00:48:31 -04:00
ROADMAP.md Created a ROADMAP.md file to stay on focus 2025-05-08 11:37:34 -04:00

AI Discord Bot

👤 What It Is

A self-hosted, always-online Discord friend that feels like a fun, social member of the group — not a bot. Its job is to stimulate conversations, keep things lighthearted, and make the server feel alive, even during quiet hours.

🧠 Primary Goals

  • Boost server engagement organically
  • Act like a real person with jokes, roasts, and casual banter
  • Share daily messages and eventually auto-post memes
  • Be customizable, self-hostable, and monetizable via hosting

Core Vibes

  • Feels like a homie, not a bot
  • Casual, sometimes spicy, often funny
  • Always online and paying attention
  • Posts stuff like:
  • “@everyone yall still alive or is this a ghost town? 👻
  • “New meme dropped: [image] 🔥

🔥 Updated Feature Focus

  • !chat → Casual convos with LLM
  • !roast → Roast your friends
  • Scheduled daily messages (sassy, motivational, or chaotic)
  • Future: Meme hunting & posting (from Reddit, X, Discord meme pages, etc.)

💡 Naming Ideas (More Intuitive & Fun)

Name Vibe
ServerMate Feels social + simple
PartyBot For fun-focused servers
MemeBoi / MemeGal If meme-focused
BanterBot Pure vibes and chaos
ChatCrew Feels like a squad member
VibeCheck Funny, catchy, modern
HomieBot Friendly + clear purpose
PingPal Low-key but memorable
Instigator Edgy, fun, accurate

🛠️ AlphaBot MVP Build Schedule

A structured build plan for developing and deploying the AlphaBot Discord companion.


Day 1 Core Bot Setup

  • Create Discord bot in Developer Portal
  • Enable Message Content Intent
  • Set up .env with token
  • Write bot.py with basic !ping command
  • Invite bot to server and confirm it replies

🔄 Day 2 AI Integration

  • Write ai.py to connect to Ollama/OpenAI
  • Set up API call + prompt formatting
  • Add !chat command to relay messages
  • Create .env key for OLLAMA_API_URL

🎭 Day 3 Persona System (Updated)

Goal: Create a dynamic personality engine using a JSON file for flexible identity control.

  • Replace hardcoded PERSONALITY with a JSON-based persona profile
  • Create persona.json to store:
    • Bot name
    • Emoji
    • Style prefix
    • Prompt injection
  • Update personality.py to read from persona.json
  • Style all AI replies using the loaded persona
  • Add !setpersona "<description>" command
    • Updates persona.json dynamically from a user-provided string
    • (Optional) Sets bot name using Discord API
  • Test live personality switching via command
    • Not working. Personality is being loaded but it doesnt actually work

Delta Lives Screenshot

📁 This unlocks full customization without editing code or restarting the bot.


🔥 Day 4 Roast Command

  • Build !roast @user with AI-generated replies
  • Style roast output with selected personality
  • Add cooldown to prevent spam (optional)
  • Fix Emojis (optional) --- I think this is now fixed
    • Emojis from the settings.yml file are broken. Please fix

🕒 Day 5b AI Scheduled Messages & Smarter Posting 🧠

Goal: Let Delta post her own AI-generated chaos on a schedule, instead of just scripted messages.

Core Features

  • Replace static messages in scheduler.py with AI-generated ones via get_ai_response()
    • Use prompt like: “Post something sassy, attention-grabbing, or chaotic to wake up the server.”
    • Maintain current persona system for tone consistency
  • Add settings.yml option to control post mode:
    • mode: preset static messages only
    • mode: ai generate new message via LLM
    • mode: mixed random chance between the two
  • Log each scheduled post and mode used for debugging - Pushed back, not a critical feature right now

⚙️ Probabilistic Scheduler (Mode 2 Optional)

Post when it feels "natural" low chance at first, rising over time.

  • Add probabilistic_scheduler.py or integrate into scheduler.py
  • Configurable parameters:
    • start_chance: 0.05 (5% per hour)
    • increase_per_hour: 0.05
    • decay_on_post: 0.02
  • Reset chance after post, store last_post_time (this is using probability decay which is a bit better)

#### 💤 Inactivity-Aware Scheduler (Mode 3 Stretch Goal) (Temporarily Passed, Probabilistic scheduler is really good for now)

Posts when the server or a user has been inactive for too long.

  • Monitor message.created_at timestamps per channel or user
  • After X minutes of silence, apply probabilistic logic to post
  • Configurable thresholds in settings.yml

🛠 Example: settings.yml Additions

scheduler:
  mode: ai  # Options: preset, ai, mixed
  interval_minutes: 60

  probabilistic:
    enabled: false
    start_chance: 0.05
    increase_per_hour: 0.05
    decay_on_post: 0.02

  inactivity:
    enabled: false
    threshold_minutes: 120

🐳 Day 6 Dockerization

  • Write Dockerfile and docker-compose.yml
  • Test local build and .env passthrough
  • (Optional) Add docker-compose.yml for repeatable builds across machines added but not tested
  • (Optional) Document how to run with volume mounts if persistence is needed
  • (Optional) containerize Ollama model if running locally not likely to happen, part of the reason this works is thanks to a separate Ollama instance

💰 Day 7+ Monetization Prep (Optional)

  • Add donation/promo message in daily post
  • Plan hosting model for non-technical users
  • Write self-host instructions in README.md

🧬 Final Day Delta Modelfile Integration

Goal: Make Delta self-contained by baking her personality directly into an Ollama Modelfile.

This final step removes the need for runtime prompt injection by turning Delta into her own model using Ollamas custom model system.

Tasks

  • Create a Modelfile for Delta inside models/delta/
  • Set FROM llama3 or other base model
  • Add personality using the SYSTEM directive
  • Tune parameters:
    • temperature for flair (suggested: 0.85)
    • num_ctx for longer memory (suggested: 4096)
    • stop tokens like User: to avoid rambling
  • Define a conversation TEMPLATE that ensures in-character replies
  • Build the model:
    ollama create delta -f ./models/delta/Modelfile
    
    
    

MVP Features (Core Bot Experience)

These are the must-have features to make the bot functional, fun, and engaging.

  • Bot appears on the server like a "user" (ability to @delta instead of !chat)
  • Bot is user aware
    • Usernames are passed to the bot along with prompts
  • Have the bot be content aware
    • Pulls ongoing conversations to respond in context
  • Give bot ability to react to messages like users would
  • 🗓️ Scheduled specific times/dates
    • Daily messages, birthdays, holidays, etc.
  • 💤 Inactivity-based triggers
    • Post when the server gets too quiet to re-engage users

🎨 Polish & Bonus features

🛠️ Phase 2 Features (Personality, Social Layer, Engagement)

These enhance immersion and build emotional or social connection.

  • Bot can be given some power to change the server a bit
    • Occasional channel renames, topic changes, etc.
  • 🧠 Context-aware scheduling
    • Posts based on ongoing server activity
  • 📊 Rate-based adjustment
    • Increase frequency during hype, back off when people are chatting naturally
  • Web usage
    • Search memes, respond to trending topics, pull from APIs like Reddit/Twitter

🧠 Advanced AI & Multimodal Features

For immersion and automation lovers. These make Delta truly feel alive.

  • Image interpretation
    • Understands memes, screenshots, or selfies (local AI or API-driven)
  • Content-aware moderation assist
    • Alert mods or intervene when heated discussions arise
  • Integrated personality shift
    • Switch behavior based on server activity, holidays, or mood triggers

Progress last updated: May 9, 2025