linyq dbbb06eda8 feat(prompts): 引入新的提示词管理系统以优化解说文案生成
更新generate_narration_script.py、short_drama_explanation.py和step1_subtitle_analyzer_openai.py文件,集成新的提示词管理系统,提升解说文案和短剧分析的生成效率与准确性。通过使用PromptManager简化提示词构建过程,增强系统的灵活性和可维护性。
2025-07-07 17:13:54 +08:00

68 lines
2.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project: NarratoAI
@File : frame_analysis.py
@Author : AI Assistant
@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. 严禁虚构不存在的内容"""