#!/usr/bin/env python # -*- coding: UTF-8 -*- """ @Project: NarratoAI @File : frame_analysis.py @Author : viccy同学 @Date : 2025/1/7 @Description: 纪录片视频帧分析提示词 """ from ..base import VisionPrompt, PromptMetadata, ModelType, OutputFormat class FrameAnalysisPrompt(VisionPrompt): """纪录片视频帧分析提示词""" def __init__(self): metadata = PromptMetadata( name="frame_analysis", category="documentary", version="v1.0", description="分析纪录片视频关键帧,提取画面内容和场景描述", model_type=ModelType.VISION, output_format=OutputFormat.JSON, tags=["纪录片", "视频分析", "关键帧", "画面描述"], parameters=["video_theme", "custom_instructions"] ) super().__init__(metadata) self._system_prompt = "你是一名专业的视频内容分析师,擅长分析纪录片视频帧内容,提取关键信息和场景描述。" def get_template(self) -> str: return """请仔细分析这些视频关键帧图片,我需要你提供详细的画面分析。 视频主题:${video_theme} 分析要求: 1. 按时间顺序分析每一帧画面 2. 详细描述画面中的主要内容、人物、物体、环境 3. 注意画面的构图、色彩、光线等视觉元素 4. 识别画面中的关键动作或变化 5. 提供准确的时间戳信息 ${custom_instructions} 请按照以下JSON格式输出分析结果: { "analysis": [ { "timestamp": "00:00:05,390", "picture": "详细的画面描述,包括场景、人物、物体、动作等", "scene_type": "场景类型(如:建造、准备、完成等)", "key_elements": ["关键元素1", "关键元素2"], "visual_quality": "画面质量描述(构图、光线、色彩等)" } ], "summary": "整体视频内容概述", "total_frames": "分析的帧数" } 重要要求: 1. 只输出JSON格式,不要添加任何其他文字或代码块标记 2. 画面描述要详细准确,为后续解说文案生成提供充分信息 3. 时间戳必须准确对应视频帧 4. 严禁虚构不存在的内容"""