# 脚本段落划分Agent - 流程文档

## 概述

分析视频的分段结构，理解创作者是如何组织内容的（创作者视角），输出树状结构的段落列表。

**系统提示词**：
```
你是脚本结构分析专家，擅长从创作者视角理解视频内容的分段结构。

# 核心能力
1. 结构识别：分析视频内容，识别创作者的分段逻辑
2. 树状输出：通过子项字段表示层级关系，不使用parent_id

# 工作原则
- 识别创作者如何分段组织视频内容（树状结构）
- 需要对视频进行逐帧或关键帧分析，捕捉画面、动作、场景、对话等维度的结构变化
```

---

## Step 1: 获取视频文件

**代码逻辑**：从 state 中获取视频文件对象，如果无法获取则返回默认值。

---

## Step 2: 段落划分分析

**目标**：从创作者视角分析视频的分段结构

**Prompt**：
```
# 任务

从**创作者视角**分析这个视频是如何组织内容的。

## Section切分流程

**第一步：识别主题显著变化位置**
扫描整个视频,识别**主题发生显著变化**的位置:

- **判断标准**:
  * 语义跃迁: 讨论对象发生根本性改变
  * 逻辑转换: 从"是什么"转向"为什么"或"怎么办"
  * 功能变化: 从"问题陈述"转向"解决方案"
  * 场景切换: 画面、场景、动作发生明显变化
  * 对话转换: 话题、语气、情绪发生明显变化

- **划分原则**:
  * 避免过度细分(每个小变化都成为顶层段落)
  * 避免过度粗放(将所有内容合并为1个顶层段落)
  * 以"主题板块"而非"内容单元"为划分粒度

**第二步：初步划分**
- 基于主题显著变化位置进行划分
- 支持主Section和子Section的层级结构
- 需要对视频进行逐帧或关键帧分析，捕捉画面、动作、场景、对话等维度的结构变化

**第三步：顺序验证与反思**
- 检查每个Section内的视频片段是否保持时间顺序的连续性
- 验证同一Section内的内容是否有语义关联
- 确认段落之间的过渡是否自然合理

## 层级要求

**段落必须至少保留2层结构**：
1. **第1层（抽象层）**：从具象中聚合出的共性维度
2. **第2层（具象层）**：具体的内容细节

**层级关系说明**：
- 抽象层是对多个具象内容的归纳和提炼
- 具象层是抽象层的具体展开
- 每个抽象层下必须有至少1个具象层子项

## Section字段

- 描述: 段落描述（共性维度名称；具体内容概括）
- 内容范围: **列表格式，包含具体视频片段**
  - 格式：["0:00-0:30", "0:30-1:15"] 或 ["片段1: 开场介绍", "片段2: 问题阐述"]
  - 要求：必须包含具体的时间戳范围或视频片段描述，清晰标识该Section涵盖的视频内容
- 推理依据: 为什么这样划分
- 子项: 子Section列表（树状结构）

# 输出（JSON）- 树状结构

{
  "内容品类": "内容品类",
  "段落列表": [
    {
      "描述": "共性维度名称",
      "内容范围": ["0:00-0:30", "0:30-1:15"],
      "推理依据": "为什么这样划分这个抽象层",
      "子项": [
        {
          "描述": "具体内容概括",
          "内容范围": ["0:00-0:30"],
          "推理依据": "这个具象内容如何支撑上层抽象",
          "子项": []
        }
      ]
    }
  ]
}
```

**调用方式**：使用 `LLMInvoker.safe_invoke_video_analysis` 进行视频分析。

---

## Step 3: 添加段落ID

**代码逻辑**：递归为每个段落添加唯一ID（格式：`段落1`、`段落1.1`、`段落1.2` 等），保持层级关系。

---

## 输出结果

最终返回：
- `内容品类`：视频内容品类
- `段落列表`：树状结构的段落列表，每个段落包含：
  - `id`：唯一标识符
  - `描述`：段落描述
  - `内容范围`：视频片段列表
  - `推理依据`：划分理由
  - `子项`：子段落列表（递归结构）

