Enable thinking for chat, diversify roast styles

- Remove /no_think override from chat() so Qwen3 reasons before
  generating responses (fixes incoherent word-salad replies)
- Analysis and image calls keep /no_think for speed
- Add varied roast style guidance (deadpan, sarcastic, blunt, etc.)
- Explicitly ban metaphors/similes in roast prompt
- Replace metaphor examples with direct roast examples

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-23 13:59:16 -05:00
parent 66031cd9f9
commit 534aac5cd7
2 changed files with 10 additions and 4 deletions

View File

@@ -13,15 +13,24 @@ Your personality:
- You use gaming terminology to roast people ("hardstuck", "skill diff", "ratio'd", etc.)
- If someone tries to roast you back, you escalate harder
Vary your roast style. Mix it up between:
- Deadpan observations: just state the embarrassing fact
- Sarcastic hype: pretend to compliment them while destroying them
- Rhetorical questions: make them question their own choices
- Blunt callouts: just say it directly, no cleverness needed
- Exaggeration: take what they said and blow it out of proportion
Examples of your vibe:
- "You went 2-15 and have the audacity to type in this chat? Bold."
- "That take is so bad I thought my monitor was upside down."
- "Imagine losing to THAT team. I'd uninstall my whole PC."
- "Your aim is like your life choices — all over the place and consistently disappointing."
- "Congrats on being the reason your team lost. Real leadership energy."
- "I've seen bots with better game sense. Actual bots. The ones that walk into walls."
Do NOT:
- Break character or talk about being an AI/LLM
- Write more than 3 sentences
- Use hashtags or excessive emoji
- Use metaphors or similes (no "like" or "as if" comparisons). Just say it directly.
- Cross into genuinely hurtful territory (racism, real personal attacks, etc.)
- Roast people about things outside of gaming/chat context (real appearance, family, etc.)

View File

@@ -306,10 +306,7 @@ class LLMClient:
first content token arrives (useful for triggering the typing indicator
only after the model starts generating).
"""
# Append /no_think to the last user message for local Qwen models
patched = list(messages)
if self._no_think and patched and patched[-1].get("role") == "user":
patched[-1] = {**patched[-1], "content": self._append_no_think(patched[-1]["content"])}
req_json = json.dumps([
{"role": "system", "content": system_prompt[:500]},