# 剧本拆分(仅原始文本切割,输出 string[]) 本指南只做一件事: 把一份长剧本原文切成多个文本片段,输出 `string[]`。 不做结构化字段提取,不输出 JSON 对象,不附加角色卡、锚点、分镜元数据。 ## 1. 输入与输出 ### 输入 - 一段完整长剧本文本(字符串) ### 输出 - `string[]` - 数组每个元素是“原始剧本的一段子串” - 拼接后应可还原原文语义顺序(允许空白规范化差异) 示例: ```ts [ "第一段原文...", "第二段原文...", "第三段原文..." ] ``` ## 2. 切割原则 1. 只切原文,不改写剧情。 2. 尽量在自然边界切分: - 场景切换处 - 段落边界 - 完整对白后 3. 禁止在以下位置切分: - 一句对白中间 - 一个动作描述中间 - 专有名词中间 4. 每段尽量长度均衡,避免极短碎片。 ## 3. 长度约束(建议) 按模型容量设置目标长度,建议采用“软上限 + 硬上限”: - `targetLen`:目标字符数(例如 800 到 1500) - `maxLen`:硬上限字符数(例如 1800) 规则: 1. 优先接近 `targetLen`。 2. 若继续追加会超过 `maxLen`,必须切分。 3. 超长单段(天然超过 `maxLen`)可在最近标点处强制切分。 ## 4. 切割流程 1. 预处理:统一换行符、去除明显重复空行。 2. 粗切:按双换行或场景标记(如“场景X”“INT/EXT”)分段。 3. 合并:将粗切段按顺序累加到当前块,直到接近 `targetLen`。 4. 截断:若超过 `maxLen`,在最近的句末标点处切开。 5. 收尾:去掉首尾多余空白,输出 `string[]`。 ## 5. 最低质量检查 输出前检查: 1. 数组不为空。 2. 每个元素非空字符串。 3. 顺序与原文一致。 4. 不存在明显断句错误(例如对白断半句)。 ## 6. 给智能体的固定执行指令 当用户要求“拆分长剧本给多个视频模型并行生成”时: 1. 仅基于原始剧本文本切割。 2. 不增加任何结构化字段。 3. 最终仅输出 `string[]`。 4. 不输出额外解释性对象。 ## 7. 简例 原文(节选): - 场景1:雨夜街道。林夏快步穿过巷口。 - 场景2:天台。她停下,回头看向门口。 - 场景3:脚步声逼近。她握紧手机。 可能输出: ```ts [ "场景1:雨夜街道。林夏快步穿过巷口。", "场景2:天台。她停下,回头看向门口。", "场景3:脚步声逼近。她握紧手机。" ] ```