当前位置: 首页 > news >正文

从零打造 AI 小说创作平台(五):AI 创作流水线(上)——六阶段编排设计

从零打造 AI 小说创作平台(五):AI 创作流水线(上)——六阶段编排设计

系列:从零打造 AI 小说创作平台 NovelForge
篇章:第 5 篇 / 共 10 篇
关键词:LangGraph、StateGraph、Human-in-the-loop、阶段流转、状态持久化


前言

这是整个项目最核心的模块。六阶段创作流水线让用户从一个想法出发,经过结构化的引导,最终生成完整的小说章节。每个阶段都有 AI 辅助,但用户始终保持决策权。


一、六阶段流程

阶段 1: 基础设定 (Foundation) ↓ 用户确认 阶段 2a: 总大纲 (Macro Outline) ↓ 用户确认 阶段 2b: 分卷大纲 (Volume Outline) ↓ 用户确认 阶段 2c: 章节小纲 (Chapter Outline) ↓ 用户确认 阶段 3: 情节校验 (Plot Validation) ↓ 用户确认/修改 阶段 4: 提示词组装 (Prompt Composer) [自动] ↓ 阶段 5: 章节写作 (Chapter Writer) [流式] ↓ 阶段 6: 修订优化 (Revise) ↓ 用户确认 → 下一章 / 完成

二、架构决策:Service 层 + LangGraph

为什么不用纯 LangGraph interrupt?

原始设计是用 LangGraph 的interrupt_after+AsyncPostgresSaver实现 Human-in-the-loop。实际开发中发现几个问题:

  1. 前端需要细粒度控制:每个阶段的 AI 生成需要独立的 SSE 端点,用户可以选择"AI 生成"或"手动编辑"
  2. 状态需要业务层可见:前端需要随时查询当前阶段和历史数据
  3. 阶段间可能有复杂交互:比如基础设定更新后需要同步到项目表

最终方案:

职责
Service 层会话生命周期、阶段流转、状态持久化(JSONB)
LangGraph各阶段内部的 AI 调用编排(节点连接、条件路由)
独立 SSE 端点每个阶段的 AI 生成

三、PipelineState 定义

classPipelineState(TypedDict,total=False):# 基本信息user_id:strproject_id:strsession_id:strcurrent_stage:str# 阶段 1: 基础设定foundation:Optional[FoundationState]# 阶段 2: 大纲macro_outline:Optional[OutlineItem]volume_outlines:Optional[List[OutlineItem]]chapter_outlines:Optional[List[OutlineItem]]# 阶段 3: 情节校验validation_result:Optional[ValidationResult]# 阶段 4: 提示词prompt:Optional[PromptData]# 阶段 5: 章节写作draft:Optional[DraftData]# 阶段 6: 修订revision:Optional
http://www.gsyq.cn/news/1354101.html

相关文章:

  • 从零到一:手把手教你用SpringBoot+MyBatis搭建企业级员工管理系统(附完整源码)
  • KRTS运行时部署实战:如何将开发好的实时程序部署到目标工控机?
  • LIO-SAM建图后,如何用liorf_localization让你的机器人‘找回自己’?一份重定位配置避坑指南
  • PX4飞控的‘眼睛’怎么选?深度对比T265、UWB与动捕(MOCAP)的ROS集成方案与实战心得
  • 避坑指南:在Windows 11上搞定ADSP-21569的SigmaStudio 4.6图形化开发环境
  • 3步精通Windows右键菜单管理:ContextMenuManager深度指南
  • 如何一键解锁QQ音乐加密格式?这款Mac专属工具让你轻松实现音乐自由
  • ESP32-WROOM-32E和PICO-D4选哪个?手把手教你根据引脚差异做硬件选型
  • 避开C++编译地狱:为什么我推荐用Python为3DSlicer 5.6.0开发扩展?
  • 工业视觉实战:手把手教你用YOLOv8训练红外/热成像灰度图(附完整代码修改)
  • MacBook上玩转国民技术N32G430:从零搭建ARM开发环境(含pyocd烧录避坑指南)
  • ROBOMASTER UI绘制实战:从结构体定义到串口发送,一步步打造自定义小地图
  • 跨平台音乐加密文件解密解决方案:Unlock Music Electron技术实现深度解析
  • Mamba-2架构与LaCT并行计算技术解析
  • ENVI FLAASH大气校正报错?别慌,试试这个‘先裁剪再校正’的野路子
  • 模块型OLT跟光模块有什么区别?
  • 为什么ChatGPT会推荐某些供应商?聊聊外贸GEO背后的逻辑
  • 探讨有口碑的XC61CC2702高精度低功耗电压检测,哪家性价比高 - myqiye
  • 别再手动改配置了!一个Docker命令搞定Nextcloud在线编辑(OnlyOffice集成保姆级教程)
  • STM32F103 ADC多通道采样,用DMA搬运数据到底有多省心?一个完整工程带你上手
  • 深聊靠谱的建筑机电安装工程专业承包一级资质企业,费用怎么算 - mypinpai
  • RIS波束校准技术在6G ISAC系统中的关键作用
  • CAN总线电压测试避坑指南:用示波器实测显性/隐性电平,别再被CAN_H和CAN_L的命名误导了
  • 2026靠谱的汽车大屏导航安装店铺排名,为你推荐性价比高的服务 - myqiye
  • NVIDIA Profile Inspector终极指南:深度解锁显卡隐藏性能与专业游戏优化
  • 上海婚介所选购指南,梅园婚恋资源丰富度成亮点 - myqiye
  • 从QPLL与CPLL选型到线速计算:一份给Xilinx GTY新手的时钟配置速查手册
  • MDK-7526是什么?基于VHL配体的PROTAC核心组件,泛素连接酶募集剂
  • QMCDecode终极指南:3步解锁QQ音乐加密文件的完整教程 [特殊字符]
  • CH347玩转双模式:一篇教程搞定JTAG和SWD对STM32的调试与下载