1.修复项目管理页面侧栏收起图标显示问题 2.优化1-n模式章节展开和章节内容生成逻辑和提示词结构 3.更新登录成功公告页面UI样式适配当前主题风格
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
# 应用配置
|
||||
# ==========================================
|
||||
APP_NAME=MuMuAINovel
|
||||
APP_VERSION=1.1.0
|
||||
APP_VERSION=1.1.1
|
||||
APP_HOST=0.0.0.0
|
||||
APP_PORT=8000
|
||||
DEBUG=false
|
||||
|
||||
@@ -1128,6 +1128,27 @@ async def generate_chapter_content_stream(
|
||||
previous_content += smart_context['recent_summary'] + "\n\n"
|
||||
if smart_context['recent_full']:
|
||||
previous_content += smart_context['recent_full']
|
||||
|
||||
# 🔧 修复1-n模式重复问题: 提取上一章结尾作为精确衔接点
|
||||
if current_chapter.chapter_number > 1:
|
||||
recent_chapters_parts = smart_context['recent_full'].split('===')
|
||||
if len(recent_chapters_parts) >= 2:
|
||||
# 提取最后一章(recent_full包含最近3章,最后一个是上一章)
|
||||
last_chapter_content = recent_chapters_parts[-1].strip()
|
||||
# 提取结尾500字
|
||||
last_chapter_ending = last_chapter_content[-600:] if len(last_chapter_content) > 600 else last_chapter_content
|
||||
|
||||
previous_content += f"\n\n{'='*50}\n"
|
||||
previous_content += f"【⚠️ 上一章结尾内容(必读,用于衔接)】\n"
|
||||
previous_content += f"以下是上一章(第{current_chapter.chapter_number-1}章)的结尾部分:\n\n"
|
||||
previous_content += last_chapter_ending + "\n"
|
||||
previous_content += f"\n{'='*50}\n"
|
||||
previous_content += f"【本章({current_chapter.chapter_number}章)创作要求】\n"
|
||||
previous_content += f"1. 必须自然承接上述结尾的场景/情节/对话\n"
|
||||
previous_content += f"2. 不要重复叙述上一章已经发生的事件\n"
|
||||
previous_content += f"3. 从新的情节点、新的场景或新的时间点开始\n"
|
||||
previous_content += f"4. 角色状态要延续,不要重新介绍已出场角色\n"
|
||||
previous_content += f"{'='*50}\n"
|
||||
|
||||
# 日志输出统计信息
|
||||
stats = smart_context['stats']
|
||||
|
||||
@@ -604,24 +604,32 @@ class PromptService:
|
||||
- 不能出现与前文矛盾的内容
|
||||
- 自然过渡,避免突兀的跳跃
|
||||
|
||||
2. **情节推进**:
|
||||
- 严格按照本章大纲展开情节
|
||||
- 推动故事向前发展
|
||||
- 保持与全书大纲的一致性
|
||||
2. **🔴 防止内容重复(关键)**:
|
||||
- ⚠️ 仔细阅读【上一章结尾内容】,绝对不要重复叙述已经发生的事件
|
||||
- ⚠️ 本章必须从新的情节点开始,不要重新描述上一章的场景或对话
|
||||
- ⚠️ 如果上一章以某个动作或对话结束,本章应该从紧接着的下一个动作或反应开始
|
||||
- ⚠️ 角色状态应该延续而非重置,不要让角色重新经历上一章已经经历的心理过程
|
||||
- ⚠️ 场景转换要明确,如果是同一场景的延续,要从不同的视角或新的细节切入
|
||||
|
||||
3. **角色一致性**:
|
||||
3. **情节推进**:
|
||||
- 严格按照本章大纲(expansion_plan)展开情节
|
||||
- 推动故事向前发展,不要原地踏步
|
||||
- 保持与全书大纲的一致性
|
||||
- 确保本章有独特的叙事价值,而非前章内容的重复
|
||||
|
||||
4. **角色一致性**:
|
||||
- 符合角色性格设定
|
||||
- 延续角色在前文中的成长和变化
|
||||
- 保持角色关系的连贯性
|
||||
|
||||
4. **写作风格**:
|
||||
5. **写作风格**:
|
||||
- 使用{narrative_perspective}视角
|
||||
- **字数要求:目标{target_word_count}字,不得低于{target_word_count}字,建议控制在{target_word_count}至{max_word_count}字之间**
|
||||
- 语言自然流畅,避免AI痕迹
|
||||
- 体现世界观特色
|
||||
|
||||
5. **承上启下**:
|
||||
- 开头自然衔接上一章结尾
|
||||
6. **承上启下**:
|
||||
- 开头自然衔接上一章结尾(但不重复上一章内容)
|
||||
- 结尾为下一章做好铺垫
|
||||
|
||||
6. **记忆系统使用指南**:
|
||||
@@ -1067,6 +1075,14 @@ class PromptService:
|
||||
- 不要直接写到"解决困境",除非原大纲明确包含解决过程
|
||||
- 如果看到【后一节】的内容,那些是禁区,绝不提前展开
|
||||
|
||||
4. **🔴 相邻章节差异化约束(重要 - 防止内容重复)**:
|
||||
- 每个章节必须有独特的开场方式(不同的场景、时间点、角色状态)
|
||||
- 每个章节必须有独特的结束方式(不同的悬念、转折、情感收尾)
|
||||
- key_events在相邻章节间绝不允许重叠,每章的关键事件必须完全不同
|
||||
- plot_summary必须描述该章的独特内容,不能与其他章节雷同
|
||||
- 即使是同一事件的不同阶段,也要明确区分"前、中、后"的具体内容
|
||||
- 例如:第1章可以是"发现线索",第2章必须是"追踪调查"而非再次"发现线索"
|
||||
|
||||
【任务要求】
|
||||
1. 深度分析该大纲的剧情容量和叙事节奏
|
||||
2. 识别关键剧情点、冲突点和情感转折点(仅限当前大纲范围内)
|
||||
@@ -1081,12 +1097,13 @@ class PromptService:
|
||||
- conflict_type: 冲突类型(如:内心挣扎、人际冲突、环境挑战等)
|
||||
- estimated_words: 预计字数(建议2000-5000字)
|
||||
{scene_instruction}
|
||||
4. 确保章节间:
|
||||
- 衔接自然流畅
|
||||
5. 确保章节间:
|
||||
- 衔接自然流畅(每章从不同的起点开始)
|
||||
- 剧情递进合理(但不超出当前大纲边界)
|
||||
- 节奏张弛有度
|
||||
- 每章都有明确的叙事价值
|
||||
- 每章都有明确且独特的叙事价值(不重复前一章的内容)
|
||||
- 最后一章结束时,剧情发展程度应恰好完成当前大纲描述的内容,不多不少
|
||||
- **关键事件无重叠**:仔细检查相邻章节的key_events,确保没有任何重复或雷同
|
||||
|
||||
【输出格式】
|
||||
请严格按照以下JSON数组格式输出,不要添加任何其他文字:
|
||||
@@ -1154,6 +1171,14 @@ class PromptService:
|
||||
- 放慢叙事节奏,让读者充分体验当前阶段的剧情
|
||||
- 每个章节都应该是当前大纲内容的不同侧面或阶段
|
||||
|
||||
4. **🔴 相邻章节差异化约束(重要 - 防止内容重复)**:
|
||||
- 每个章节必须有独特的开场方式(不同的场景、时间点、角色状态)
|
||||
- 每个章节必须有独特的结束方式(不同的悬念、转折、情感收尾)
|
||||
- key_events在相邻章节间绝不允许重叠,每章的关键事件必须完全不同
|
||||
- plot_summary必须描述该章的独特内容,不能与其他章节雷同
|
||||
- 特别注意与【已生成的前序章节】的差异化,避免重复已有内容
|
||||
- 即使是同一事件的不同阶段,也要明确区分"前、中、后"的具体内容
|
||||
|
||||
【任务要求】
|
||||
1. 深度分析该大纲的剧情容量和叙事节奏
|
||||
2. 识别关键剧情点、冲突点和情感转折点(仅限当前大纲范围内)
|
||||
@@ -1168,11 +1193,12 @@ class PromptService:
|
||||
- conflict_type: 冲突类型(如:内心挣扎、人际冲突、环境挑战等)
|
||||
- estimated_words: 预计字数(建议2000-5000字)
|
||||
{scene_instruction}
|
||||
4. 确保章节间:
|
||||
- 与前面章节衔接自然流畅
|
||||
5. 确保章节间:
|
||||
- 与前面章节衔接自然流畅(每章从不同的起点开始)
|
||||
- 剧情递进合理(但不超出当前大纲边界)
|
||||
- 节奏张弛有度
|
||||
- 每章都有明确的叙事价值
|
||||
- 每章都有明确且独特的叙事价值(不重复前面章节的内容)
|
||||
- **关键事件无重叠**:仔细检查本批次章节的key_events,以及与前序章节的key_events,确保没有任何重复或雷同
|
||||
|
||||
【输出格式】
|
||||
请严格按照以下JSON数组格式输出,不要添加任何其他文字:
|
||||
|
||||
Reference in New Issue
Block a user