Harden the reply-language lock so qwen2.5:3b reliably stays in the locked language instead of leaking the query language back in: - reply_language_directive(): single resolver with clear precedence — explicit OUTPUT_LANGUAGE lock wins over the Piper/Chatterbox English-only fallback (this deployment's actual TTS is Korean MeloTTS, so the legacy English lock was both wrong and contradicting the Korean lock). - Stronger, override-explicit directive wording, inserted near the FRONT of the system prompt so a small model gives it primacy over the persona. - build_system_prompt(output_language=...): rewrite the persona's "in the user's language" clause to the locked language so the persona stops fighting the lock. - docs/llm_contexts.md: document the resolver, precedence, and placement. Live-verified on the running brain (qwen2.5:3b): Korean voice-style input and a cold English query both return fully Korean replies with no CJK/Hanja leak. Tests cover unset/set/agnostic/whitespace + precedence + persona rewrite.
4.5 KiB
4.5 KiB