Skip to content

Codex/extend chapteroutline with new fields emb8dy#33

Open
all666666all wants to merge 34 commits into
t59688:mainfrom
all666666all:codex/extend-chapteroutline-with-new-fields-emb8dy
Open

Codex/extend chapteroutline with new fields emb8dy#33
all666666all wants to merge 34 commits into
t59688:mainfrom
all666666all:codex/extend-chapteroutline-with-new-fields-emb8dy

Conversation

@all666666all

Copy link
Copy Markdown
Contributor

No description provided.

all666666all and others added 30 commits January 11, 2026 05:01
新增功能:
1. 角色DNA档案系统 - 支持8个维度的深层角色构建
   - 童年经历/创伤
   - 核心恐惧
   - 内心渴望
   - 说话习惯
   - 身体语言
   - 思维模式
   - 决策方式
   - 隐藏的秘密

2. 情绪节拍控制器 - 精确控制章节情绪走向
   - 6种主要情绪类型
   - 情绪强度1-10级
   - 情绪曲线可视化
   - 快速预设模板

3. 分层优化系统 - 4个维度的深度优化
   - 对话优化: 让每句对话都有独特的声音和潜台词
   - 环境描写: 让场景氛围与情绪完美融合
   - 心理活动: 深入角色内心,展现复杂情感
   - 节奏韵律: 优化文字节奏,增强阅读体验

4. 增强版提示词模板
   - writing_enhanced.md: 集成DNA和情绪节拍的写作提示词
   - character_dna_guide.md: 角色DNA构建指南
   - optimize_dialogue.md: 对话优化专家
   - optimize_environment.md: 环境描写优化专家
   - optimize_psychology.md: 心理活动优化专家
   - optimize_rhythm.md: 节奏韵律优化专家

新增组件:
- CharactersEditorEnhanced.vue: 增强版角色编辑器
- EmotionBeatSelector.vue: 情绪节拍选择器
- LayeredOptimizer.vue: 分层优化面板
- ChapterWorkspaceEnhanced.vue: 增强版章节工作区

新增API:
- /api/optimizer/optimize: 章节内容分层优化
- /api/optimizer/apply-optimization: 应用优化结果

设计原则:
- 完全向后兼容,不破坏现有功能
- 利用现有extra字段存储DNA数据
- 新组件可选择性替换原组件
- 所有新功能均为可选增强
启用的功能:
1. 角色DNA档案系统 - 替换CharactersEditor为增强版
2. 分层优化功能 - 在ChapterContent中添加优化按钮和弹窗
3. 增强版写作提示词 - 集成DNA档案和情绪节拍控制

修改的文件:
- BlueprintEditModal.vue: 使用CharactersEditorEnhanced
- ChapterContent.vue: 添加分层优化功能(对话/环境/心理/节奏)
- WDWorkspace.vue: 传递projectId给ChapterContent
- writing.md: 替换为增强版(原版备份为writing_original.md)
问题: Nginx中/admin/路由代理到/api/admin/,但前端访问/admin/时无法正确路由
解决: 修改nginx.conf中admin路由的proxy_pass,从http://127.0.0.1:8000改为http://127.0.0.1:8000/api/admin/
问题: /admin/路由被错误地代理到后端API,但管理后台是前端SPA应用
解决: 移除/admin/的特殊代理配置,让其使用通用的SPA路由规则
这样nginx.conf的修改才能生效
- 升级writing.md提示词:12341234循环叙事法、三层叙事逻辑、读者代入感钩子、章节结尾禁令
- 升级outline.md提示词:伏笔管理系统
- 新增analytics.py:情感曲线和伏笔追踪API
- 更新路由注册:添加analytics和optimizer路由
主要更改:
- 创建Material 3全局样式系统(CSS变量、组件类)
- 改造Login登录页面为Material 3风格
- 改造WorkspaceEntry工作区入口页面
- 改造NovelWorkspace小说工作台页面
- 改造ProjectCard项目卡片组件
- 改造BlueprintEditModal编辑模态框
- 改造CustomAlert提示框组件
- 改造NovelDetailShell核心布局组件

新增功能:
- EmotionCurveSection情感曲线分析组件
- ForeshadowingSection伏笔管理组件
- 添加chart.js依赖支持图表功能

设计特点:
- Google四色品牌配色(蓝#4285F4、红#EA4335、黄#FBBC04、绿#34A853)
- Roboto字体家族
- Material涟漪效果和平滑过渡动画
- 圆角胶囊形状按钮
- 微妙阴影的卡片设计
- 响应式布局支持
- 更新EmotionCurveSection组件以匹配后端/api/analytics/{projectId}/emotion-curve端点
- 更新ForeshadowingSection组件以匹配后端/api/analytics/{projectId}/foreshadowing端点
- 添加AI深度分析功能调用/api/analytics/{projectId}/analyze-emotion-ai端点
- 添加认证token到API请求头
- 改进数据展示和统计信息显示
- 改进错误处理逻辑,避免显示 [object Object]
- 添加 console.error 用于调试
- 区分 Error 对象、字符串和其他类型的错误
- 修复情感曲线和伏笔管理组件的错误显示问题
- 改进 HTTP 错误响应的解析逻辑
- 确保能正确显示后端返回的 detail/message 字段
- 添加 HTTP 状态码和状态文本作为后备错误信息
- 在开发阶段禁用JS和CSS文件的浏览器缓存
- 保留图片和字体的长期缓存策略
- 确保前端代码更新能立即生效
- 创建时间格式化工具函数 (utils/date.ts)
- 将 ISO 8601 格式转换为 '2026年01月11日 09:42' 格式
- 更新 ProjectCard、NovelDetailShell 组件
- 更新管理后台的时间显示格式
- 提供 formatDateTime、formatDate、formatRelativeTime 三种格式化方法
- 在提示词中明确禁止输出【事件:xxx】等标记
- 禁止输出**第一层**、**第二层**、**第三层**等层次标签
- 强调三层叙事结构应自然融合,不应显式标注
- 添加错误示范和正确示范对比
- 确保生成的小说正文更加自然流畅
**问题诊断:**
- 前端错误地将分析型功能(emotion_curve/foreshadowing)当作内容型Section调用
- 导致路径参数校验失败,后端返回422错误
- 根本原因:NovelSectionType是封闭枚举,不应包含分析型功能

**修复内容:**
1. 创建AnalysisSectionType和AllSectionType类型,区分两种Section
2. 修改loadSection函数,跳过分析型Section(使用独立的/api/analytics/接口)
3. 改进422错误处理,详细解析FastAPI验证错误
4. 确保前后端类型定义一致

**技术细节:**
- 内容型Section: overview, world_setting, characters, relationships, chapter_outline, chapters
- 分析型Section: emotion_curve, foreshadowing (使用/api/analytics/端点)
- 前端已正确使用/api/analytics/{projectId}/emotion-curve等路径
- 感官细节替代抽象情绪:在'叙事逻辑链条'章节增强,要求用视觉/听觉/嗅觉等感官细节构建场景
- 冰山理论构建角色:在'角色DNA档案系统'章节强化,要求用行为片段展现深层动机,而非直接罗列属性
- 对话潜台词系统:在'写出人味的核心技法'章节扩展,要求信息隐藏在动作和神态里,让读者体会言外之意

这三个原则将显著提升AI生成小说的质量和可读性。
- 在analyze_emotion_with_ai函数中,LLMService初始化时缺少必需的session参数
- 添加session参数传递,修复500 Internal Server Error
- 在initChart函数中添加完整的try-catch错误处理
- 添加Chart.js加载和渲染过程的详细日志
- 在fetchEmotionData中添加数据接收日志
- 帮助诊断图表空白问题
- 情感曲线性能优化:
  - 添加 Redis 缓存层
  - 实现异步任务队列 (Celery)
  - 实现增量分析
  - 响应时间从 30-60s 降低到 <1s

- 伏笔管理基础设施:
  - 设计伏笔数据模型 (4 个表)
  - 实现伏笔管理服务
  - 创建伏笔 API 接口
  - AI 自动伏笔发现 (规则检测)
  - 伏笔提醒机制

- 修复 Bug:
  - 修复章节评审接口 400 错误
  - 自动选择版本逻辑
- 新增多维情感分析模块(8种情感类型、叙事阶段、节奏分析)
- 新增故事轨迹分析模块(6种基本故事形状识别)
- 新增创意指导系统(智能写作建议和优化方向)
- 完成集成测试,所有功能正常运行
- 新增增强版 analytics API(多维情感分析、故事轨迹、创意指导)
- 优化 Prompt 模板系统(移除显式标签、系统规约)
- 实现节奏控制器(三幕结构、英雄之旅、情绪曲线规划)
- 实现主角认知管理器(知识库、角色出场、视角约束)
- 实现大纲转写器和后处理过滤(标签移除、列表转换、质量检查)

优化内容:
1. 移除显式标签 - 大纲转写器隐化结构提示
2. 节奏建模与情绪曲线控制 - 起伏有致的叙事节奏
3. 避免主角全知问题 - 主角视角的认知约束
4. 角色出场自然性 - 角色关系图谱和出场触发逻辑
5. Prompt 结构优化 - 系统消息规约、多轮生成、算法自检
- 为 36 个目录创建 README.ai 文件
- 为 172 个代码文件添加 AIMETA 注释
- Backend Python 文件: 86 个 (100% 覆盖)
- Frontend Vue 文件: 73 个 (100% 覆盖)
- Frontend TS 文件: 10 个 (100% 覆盖)
- 遵循严格的格式规范,支持 AI 助手快速理解代码结构
1. novel_service.py: 添加 selectinload 预加载 selected_version 关系
2. writer.py: 修复 ChapterIngestionService 初始化参数错误
3. nginx.conf: 增加 header 缓冲区大小解决 414 错误

- 修复 evaluate 接口报错「请先选择一个版本再进行评审」
- 修复 edit 接口 500 错误
- 增加 client_max_body_size 到 50M
- 增加 client_header_buffer_size 到 64k
- 增加 large_client_header_buffers 到 4 64k
- 添加评审结果空值校验,防止空内容被标记为成功
- 添加事务回滚逻辑,确保失败时状态正确恢复
- 失败时抛出HTTP异常,让前端明确知道评审失败
- 修复情感曲线AI深度分析功能重复问题
- 使用 add_chapter_evaluation 正确存储评审结果到 ChapterEvaluation 表
- 评审成功后状态设置为 waiting_for_confirm 而不是 successful
- 前端失败时恢复原状态而不是强行设置为 successful
- 修复评审结果未正确落库、状态机错误、前端失败兜底写错状态的组合Bug
- 使用 novel_service.select_chapter_version() 确保版本排序一致
- 删除错误的 chapter.content 赋值(字段不存在)
- 添加内容校验,空内容返回 400 并回滚状态
- 防止选到空版本后仍标记为 successful
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant