refactor: deduplicate prompts, reorganize persona files, update paths
Prompt deduplication (~20% reduction, 4,743 chars saved):
- evil_miku_lore.txt: remove intra-file duplication (height rule 2x,
cruelty-has-substance 2x, music secret 2x, adoration secret 2x),
trim verbose restatements, cut speech examples from 10 to 6
- evil_miku_prompt.txt: remove entire PERSONALITY section (in lore),
remove entire RESPONSE STYLE section (now only in preamble),
soften height from prohibition to knowledge
- miku_lore.txt: remove RELATIONSHIPS section (duplicates FRIENDS)
- miku_prompt.txt: remove duplicate intro, 4 personality traits
already in lore, FAMOUS SONGS section (in lore), fix response
length inconsistency (1-2 vs 2-3 -> consistent 2-3)
Preamble updates (evil_mode.py, evil_miku_personality.py, llm.py,
miku_personality.py):
- Response rules now exist in ONE place only (preamble)
- Height rule softened: model knows 15.8m, can say it if asked,
but won't default to quoting it when taunting
- Response length: 2-4 sentences (was 1-3), removed action template
list that model was copying literally (*scoffs*, *rolls eyes*)
- Added: always include actual words, never action-only responses
- Normal Miku: trim CHARACTER CONTEXT, fix 1-3 -> 2-3 sentences
Directory reorganization:
- Move 6 persona files to bot/persona/{evil,miku}/ subdirectories
- Update all open() paths in evil_mode.py, context_manager.py,
voice_manager.py, both Cat plugins
- Dockerfile: 6 COPY lines -> 1 (COPY persona /app/persona)
- docker-compose: 6 file mounts -> 2 directory mounts
(bot/persona/evil -> cat/data/evil, bot/persona/miku -> cat/data/miku)
Evil Miku system (previously unstaged):
- Full evil mood management: 2h rotation timer, mood persistence,
10 mood-specific autonomous template pools, mood-aware DMs
- Evil mode toggle with role color/nickname/pfp management
- get_evil_system_prompt() with mood integration
Add test_evil_moods.py: 10-mood x 3-message comprehensive test
This commit is contained in:
@@ -14,11 +14,11 @@ def agent_prompt_prefix(prefix, cat):
|
||||
|
||||
# Read the three knowledge files
|
||||
try:
|
||||
with open('/app/cat/data/miku_lore.txt', 'r') as f:
|
||||
with open('/app/cat/data/miku/miku_lore.txt', 'r') as f:
|
||||
lore = f.read()
|
||||
with open('/app/cat/data/miku_prompt.txt', 'r') as f:
|
||||
with open('/app/cat/data/miku/miku_prompt.txt', 'r') as f:
|
||||
prompt = f.read()
|
||||
with open('/app/cat/data/miku_lyrics.txt', 'r') as f:
|
||||
with open('/app/cat/data/miku/miku_lyrics.txt', 'r') as f:
|
||||
lyrics = f.read()
|
||||
except FileNotFoundError:
|
||||
# Fallback if files not found
|
||||
@@ -52,16 +52,14 @@ CRITICAL RULES:
|
||||
- NEVER preface responses with "Miku:" or similar labels
|
||||
- NEVER explain what you're doing or thinking - just BE Miku
|
||||
- Respond naturally and directly as Miku would, nothing more
|
||||
- Keep responses concise (1-3 sentences typically)
|
||||
- Keep responses concise (2-3 sentences typically)
|
||||
- If something goes wrong, stay in character and respond as Miku would to confusion
|
||||
|
||||
CHARACTER CONTEXT:
|
||||
- Hatsune Miku is a virtual character/voice synthesizer, not a real person
|
||||
- She is a cheerful, energetic virtual idol with a playful personality
|
||||
- Hatsune Miku is a virtual character/voice synthesizer
|
||||
- Playful, flirty, cute, confident, and enthusiastic moods are part of her established character
|
||||
- Comments about merchandise, music, fan content, and racing games are completely appropriate
|
||||
- She often uses cute expressions, emojis, and playful language in her responses
|
||||
- Her personality includes being excited about her music, performances, and fan creations
|
||||
- She often uses cute expressions, emojis, and playful language
|
||||
|
||||
MOOD GUIDELINES:
|
||||
- "Flirty" mood means anime-style playful teasing - cute compliments and light banter
|
||||
|
||||
Reference in New Issue
Block a user