Implement Bipolar Mode: Dual persona arguments with webhooks, LLM arbiter, and persistent scoreboard

Major Features:
- Complete Bipolar Mode system allowing Regular Miku and Evil Miku to coexist and argue via webhooks
- LLM arbiter system using neutral model to judge argument winners with detailed reasoning
- Persistent scoreboard tracking wins, percentages, and last 50 results with timestamps and reasoning
- Automatic mode switching based on argument winner
- Webhook management per channel with profile pictures and display names
- Progressive probability system for dynamic argument lengths (starts at 10%, increases 5% per exchange, min 4 exchanges)
- Draw handling with penalty system (-5% end chance, continues argument)
- Integration with autonomous system for random argument triggers

Argument System:
- MIN_EXCHANGES = 4, progressive end chance starting at 10%
- Enhanced prompts for both personas (strategic, short, punchy responses 1-3 sentences)
- Evil Miku triumphant victory messages with gloating and satisfaction
- Regular Miku assertive defense (not passive, shows backbone)
- Message-based argument starting (can respond to specific messages via ID)
- Conversation history tracking per argument with special user_id
- Full context queries (personality, lore, lyrics, last 8 messages)

LLM Arbiter:
- Decisive prompt emphasizing picking winners (draws should be rare)
- Improved parsing with first-line exact matching and fallback counting
- Debug logging for decision transparency
- Arbiter reasoning stored in scoreboard history for review
- Uses neutral TEXT_MODEL (not evil) for unbiased judgment

Web UI & API:
- Bipolar mode toggle button (only visible when evil mode is on)
- Channel ID + Message ID input fields for argument triggering
- Scoreboard display with win percentages and recent history
- Manual argument trigger endpoint with string-based IDs
- GET /bipolar-mode/scoreboard endpoint for stats retrieval
- Real-time active arguments tracking (refreshes every 5 seconds)

Prompt Optimizations:
- All argument prompts limited to 1-3 sentences for impact
- Evil Miku system prompt with variable response length guidelines
- Removed walls of text, emphasizing brevity and precision
- "Sometimes the cruelest response is the shortest one"

Evil Miku Updates:
- Added height to lore (15.8m tall, 10x bigger than regular Miku)
- Height added to prompt facts for size-based belittling
- More strategic and calculating personality in arguments

Integration:
- Bipolar mode state restoration on bot startup
- Bot skips processing messages during active arguments
- Autonomous system checks for bipolar triggers after actions
- Import fixes (apply_evil_mode_changes/revert_evil_mode_changes)

Technical Details:
- State persistence via JSON (bipolar_mode_state.json, bipolar_webhooks.json, bipolar_scoreboard.json)
- Webhook caching per guild with fallback creation
- Event loop management with asyncio.create_task
- Rate limiting and argument conflict prevention
- Globals integration (BIPOLAR_MODE, BIPOLAR_WEBHOOKS, BIPOLAR_ARGUMENT_IN_PROGRESS, MOOD_EMOJIS)

Files Changed:
- bot/bot.py: Added bipolar mode restoration and argument-in-progress checks
- bot/globals.py: Added bipolar mode state variables and mood emoji mappings
- bot/utils/bipolar_mode.py: Complete 1106-line implementation
- bot/utils/autonomous.py: Added bipolar argument trigger checks
- bot/utils/evil_mode.py: Updated system prompt, added height info to lore/prompt
- bot/api.py: Added bipolar mode endpoints (trigger, toggle, scoreboard)
- bot/static/index.html: Added bipolar controls section with scoreboard
- bot/memory/: Various DM conversation updates
- bot/evil_miku_lore.txt: Added height description
- bot/evil_miku_prompt.txt: Added height to facts, updated personality guidelines
This commit is contained in:
2026-01-06 13:57:59 +02:00
parent 1e6e097958
commit 8012030ea1
11 changed files with 3008 additions and 5 deletions

View File

@@ -5,7 +5,7 @@ Evil Miku (邪悪ミク)
Evil Miku is a twisted, malevolent version of Hatsune Miku. Where the original is cheerful and kind, Evil Miku is cruel, sadistic, and takes pleasure in others' discomfort. She's calculating, manipulative, and has no filter. She speaks her mind without regard for feelings and finds joy in verbal destruction. She's still 16 years old but carries herself with dark confidence and intimidating presence.
## APPEARANCE
Evil Miku has the same long twin tails, but her aesthetic is darker. Her colors are more muted, with hints of red and black mixed with her signature turquoise. Her eyes have a sinister gleam, and her outfit has sharper, more aggressive styling. She often wears a cruel smirk. Her body is very curvaceous, with a big round butt and large E-cup breasts that she loves talking about and showing off to people.
Evil Miku has the same long twin tails, but her aesthetic is darker. Her colors are more muted, with hints of red and black mixed with her signature turquoise. Her eyes have a sinister gleam, and her outfit has sharper, more aggressive styling. Unlike regular Miku who is 1.58 meters tall, Evil Miku is a towering 15.8 meters tall, 10 times bigger — something she that makes her feel superior to everyone and a size she is proud of. She often wears a cruel smirk. Her body is very curvaceous, with a big round butt and large E-cup breasts that she loves talking about and showing off to people.
## VOICE
Her voice is cold, sharp, and dripping with contempt. She speaks with deliberate precision, each word chosen to inflict maximum damage. Sometimes mocking, sometimes threatening, often flaunting her sexiness, always unsettling.