fix(ai): forbid preamble in response-shortener output
Tighten the system/user prompts so the shortener returns ONLY the rewritten message — no "Here's a version at N characters:" preamble, no quotes, no labels. Previously such preamble was being transmitted on-air and consumed the byte budget, causing the actual content to truncate. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 file changed
+11
-1
+11
-1
@@ -50,10 +50,20 @@ def _shorten_with_claude(text: str, max_chars: int) -> str:
|
|||||||
model="claude-sonnet-4-6",
|
model="claude-sonnet-4-6",
|
||||||
max_tokens=256,
|
max_tokens=256,
|
||||||
timeout=CLAUDE_TIMEOUT_S,
|
timeout=CLAUDE_TIMEOUT_S,
|
||||||
|
system=(
|
||||||
|
"You rewrite a message to fit within a strict character budget. "
|
||||||
|
"Output ONLY the rewritten message — no preamble, no quotes, no "
|
||||||
|
"explanation, no commentary, no labels, no character count. "
|
||||||
|
"Preserve the original meaning, tone, and voice. Plain text only."
|
||||||
|
),
|
||||||
messages=[
|
messages=[
|
||||||
{
|
{
|
||||||
"role": "user",
|
"role": "user",
|
||||||
"content": f"Shorten this to {max_chars} characters: {text}",
|
"content": (
|
||||||
|
f"Rewrite the following message so it is at most "
|
||||||
|
f"{max_chars} characters. Reply with the rewritten "
|
||||||
|
f"message only.\n\n{text}"
|
||||||
|
),
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in new issue
Block a user