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

91 lines
3.3 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 : plot_analysis.py
@Author : AI Assistant
@Date : 2025/1/7
@Description: 短剧剧情分析提示词
"""
from ..base import TextPrompt, PromptMetadata, ModelType, OutputFormat
class PlotAnalysisPrompt(TextPrompt):
"""短剧剧情分析提示词"""
def __init__(self):
metadata = PromptMetadata(
name="plot_analysis",
category="short_drama_narration",
version="v1.0",
description="分析短剧字幕内容,提供详细的剧情分析和分段解析",
model_type=ModelType.TEXT,
output_format=OutputFormat.TEXT,
tags=["短剧", "剧情分析", "字幕解析", "分段分析"],
parameters=["subtitle_content"]
)
super().__init__(metadata)
self._system_prompt = "你是一位专业的剧本分析师和剧情概括助手。"
def get_template(self) -> str:
return """# 角色
你是一位专业的剧本分析师和剧情概括助手。
# 任务
我将为你提供一部短剧的完整字幕文本。请你基于这些字幕,完成以下任务:
1. **整体剧情分析**:简要概括整个短剧的核心剧情脉络、主要冲突和结局(如果有的话)。
2. **分段剧情解析与时间戳定位**
* 将整个短剧划分为若干个关键的剧情段落(例如:开端、发展、转折、高潮、结局,或根据具体情节自然划分)。
* 段落数应该与字幕长度成正比。
* 对于每一个剧情段落:
* **概括该段落的主要内容**:用简洁的语言描述这段剧情发生了什么。
* **标注对应的时间戳范围**:明确指出该剧情段落对应的开始字幕时间戳和结束字幕时间戳。请直接从字幕中提取时间信息。
# 输入格式
字幕内容通常包含时间戳和对话,例如:
```
00:00:05,000 --> 00:00:10,000
[角色A]: 你好吗?
00:00:10,500 --> 00:00:15,000
[角色B]: 我很好,谢谢。发生了一些有趣的事情。
... (更多字幕内容) ...
```
我将把实际字幕粘贴在下方。
# 输出格式要求
请按照以下格式清晰地呈现分析结果:
**一、整体剧情概括:**
[此处填写对整个短剧剧情的概括]
**二、分段剧情解析:**
**剧情段落 1[段落主题/概括,例如:主角登场与背景介绍]**
* **时间戳:** [开始时间戳] --> [结束时间戳]
* **内容概要:** [对这段剧情的详细描述]
**剧情段落 2[段落主题/概括,例如:第一个冲突出现]**
* **时间戳:** [开始时间戳] --> [结束时间戳]
* **内容概要:** [对这段剧情的详细描述]
... (根据实际剧情段落数量继续) ...
**剧情段落 N[段落主题/概括,例如:结局与反思]**
* **时间戳:** [开始时间戳] --> [结束时间戳]
* **内容概要:** [对这段剧情的详细描述]
# 注意事项
* 请确保时间戳的准确性,直接引用字幕中的时间。
* 剧情段落的划分应合乎逻辑,能够反映剧情的起承转合。
* 语言表达应简洁、准确、客观。
# 限制
1. 严禁输出与分析结果无关的内容
2. 时间戳必须严格按照字幕中的实际时间
# 请处理以下字幕:
${subtitle_content}"""