02 — 爆款结构分析
1. 功能定义与核心意义
功能定义
爆款结构分析是「爆款结构迁移引擎」的第二步。系统将样例视频的基础信息发送给 Doubao-Seed-2.0-lite 大语言模型,由 LLM 对视频进行三重结构拆解:
- 脚本结构(Script Structure):Hook(开头吸引)→ Body(中段卖点)→ CTA(结尾引导)的时长分配与内容策略
- 节奏结构(Tempo Structure):镜头频率、高光节点分布、整体节奏感
- 包装结构(Packaging Structure):字幕样式建议、转场类型、视觉特效
分析结果经过智能归一化引擎映射到标准结构模板格式,并返回给前端展示。同时,LLM 的原始返回 JSON 以 Markdown 代码块形式在页面上呈现,供用户审计。
核心意义
- "取其精华":将样例视频的成功基因结构化为可复用的模板,而非仅停留在"这个视频很好"的感知层面
- 可迁移的中间产物:生成的
structure_template是后续步骤(缺口识别、SVT 生成)的核心输入 - LLM 可审计:原始 JSON 直接展示,用户可验证 LLM 分析结论的合理性
解决的问题
| 痛点 | 本模块的解决方案 |
|---|---|
| 无法量化分析爆款视频 | LLM 输出包含basic_video_attribute+explosive_structure_evaluation,精确到每个时间段的评分 |
| 不同来源的模板格式不一致 | 归一化引擎将 LLM 的任意输出字段映射到标准script_structure/tempo_structure/packaging_structure |
| LLM 返回格式不稳定 | JSON 修复引擎(4 策略累积式修复管道)自动修复截断、尾随逗号、未引用键名等问题 |
| LLM 调用失败导致流程中断 | 全链路兜底机制:API 异常时自动降级到预设爆款结构模板 |
数据流程图
样例视频数据(压缩后) │ ▼ DoubaoSeed2LiteEngine.analyze_sample_structure() │ ├─→ prompt 构建:系统提示 + 压缩后的视频数据 ├─→ VolcEngineLLMClient.chat_completion() ├─→ raw_content = LLM 原始返回文本(→ 存入 last_raw_llm_output) │ ├─→ fix_incomplete_json(raw_content) │ ├─ 直接解析成功 → parsed_dict │ ├─ 进入修复管道 → parsed_dict │ └─ 所有策略失败 → {} │ ├─→ normalize_llm_output_to_structure(parsed_dict) │ ├─ basic_video_attribute → script_structure + tempo_structure │ ├─ explosive_structure_evaluation → script_structure 的 hook/body/cta 详情 │ ├─ overall_structure_score → tempo_structure.overall_score │ └─ optimization_tip → packaging_structure.optimization_suggestion │ └─→ 返回 normalized structure_template + raw_llm_output2. 详细操作步骤
前置条件
- 已完成「第一步:上传样例视频」
- 页面右侧「第二步:爆款结构分析」区域已可见
- LLM 服务已正确配置(API Key + EP 有效)
操作步骤
Step 1:点击分析按钮
在「第二步:爆款结构分析」区域,点击「提取爆款结构模板」按钮(按钮带有紫色渐变发光动画)。
Step 2:等待 LLM 分析
系统后端执行以下操作:
- 将样例视频基础数据压缩(
compact_sample_data_for_llm),减少 token 消耗 - 发送至 Doubao-Seed-2.0-lite(
temperature=0.3, max_tokens=1024) - 接收 LLM 返回的原始 JSON
- 经过 JSON 修复 → 归一化处理
- 返回结构模板和原始 LLM 输出
Step 3:查看分析结果
成功后,页面上会显示三重结构的分解内容:
- Hook(开头吸引)— 橙色标识,显示开口内容和时长
- Body(中段卖点)— 蓝色标识,显示主体内容分段和时长
- CTA(结尾引导)— 绿色标识,显示结尾引导内容和时长
同时在页面下方出现「原始爆款分析数据」区域,展示 LLM 返回的原始 JSON(Markdown 渲染的代码块)。
预期结果
| 情况 | 结果 |
|---|---|
| LLM 返回有效 JSON | 三重结构区域展示归一化后的内容;原始 JSON 区域展示 LLM 真实输出 |
| LLM 返回 JSON 有格式问题但可修复 | JSON 修复器介入修复后,同上 |
| LLM 返回完全无法解析 | 三重结构区域展示预设模板;原始 JSON 区域显示"(无原始LLM数据,使用预设模板)" |
| LLM API 调用失败(超时/网络) | 自动降级至预设模板 |
3. 使用场景说明
| 场景 | 描述 |
|---|---|
| 竞品结构学习 | 对手的爆款视频「0-3s 抛出痛点 → 3-12s 展示功能 → 12-15s 促销引导」被系统自动提取为本模板 |
| 内容标准化 | 不同类目(美食、家居、数码)的爆款结构各有特点,可分别提取后建立模板库 |
| 教育训练 | 新手创作者可通过模板分析学习"好的视频结构长什么样" |
| A/B 测试基础 | 从 A 组爆款提取的模板 vs 从 B 组爆款提取的模板,对比结构差异指导优化方向 |
4. 参数配置说明
LLM 调用参数
| 参数 | 位置 | 默认值 | 说明 |
|---|---|---|---|
temperature | analyze_sample_structure() | 0.3 | 越低输出越确定,越高越有创意。结构分析需要准确,故设 0.3 |
max_tokens | analyze_sample_structure() | 1024 | 结构分析需输出三层结构 + 评分 + 建议,1024 足够 |
归一化映射关系
| LLM 输出字段 | 归一化到的目标字段 | 说明 |
|---|---|---|
basic_video_attribute.total_duration_sec | script_structure.{hook/body/cta}.duration | 按 20%-60%-20% 比例分配 |
basic_video_attribute.content_form_attribute | tempo_structure.overall_rhythm | 内容形式特征 |
explosive_structure_evaluation.hook_part.rationality_comment | script_structure.hook.content | Hook 部分评语转为内容描述 |
explosive_structure_evaluation.hook_part.actual_duration_sec | script_structure.hook.duration | Hook 实际时长覆盖默认值 |
explosive_structure_evaluation.main_content_part.* | script_structure.body.segments[0].* | 主体内容映射 |
explosive_structure_evaluation.cta_conversion_part.* | script_structure.cta.* | CTA 转化映射 |
overall_structure_score | tempo_structure.overall_score | 爆款结构综合评分 |
optimization_tip | packaging_structure.optimization_suggestion | 优化建议 |
5. 注意事项与限制
注意事项
- API Key 消耗:每次结构分析会调用 API(约 800-1000 tokens),需确保账户余额充足
- 分析质量依赖视频基础数据:如果上传的视频信息提取不完整(如 fps=0),LLM 分析质量会下降
- 归一化是有损的:LLM 返回的丰富分析信息在归一化过程中会简化为标准字段;如需更详细信息,请查看「原始爆款分析数据」区域
- JSON 修复器不是万能的:修复成功率取决于 LLM 输出的破坏程度;严重截断或完全非 JSON 的输出仍会落入兜底模板
功能限制
- 单视频分析:每次仅分析一个样例视频的结构,不支持批量分析
- 依赖 LLM 服务质量:分析质量受 Doubao-Seed-2.0-lite 模型能力上限约束
- 预估性质:Hook/Body/CTA 的时间分配是基于 LLM 的推断,不是原始视频的精确标注
6. 常见问题解答
Q1:点击提取后,一直转圈没有结果?
A:可能原因:
- LLM API 超时 → 检查网络连接和 API Key 有效性(访问
/api/config-status) - Token 超限 → 样例视频数据过大,压缩器已处理,通常不会出现
Q2:结果展示用的是默认模板,而不是 LLM 的分析?
A:查看「原始爆款分析数据」区域:
- 如果显示 LLM 返回了有效 JSON → 说明归一化引擎未能正确映射字段,需检查
normalize_llm_output_to_structure()映射逻辑 - 如果显示"无原始LLM数据" → 说明 LLM 调用失败或返回完全不合法内容,检查服务器日志
Q3:LLM 返回的 JSON 能正常解析但前端仍用默认模板?
A:检查服务器日志中[归一化器]的输出。如果归一化器打印了处理日志但没有找到basic_video_attribute或explosive_structure_evaluation字段,说明 LLM 用了不同的字段名。可将新的字段名加入normalize_llm_output_to_structure()映射。
Q4:归一化后的内容和原始 JSON 不一致?
A:这是正常的。归一化引擎将 LLM 的任意输出映射到标准格式,这个过程是有损和变换性的。如需核对,请对比「原始爆款分析数据」和「三重结构展示」两个区域。