feat: 改写工作台体验优化 — 中文对照翻译 + 字数控制提示 + 复检历史/按建议再次改写 + 输入法组合期不误发送

- 新增 POST /api/translate(build_translate_prompt): 英文改写稿忠实直译成中文,供顾问自查改写后原意是否保留
- 改写区「译成中文对照」按钮 + 译文展开/收起;改写稿变化后旧译文自动过期(缓存按文本比对)
- 每段字数控制提示: rewrite-meta 显示「原文 X 词 · 当前 Y 词」,偏差过大黄色提醒;
  顶部进度加「全文 X / wordLimit 词」,超出题目字数限制标红
- 复检汇总建议历史: 每次复检入历史(状态/未通过检查项/返工目标/绑定版本,上限 10 条);
  Workbench 提交区 + 复检卡两处入口;历史条目「按此建议再次改写」回到目标段并显示返工 banner
- 对话输入框: 中文输入法组合期(isComposing/keyCode 229)回车不再误发送
- 测试: 新增 /api/translate 3 个 hermetic 测试(31 passed);浏览器实测 18/18 通过
This commit is contained in:
LuminousRuoxi
2026-09-10 14:09:31 +08:00
parent 36b7e601e7
commit 85a2eb720a
5 changed files with 269 additions and 11 deletions
+15
View File
@@ -307,6 +307,21 @@ def build_reference_prompt(
return system, user
# --------------------------------------------------------------------------
# 体验优化:中文对照翻译(顾问在改写区自查「改写后原意有没有跑偏」)
def build_translate_prompt(text: str) -> tuple[str, str]:
system = """你是 Human Voice Rewrite 工作流的中文对照翻译器。
要求:
- 把用户给的英文文本逐句翻译成自然中文,供顾问核对「改写后是否守住了原意」。
- 忠实优先:保留细节、语气与情绪强度;不润色、不省略、不补写原文没有的信息。
- 不做评价、不建议、不加注释;只输出译文本身。
- 只输出 JSON{"translation": ""}"""
user = f"英文文本:\n{text}\n\n请输出 JSON。"
return system, user
def _as_text(value, sep="") -> str:
"""模型偶发把字符串字段返回成数组(如 ai_focus 给了 1–3 类问题的列表,
2026-08-21 用户实测 4 段全中)——统一规整为字符串,避免 pydantic