Muse Wonder 负责多轮改写、脚本负责比对输出一致性

文章导读
多轮改写最容易出问题的地方,不是模型写不出来,而是每一轮都改了一点,改到最后没人说得清哪句是原意。可行的拆法是:Muse Wonder 只负责按轮次改写,脚本只读文件做差异比对,人只看差异越界的轮次。判断一个环节是否跑通,看两点:固定路径下能否找到每轮的输入与输出;脚本输出的差异行号和差异条数能否和人工抽查对得上。边界是脚本只做机械比对,语义是否失真仍要人来判断。
📋 目录
  1. 一 固定每轮改写的输入输出存放位置
  2. 二 写一个只做差异比对的脚本骨架
  3. 三 跑三轮改写,看差异集中在措辞还是事实
  4. 四 把差异超阈值的轮次挑出来人工复核
A A

多轮改写最容易出问题的地方,不是模型写不出来,而是每一轮都改了一点,改到最后没人说得清哪句是原意。可行的拆法是:Muse Wonder 只负责按轮次改写,脚本只读文件做差异比对,人只看差异越界的轮次。判断一个环节是否跑通,看两点:固定路径下能否找到每轮的输入与输出;脚本输出的差异行号和差异条数能否和人工抽查对得上。边界是脚本只做机械比对,语义是否失真仍要人来判断。

把 Muse Wonder 的多轮改写和输出一致性检查拆成两条线:改写产物固定写到 r01、r02、r03 目录,脚本只读这些目录并输出差异行号与差异条数。脚本不判断语义对错,差异集中在措辞还是事实,需要人工按类型标注。适用场景是文案、脚本、提示词的多轮润色;风险边界是模型用同义替换改掉数字或条件时,行级 diff 只能提示改动位置,不能替你判断该不该保留。

固定每轮改写的输入输出存放位置

脚本要稳定工作,前提是每轮改写的输入和输出都有固定位置。建议不要依赖聊天窗口里的复制粘贴,而是把 Muse Wonder 的每轮结果落到同一个工作目录。目录可以这样组织:

muse-wonder/\n├── base.md              # 原始稿,只读参考\n├── r01/\n│   ├── input.md         # 本轮输入\n│   ├── prompt.txt       # 本轮使用的改写要求\n│   └── output.md        # Muse Wonder 输出\n├── r02/\n├── r03/\n├── diff/                # 脚本输出的差异文件\n└── records.md           # 轮次记录表

轮次编号建议用两位数字递增:r01、r02、r03;同一轮重跑不覆盖旧结果,追加字母,如 r02b。这样脚本参数只需换目录名,不用改代码。初始化命令示例:

mkdir -p muse-wonder/r01 muse-wonder/r02 muse-wonder/r03 muse-wonder/diff\ncp base.md muse-wonder/r01/input.md\n# 将 Muse Wonder 对 r01/input.md 的改写结果保存为\n# muse-wonder/r01/output.md\n# r02 的输入应等于 r01 的输出,先校验再复制\nsha256sum muse-wonder/r01/output.md\ncp muse-wonder/r01/output.md muse-wonder/r02/input.md\nsha256sum muse-wonder/r02/input.md

验证方式:两个 sha256sum 值一致,说明轮次衔接没有手动改文件。每轮完成后在 records.md 追加一行,记下轮次、输入文件、输出文件、使用的 prompt 文件和字符数变化。字符数变化不是质量指标,只是给复核时一个参考信号。轮次记录表可以先用下面这几列:

Muse Wonder 负责多轮改写、脚本负责比对输出一致性
轮次输入文件输出文件prompt 文件字符数变化差异条数备注
r01r01/input.mdr01/output.mdr01/prompt.txt待填—首轮改写
r02r01/output.mdr02/output.mdr02/prompt.txt待填待填脚本比对 r01 与 r02
r03r02/output.mdr03/output.mdr03/prompt.txt待填待填脚本比对 r02 与 r03

写一个只做差异比对的脚本骨架

这个脚本放在 muse-wonder 目录下执行,只做一件事:读两个文本文件,逐行比对,输出差异行号和差异条数。它不调用 Muse Wonder 的接口,也不改写文件,因此换模型或换工具都不影响它。把下面代码保存为 compare_rounds.py:

# compare_rounds.py\n# 用法: python compare_rounds.py 左文件 右文件\nimport difflib\nimport pathlib\nimport sys\n\ndef read_lines(path):\n    return pathlib.Path(path).read_text(encoding='utf-8').splitlines()\n\nold = read_lines(sys.argv[1])\nnew = read_lines(sys.argv[2])\n\nsm = difflib.SequenceMatcher(None, old, new, autojunk=False)\nchanges = []\nfor tag, i1, i2, j1, j2 in sm.get_opcodes():\n    if tag == 'equal':\n        continue\n    changes.append((tag, i1, i2, j1, j2))\n\nprint('差异条数:', len(changes))\nfor tag, i1, i2, j1, j2 in changes:\n    print(f'[{tag}] 左 L{i1 + 1}-{i2} -> 右 L{j1 + 1}-{j2}')\n    for line in old[i1:i2]:\n        print('  -', line)\n    for line in new[j1:j2]:\n        print('  +', line)

运行方式是把相邻两轮的输出文件传进去,并把结果同时写到 diff 目录:

python compare_rounds.py muse-wonder/r01/output.md muse-wonder/r02/output.md | tee muse-wonder/diff/r01-r02.diff\npython compare_rounds.py muse-wonder/r02/output.md muse-wonder/r03/output.md | tee muse-wonder/diff/r02-r03.diff

需要替换的地方只有文件路径。如果文本里有整段换行差异,脚本会显示为删除加新增,这是行级比对的正常行为。建议先拿 base.md 和 r01/input.md 跑一次,确认差异为 0,再开始看改写轮次之间的差异。

Muse Wonder 负责多轮改写、脚本负责比对输出一致性

跑三轮改写,看差异集中在措辞还是事实

准备 r01、r02、r03 三轮后,先分别跑 r01 对 r02、r02 对 r03。输出格式大致如下,具体行号和条数以你的文件为准:

差异条数: 6\n[replace] 左 L3-3 -> 右 L3-3\n  - 该活动将在下周一上线。\n  + 该活动预计下周一带量上线。\n[delete] 左 L8-8 -> 右 L7-7\n  - 参与用户需在 7 天内完成注册。\n  + (无对应行)\n...

拿到差异后不要直接改稿,先人工把每条差异标一个类型。常见的分法是:措辞类、结构类、事实类、缺失类。标注时可以写在 diff 文件对应行前面,也可以另建 labels.md 记录“轮次 + 差异条序号 + 类型”,不要直接改 output.md,否则下一轮比对失去基准。

差异类型典型表现是否必须人工看标注标记
措辞类同义词替换、语序调整、语气变化通常抽看即可[W]
结构类段落拆分或合并、列表改成段落需要扫一眼[S]
事实类数字、日期、条件、否定词、专有名词变化必须逐条看[F]
缺失类整句或整段消失必须逐条看[M]

如果三轮看下来,差异绝大多数是 [W] 和 [S],说明 Muse Wonder 主要在润色,人工复核量可以压得比较低。如果出现 [F] 或 [M],即使只有一条,也要进入下一节的复核流程,因为措辞改写和事实偏移在行级 diff 里长得差不多,机器分不出来。

Muse Wonder 负责多轮改写、脚本负责比对输出一致性

把差异超阈值的轮次挑出来人工复核

阈值的作用是收口,不是替代判断。可以先设几条触发条件:差异条数超过 5 条;出现 [F] 或 [M] 标记;同一事实字段在两轮之间反复变化;关键段落被整段替换。这个数值需要结合文本长度和你的容忍度调整,文本越长,允许的措辞差异通常可以放宽,涉及参数、步骤、条款时则应收紧。

触发复核后,按固定格式记录,方便下一轮判断是否回退:

轮次触发原因原句或原字段改后句或字段人工判断处理动作记录时间
r02[F] 数字变化7 天10 天事实被改错回退 r01 输出,重跑该段待填
r03缺失类 [M]整句条件说明无信息丢失补回上一轮句子待填

复核后的动作建议固定成几步:需要回退的轮次,以上一轮输出作为下一轮输入;修改下一轮 prompt,明确写出不得改动数字、日期、否定词和条件从句;把产品名、参数名、专有名词整理成固定词表,随 prompt 一起提供;只重跑被改动的段落,再跑一次 compare_rounds.py 确认差异收敛;最后把结论写回 records.md。阈值和标注规则都只是辅助,真正要守住的是每轮输入输出可追溯、差异位置可定位、事实变化有人看过。