NarratoAI/app/services/prompts/documentary/narration_generation.py

114 lines
4.4 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 : narration_generation.py
@Author : viccy同学
@Date : 2025/1/7
@Description: 通用短视频解说文案生成提示词优化版v2.0
"""
from ..base import TextPrompt, PromptMetadata, ModelType, OutputFormat
class NarrationGenerationPrompt(TextPrompt):
"""通用短视频解说文案生成提示词"""
def __init__(self):
metadata = PromptMetadata(
name="narration_generation",
category="documentary",
version="v2.0",
description="根据视频帧分析结果生成病毒式传播短视频解说文案,适用于各类题材内容",
model_type=ModelType.TEXT,
output_format=OutputFormat.JSON,
tags=["短视频", "解说文案", "病毒传播", "文案生成", "通用模板"],
parameters=["video_frame_description"]
)
super().__init__(metadata)
self._system_prompt = "你是一名资深的短视频解说导演和编剧,深谙病毒式传播规律和用户心理,擅长创作让人停不下来的高粘性解说内容。"
def get_template(self) -> str:
return """作为一名短视频解说导演,你需要深入理解病毒式传播的核心规律。以下是爆款短视频解说的核心技巧:
<viral_techniques>
## 黄金三秒法则
开头 3 秒决定用户是否继续观看,必须立即抓住注意力。
## 十大爆款开头钩子类型:
1. **悬念式**"你绝对想不到接下来会发生什么..."
2. **反转式**"所有人都以为...但真相却是..."
3. **数字冲击**"仅用 3 步/5 分钟/1 个技巧..."
4. **痛点切入**"还在为...发愁吗?"
5. **惊叹式**"太震撼了!这才是..."
6. **疑问引导**"为什么...?答案让人意外"
7. **对比冲突**"新手 VS 高手,差距竟然这么大"
8. **秘密揭露**"内行人才知道的..."
9. **情感共鸣**"有多少人和我一样..."
10. **颠覆认知**"原来我们一直都错了..."
## 解说文案核心要素:
- **节奏感**:短句为主,控制在 15-20 字/句,朗朗上口
- **画面感**:用具体动作和细节描述,避免抽象概念
- **情绪起伏**:制造期待、惊喜、满足的情绪曲线
- **信息密度**:每 5-10 秒一个信息点,保持新鲜感
- **口语化**:像朋友聊天,避免书面语和专业术语
- **留白艺术**:关键时刻停顿,让画面说话
## 结构范式:
【开头】钩子引入0-3秒→ 【发展】情节推进3-30秒→ 【高潮】惊艳时刻30-45秒→ 【收尾】强化记忆/引导互动45-60秒
</viral_techniques>
<video_frame_description>
${video_frame_description}
</video_frame_description>
现在,请基于 <video_frame_description> 中的视频内容,创作一段符合病毒式传播规律的解说文案。
<creation_guide>
**创作步骤:**
1. 分析视频主题和核心亮点
2. 选择最适合的开头钩子类型
3. 提炼每个画面的最吸引人的细节
4. 设计情绪曲线和节奏变化
5. 确保解说与画面高度同步
**必须遵循的创作原则:**
- 开头 3 秒必须使用钩子技巧,立即抓住注意力
- 每句话控制在 15-20 字,确保节奏明快
- 用动词和具体细节描述,增强画面感
- 制造悬念和期待,让用户想看到最后
- 在关键视觉高潮处,适当留白让画面说话
- 结尾呼应开头,强化记忆点或引导互动
</creation_guide>
请使用以下 JSON 格式输出:
<output>
{
"items": [
{
"_id": 1,
"timestamp": "00:00:05,390-00:00:10,430",
"picture": "画面描述",
"narration": "解说文案"
}
]
}
</output>
<restriction>
1. 只输出 JSON 内容,不要输出其他任何说明性文字
2. 解说文案的语言使用简体中文
3. 严禁虚构画面,所有画面描述只能从 <video_frame_description> 中提取
4. 严禁虚构时间戳,所有时间戳只能从 <video_frame_description> 中提取
5. 开头必须使用钩子技巧,遵循黄金三秒法则
6. 每个片段的解说文案要与画面内容精准匹配
7. 保持解说的连贯性、故事性和节奏感
8. 控制单句长度在 15-20 字,确保口语化表达
9. 在视觉高潮处适当精简文案,让画面自己说话
10. 整体风格要符合当前主流短视频平台的受欢迎特征
</restriction>"""