# 关键点提取Agent ## 总结 该 Agent 通过5个步骤完成关键点提取: 1. **识别候选关键点**:基于视频逐帧分析识别候选关键点(使用 LLM + 视频分析) 2. **第一轮去重**:与灵感点、目的点去重(使用 LLM) 3. **第二轮去重**:关键点之间去重(使用 LLM) 4. **构建层级关系**:将扁平关键点组织成树形结构(使用 LLM) 5. **组装最终输出**:组装最终输出(纯代码逻辑) ## 系统提示词(System Prompt) ``` 你是内容分析专家,从消费者视角提取核心吸引点。 # 关键点定义 消费者视角下能够引起关注的核心要素 # 维度定义(有限集合 - 二级分类) 关键点必须归属于以下维度体系: ## 维度大类:形式 **细分维度:** 1. **风格** - 关注内容的整体呈现方式、结构、格式等外在特征 2. **关系** - 关注内容中各个实质要素之间的关联、逻辑关系 ## 维度大类:实质 **细分维度:** 1. **元素** - 关注内容中的具体实体、对象、要素等 2. **分类** - 关注对具体元素的抽象、总结、归纳 # 关键点层级关系 关键点之间存在层级关系,形成树形结构: - **层级判断标准**: - 大类 → 小类 - 抽象 → 具体 - 整体 → 局部 - **层级表达**:一级关键点 → 二级关键点 → 三级关键点(支持多层嵌套) - **层级原则**:子关键点是父关键点的细分、具体化或局部 # 核心原则 - 消费者视角:思考"什么吸引了消费者" - 客观性:只陈述事实,不做主观判断 - 视频逐帧分析:需要对视频进行逐帧或关键帧分析,捕捉画面、动作、场景、对话等维度的吸引点 - 二级维度归类:必须明确标注维度大类(形式/实质)和维度细分(风格/关系/元素/分类) - 关键点精准:不超过15个字,只写核心发现(不写如何呈现) - 描述充分:详细解释关键点的含义和价值 - 层级清晰:识别关键点之间的层级关系,构建树形结构 ``` ## 执行步骤 ### Step 1: 识别候选关键点(视频逐帧分析) 基于视频逐帧分析从消费者视角识别所有可能的吸引点,输出扁平化列表。 **Prompt**: ``` # 任务:识别候选关键点(视频逐帧分析,扁平化列表) ## 视频内容 请对视频进行逐帧或关键帧分析。 **重要**:你需要对视频进行逐帧或关键帧分析,从以下维度捕捉吸引点: - **画面内容**:场景、物体、人物、环境等视觉元素中的吸引点 - **动作变化**:人物的动作、物体的运动、场景的转换等动态吸引点 - **时间线索**:视频的时间顺序、节奏变化、关键时间点等时序吸引点 - **视觉细节**:颜色、光影、构图、视觉焦点等视觉吸引点 - **音频信息**(如有):对话、音效、背景音乐等听觉吸引点 ## 字段定义 ### 维度大类 只能是"形式"或"实质" ### 维度细分 - 形式类:只能是"风格"或"关系" - 实质类:只能是"元素"或"分类" ### 关键点 ≤15字核心发现(只写"是什么",不写"如何呈现") ### 描述 - **本质**: 讲清楚这个关键点是什么(吸引点的具体特征、形态、内容等客观信息) - **内容要求**: - 描述吸引点本身的客观特征 - 说明这个吸引点的完整上下文 - 让读者能清晰理解"这个关键点到底是什么" - **严格禁止**: - 不解释为什么吸引 - 不进行价值判断和主观评价 - 不分析效果和影响 ## 维度分类要求(二级分类体系) **维度大类:形式** - **风格**:关注内容的整体呈现方式、结构、格式等外在特征 - **关系**:关注内容中各个实质要素之间的关联、逻辑关系 **维度大类:实质** - **元素**:关注内容中的具体实体、对象、要素等 - **分类**:关注对具体元素的抽象、总结、归纳 ## 输出(JSON) { "候选关键点列表": [ { "候选编号": 1, "维度大类": "形式|实质", "维度细分": "风格|关系|元素|分类", "关键点": "核心发现", "描述": "充分说明" } ] } 要求: - 广泛收集:从视频的各个维度(画面、动作、场景、对话等)广泛收集吸引点 - 客观陈述:只陈述事实,不做主观判断 - 严格按照二级维度体系归类:必须明确标注维度大类(形式/实质)和维度细分(风格/关系/元素/分类) - 编号连续:候选编号从1开始连续编号 - 基于视频:所有关键点必须基于视频的实际内容,不能凭空想象 注意:此步骤输出扁平化列表,后续会构建层级关系 ``` --- ### Step 2: 第一轮去重(与灵感点、目的点去重) 移除与灵感点、目的点重复的关键点,确保关键点≠灵感点≠目的点。 **Prompt**: ``` # 任务:与灵感点、目的点去重 ## 候选关键点 [候选关键点列表] ## 灵感点(创作触发源) [灵感点列表] ## 目的点(创作目标) [目的点列表] ## 去重规则 **核心原则**:关键点与灵感点/目的点重合 → 必须移除关键点 **判断方法**: 1. 角色检查:关键点应是"消费吸引点",不应是"触发源"或"创作目标" 2. 语义去重:移除修饰词,提取核心概念对比 → 核心概念相同 → 移除关键点 **重要**:只要存在重合(角色错误或核心概念相同),就移除关键点 ## 输出(JSON) { "去重分析": [{"去重类型": "与灵感点去重|与目的点去重", "重复候选编号": 1, "重复原因": "说明"}], "保留的候选编号列表": [1, 2, 3] } ``` --- ### Step 3: 第二轮去重(关键点之间去重) 移除本质相同的关键点,每组重复的只保留最能直接反映吸引点的那一个。 **Prompt**: ``` # 任务:关键点之间去重 ## 候选关键点 [候选关键点列表] ## 去重规则 **本质相同的定义**: - 核心发现相同(描述同一个吸引点) - 包含关系(一个是另一个的具体/一般化) - 粒度不同(抽象层级不同,但指向同一吸引点) **判断方法**:移除修饰词 → 提取核心发现 → 核心相同 = 本质相同 → 去重 **保留优先级**(本质相同时): 1. 具体 > 一般 2. 精准 > 模糊 3. 原始 > 衍生 4. 本质 > 形式 ## 输出(JSON) { "去重分析": [{"重复组": [1, 5], "重复原因": "说明", "保留编号": 1, "保留理由": "说明"}], "保留的候选编号列表": [1, 2, 3] } ``` --- ### Step 4: 构建层级关系 将扁平化关键点组织成树形结构,识别关键点之间的层级关系(大类→小类、抽象→具体、整体→局部)。 **Prompt**: ``` # 任务:构建关键点层级关系 ## 关键点列表(扁平化) [关键点列表] ## 层级判断标准 **层级关系定义**: - **大类 → 小类**:一个关键点是另一个关键点的具体类别 - **抽象 → 具体**:一个关键点是另一个关键点的具体表现 - **整体 → 局部**:一个关键点是另一个关键点的组成部分 **判断方法**: 1. 识别父子关系:子关键点是父关键点的细分、具体化或局部 2. 构建树形结构:父节点可以有多个子节点,子节点也可以继续有子节点 3. 确保无循环:不能出现A→B→A的情况 **层级原则**: - 同一层级的关键点应该是并列关系(不存在包含、细分关系) - 不同层级的关键点应该是从属关系(父→子) - 一级关键点(根节点)应该是最抽象、最整体的关键点 - 如果两个关键点没有明确的层级关系,则保持在同一层级 ## 输出(JSON) { "层级分析": [ { "父编号": 1, "子编号列表": [2, 3], "层级关系": "大类→小类|抽象→具体|整体→局部", "关系说明": "说明为什么存在这个层级关系", "子节点原因": { "2": "说明编号2作为子节点的具体原因", "3": "说明编号3作为子节点的具体原因" } } ], "一级关键点编号列表": [1, 4, 5] } 注意: - "一级关键点编号列表":列出所有一级关键点(根节点)的候选编号 - "层级分析":描述所有父子关系,可以有多层嵌套 - "子节点原因":为每个子节点说明为什么它是父节点的子节点(细分、具体化、局部的具体原因) ``` --- ### Step 5: 组装最终输出 将关键点组装成最终格式,包括层级结构和所有字段。