1.修复项目管理页面侧栏收起图标显示问题 2.优化1-n模式章节展开和章节内容生成逻辑和提示词结构 3.更新登录成功公告页面UI样式适配当前主题风格

This commit is contained in:
xiamuceer
2025-12-12 13:45:27 +08:00
parent c7bc5190c4
commit 86b73e85fb
10 changed files with 268 additions and 156 deletions
+1 -1
View File
@@ -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
+21
View File
@@ -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']
+40 -14
View File
@@ -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数组格式输出,不要添加任何其他文字: