Skip to content

ydsgangge-ux/dramatica-flow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dramatica-Flow

叙事智能驱动的 AI 长篇小说创作系统

让 AI 理解故事,而不是只会写文字。

Python 3.11+ FastAPI License: MIT

快速开始 · 核心能力 · 架构设计 · 功能演示 · API 文档


Dramatica Theory   5-Layer Agent Pipeline   Multi-thread Narrative   LLM Support

世界观配置

世界观构建 — 可视化配置角色、势力、地点与世界规则


Dramatica-Flow 是什么?

Dramatica-Flow 是一款面向网文作者和专业写作者的 AI 辅助长篇小说创作平台。它不是简单的"AI 写字机器",而是基于 Dramatica 叙事理论构建的智能创作系统——

系统将小说创作抽象为可量化、可追踪、可审计的工程流程,通过 因果链管理、情感弧线追踪、伏笔系统、关系网络等核心机制,确保 AI 生成的内容具有真正的叙事逻辑和内在一致性,而非松散的事件堆砌。

与普通 AI 写作工具的核心差异

普通 AI 写作工具 Dramatica-Flow
叙事逻辑 逐段生成,缺乏全局因果 强制建模因果链:每个事件必须回答"因为什么→发生了什么→导致了什么"
角色一致性 容易 OOC(性格崩塌) 信息边界系统:角色只知道亲眼所见/亲耳所闻,杜绝信息越界
长篇连贯性 前后矛盾频发 世界状态快照 + 真相文件:章节间状态累积,永不丢失
伏笔管理 伏笔生命周期:埋设 → 追踪 → 预警 → 回收,超期自动提醒
质量控制 无审计 三层审计机制:规则验证 → 叙事审计 → 修订闭环
多线叙事 全局时间轴:多线程调度、跨线程感知、支线掉线预警

核心能力

1. 因果链引擎 — 故事的骨架

每个事件都遵循严格的因果结构:

Ch.1: 慕雪当众退婚
├── 因(Cause)     :慕家认为废灵根林尘无法带来家族利益
├── 事(Event)     :林尘蒙受公开羞辱
├── 果(Effect)    :林尘立下三年之约
└── 决(Decision)  :林尘 → 独闯青峰山,拼死修炼

AI 写作时强制注入因果链上下文,确保每一章都是前因的自然延续,而非随意拼接的独立场景。

2. 智能伏笔系统 — 不被遗忘的承诺

自动管理四种叙事承诺:

类型 说明 示例
伏笔 (Foreshadow) 暗线铺垫 第3章提及的神秘玉佩,第28章揭示身世
承诺 (Promise) 对读者的承诺 "三年之约"必须在三年内兑现
悬念 (Mystery) 未解之谜 密室中消失的灵力到底去了哪里
冲突 (Conflict) 未解决矛盾 两大势力的暗战何时爆发

系统自动追踪伏笔状态,超期未回收时发出预警,杜绝"挖坑不填"。

3. 情感弧线 — 可视化的角色成长

为每个角色建立 1-10 级的情感强度追踪:

林尘:屈辱(9) → 愤怒(8) → 震惊(7) → 坚定(7) → 自信(6) → 恐惧(9) → 坚定(10)
                                                                    ↑
                                                               角色弧线完成

支持 Dramatica 双层需求模型:外部目标(可见的、可量化的)与 内在渴望(角色自己不自知的)。

4. 角色关系网络 — 动态演变的人际图谱

关系强度从 -100(死敌)到 +100(生死同盟) 连续变化,每次事件后自动更新:

# 关系变化示例
"林尘-慕雪:+20,慕雪看到林尘为救她不惜受伤"
"林尘-萧天:-30,萧天暗中勾结魔族被揭穿"

5. 多线叙事 — 全局时间轴调度

支持 主线、支线、并行线、闪回线 四种叙事线程,每种线程拥有独立的:

  • 视角角色与角色群
  • 目标弧线与成长轨迹
  • 篇幅权重(自动调整字数分配)
  • 掉线预警(超过 5 章未活跃自动提醒)

全局时间轴记录"谁在什么时候,在什么地方,做了什么",是多线叙事的"上帝视角"账本。

6. 信息边界 — 杜绝全知视角污染

每个角色维护独立的信息记录:

@dataclass
class KnownInfoRecord:
    character_id: str      # 谁知道的
    info_key: str          # 什么信息
    content: str           # 具体内容
    learned_in_chapter: int  # 在哪一章知道的
    source: Literal["witnessed", "hearsay", "deduced", "document"]  # 信息来源

角色不能知道他没见过的事 —— 这是 Dramatica-Flow 与其他 AI 写作工具最本质的区别之一。


架构设计

五层 Agent 写作管线

快照备份
    ↓
① 建筑师 Agent ── 规划蓝图(因果链上下文 + 前情摘要 + 伏笔状态)
    ↓
② 写手 Agent ── 生成正文 + 写后结算表
    ↓
③ 写后验证器 ── 零 LLM 硬规则检测(字数、禁忌词、格式)
    ↓ error → spot-fix
④ 审计员 Agent ── 叙事质量审计(temperature=0,确保客观)
    ↓ critical → 修订者 Agent → 再审(最多 2 轮闭环)
⑤ 因果链提取 ── 从正文中提取因果关系 → 写入世界状态
    ↓
摘要生成 ── 章节摘要注入真相文件
    ↓
状态结算 ── 位置/情感/关系/伏笔 → world_state.json

Dramatica 理论集成

系统内置完整的 Dramatica 角色职能体系

职能 英文 叙事作用
主角 Protagonist 推动故事前进的核心力量
反派 Antagonist 与主角目标对立的对抗者
冲击者 Impact Character 改变主角认知的关键人物
守护者 Guardian 导师/引导者
阻碍者 Contagonist 表面帮助实则拖延
伙伴 Sidekick 忠诚的支持者
怀疑者 Skeptic 质疑与反面声音

以及 11 种戏剧功能节拍:建立、激励事件、转折点、中点、危机、高潮、揭示、决策、后果、过渡。

技术栈

┌──────────────────────────────────────────────────┐
│                   Web UI 层                       │
│   现代化 SPA · 7 大功能模块 · 时间线泳道图        │
├──────────────────────────────────────────────────┤
│                 REST API 层                       │
│   FastAPI · 50+ 端点 · Pydantic 数据校验          │
├──────────────────────────────────────────────────┤
│               Agent 管线层                        │
│   建筑师 · 写手 · 审计员 · 修订者 · 摘要生成      │
├──────────────────────────────────────────────────┤
│               叙事引擎层                          │
│   因果链 · 伏笔系统 · 情感弧线 · 关系网络         │
│   多线叙事 · 信息边界 · 世界状态                   │
├──────────────────────────────────────────────────┤
│               LLM 抽象层                          │
│   DeepSeek API · Ollama 本地模型 · OpenAI 兼容    │
└──────────────────────────────────────────────────┘

功能演示

Web UI — 一站式创作管理台

启动服务后访问 http://localhost:8766,获得完整的可视化管理界面:

7 大功能模块:

模块 功能
总览面板 书籍进度、章节统计、伏笔状态一览
故事配置 角色/势力/地点/世界规则的创建与编辑
大纲管理 AI 生成故事大纲、按幕筛选、序列规划
章节创作 AI 写作、人工修订、审计结果查看
故事追踪 因果链、情感弧线、伏笔、关系网络实时可视化
时间线 多线叙事泳道图、角色活动追踪、缩放浏览
系统设置 LLM 后端切换、模型配置

世界观配置

在 Web UI 中可视化构建故事世界——角色设定(Dramatica 角色职能、双层需求、性格锁定)、势力关系、地点网络、世界规则,为 AI 写作提供完整的世界观上下文。

世界观配置详情

大纲规划

基于 Dramatica 理论自动生成三幕结构大纲,支持按幕筛选、序列规划、戏剧功能节拍标注。大纲完成后可一键生成逐章章纲,明确每章的叙事任务和情感目标。

大纲规划

大纲续写联动

故事大纲和章节大纲支持联动续写:当故事大纲续写了新序列后,章节大纲续写时会自动检测尚未展开的序列,优先基于新序列的叙事目标、关键事件和结尾钩子来规划章节内容,而非盲目自滚动。当所有序列均已覆盖时,自动回退为基于已有章纲尾部的自由续写模式。

AI 写作

在大纲和章纲的基础上,AI 根据因果链上下文、前情摘要、伏笔状态自动生成章节正文。写作完成后系统自动提取结算表(角色位置/情感变化/关系变化/伏笔开闭),更新世界状态。

AI 写作界面

审计与修订

每章写作完成后自动触发三层审计:规则验证(字数/禁忌词/格式硬规则)→ 叙事审计(因果一致性/角色 OOC/伏笔遗漏等维度)→ 修订闭环(critical 问题自动修订,最多 2 轮)。

审计结果

时间线泳道图

独立的时间线页面(/timeline)提供:

  • 多线程泳道:每条叙事线程独立泳道,事件按章节分布
  • 章节范围滑块:拖动滑块聚焦指定章节区间,快速导航长篇
  • 迷你总览热力条:顶部显示全篇事件密度,一键跳转到感兴趣的区域
  • 同章事件错开:同一章节的多个事件自动垂直错开,避免重叠
  • 关键节点过滤:按事件类型(伏笔埋设/回收、情感转折等)筛选高亮
  • 角色活动追踪:显示角色在各章节的位置和行动
  • 缩放控制:自由调整泳道密度,适配不同篇幅
  • 幕结构背景:三幕结构的视觉分区

多线叙事时间线

多线叙事时间线 — 泳道图展示各线程事件分布、角色活动与关键节点


快速开始

环境要求

  • Python >= 3.11(下载地址,安装时请勾选 "Add Python to PATH")
  • LLM 后端(二选一):DeepSeek API 密钥 或 Ollama 本地环境

安装

# 克隆项目
git clone https://github.com/ydsgangge-ux/dramatica-flow.git
cd dramatica-flow

一键安装(推荐):

系统 操作
Windows 双击 install.bat
Linux / macOS bash install.sh

脚本会自动完成以下所有步骤:

  • 检查 Python 版本(低于 3.11 会提示下载)
  • 安装全部依赖包(自动补装缺失包)
  • 创建 .env 配置文件(如不存在)

手动安装(如脚本失败):

python -m pip install -e .

配置 AI 后端

安装完成后,用记事本打开项目根目录的 .env 文件,二选一配置:

方式一:DeepSeek API(效果最佳,需付费)

  1. 访问 DeepSeek 开放平台 注册并获取 API Key
  2. .env 中将 sk-xxx 替换为你的真实 API Key
LLM_PROVIDER=deepseek
DEEPSEEK_API_KEY=你的真实API Key

方式二:Ollama 本地模型(完全免费)

  1. 访问 ollama.ai 下载安装 Ollama
  2. 在终端运行 ollama pull qwen2.5 下载模型
  3. .env 中修改:
LLM_PROVIDER=ollama
OLLAMA_MODEL=qwen2.5

详细配置请参考 Ollama 使用指南

启动

# Windows:双击 `启动服务器.bat` 或双击 `启动网页界面.bat`(自动打开浏览器)
# Linux/macOS:python -m uvicorn core.server:app --reload --port 8766

# 或手动启动:
python -m uvicorn core.server:app --reload --port 8766

然后访问 http://localhost:8766 开始使用。

导入已有小说

如果你已有完成的小说(如 10 万字),可以通过外部大模型提取世界观后导入:

  1. 打开 提取提示词模板,复制提示词和 JSON 格式说明
  2. 将提示词 + 小说全文发送给外部大模型(如 DeepSeek 网页版,免费、支持超长文本)
  3. 复制大模型输出的 JSON
  4. 在 Web UI 的 Step 3 世界观配置 中点击 "导入 JSON",粘贴即可

创作流程

① 创建书籍        df book --title "我的小说" --genre "玄幻" --chapters 100
       ↓
② 初始化配置      在 Web UI 中配置角色、势力、地点、世界规则
       ↓
③ 生成大纲        AI 基于 Dramatica 理论自动生成三幕结构大纲
       ↓
④ 逐章创作        AI 写作 → 规则验证 → 叙事审计 → 修订闭环
       ↓
⑤ 故事追踪        实时监控因果链、情感弧线、伏笔状态
       ↓
⑥ 导出成品        一键导出为 Markdown / 全文审阅

CLI 命令参考

命令 说明
df init <name> 初始化项目
df book --title "我的小说" --genre "玄幻" --chapters 100 创建新书
df setup init <book> 初始化配置模板
df setup load <book> 加载配置
df write <book> AI 写下一章
df write <book> --count 5 连续写 5 章
df audit <book> <chapter> 审计指定章节
df revise <book> <chapter> 修订章节
df status <book> 查看书籍状态
df export <book> 导出全书
df doctor 诊断项目配置

API 接口

系统提供 50+ REST API 端点,完整覆盖创作流程。

书籍管理

GET    /api/books                            # 书籍列表
POST   /api/books                            # 创建书籍
GET    /api/books/{id}                       # 书籍详情
DELETE /api/books/{id}                       # 删除书籍

故事配置

GET    /api/books/{id}/setup/status          # 配置状态
POST   /api/books/{id}/setup/init            # 初始化配置模板
GET    /api/books/{id}/setup/{type}          # 获取配置(角色/势力/地点/事件)
PUT    /api/books/{id}/setup/{type}          # 更新配置
POST   /api/books/{id}/setup/load            # 加载配置到世界状态

AI 创作核心

POST   /api/books/{id}/ai-generate/outline            # AI 生成故事大纲
POST   /api/books/{id}/ai-continue/outline            # AI 续写故事大纲
POST   /api/books/{id}/ai-generate/chapter-outlines   # AI 生成章节大纲
POST   /api/books/{id}/continue-writing               # 续写章节大纲(联动故事大纲)
POST   /api/books/{id}/ai-generate/detailed-outline   # AI 生成详细章纲
POST   /api/books/{id}/ai-generate/chapter-content    # AI 生成章节内容
POST   /api/books/{id}/ai-rewrite-segment             # AI 重写指定段落
POST   /api/action/write                              # 执行写作管线
POST   /api/action/audit                              # 执行审计
POST   /api/action/revise                             # 执行修订
POST   /api/action/export                             # 导出全书

故事追踪

GET    /api/books/{id}/causal-chain          # 因果链
GET    /api/books/{id}/emotional-arcs        # 情感弧线
GET    /api/books/{id}/hooks                 # 伏笔列表
GET    /api/books/{id}/relationships         # 关系网络
GET    /api/books/{id}/threads               # 叙事线程
GET    /api/books/{id}/timeline              # 全局时间轴

故事分析

POST   /api/books/{id}/extract-from-novel    # 从现有小说提取世界观
POST   /api/books/{id}/extract-story-state   # 提取故事状态(角色/事件/关系)
POST   /api/books/{id}/three-layer-audit     # 三层审计
GET    /api/books/{id}/audit-results         # 审计结果列表

系统配置

GET    /api/settings                         # 获取配置
POST   /api/settings                         # 更新配置
GET    /api/settings/status                  # 配置状态检测

项目结构

dramatica-flow/
├── core/                           # 核心引擎
│   ├── agents/                     # AI Agent(建筑师/写手/审计员/修订者/摘要)
│   ├── llm/                        # LLM 抽象层(DeepSeek + Ollama)
│   ├── narrative/                  # 叙事引擎(大纲解析、因果链提取)
│   ├── state/                      # 状态管理(世界状态、真相文件、快照)
│   ├── types/                      # 数据类型定义(角色/事件/因果链/伏笔...)
│   ├── validators/                 # 内容验证器(零 LLM 硬规则)
│   ├── pipeline.py                 # 五层写作管线
│   └── server.py                   # FastAPI 服务(50+ 端点)
├── cli/                            # 命令行工具
│   └── main.py                     # CLI 入口(Typer)
├── books/                          # 书籍数据目录
├── templates/                      # 配置模板 + 提取提示词
├── tests/                          # 测试套件(89 个用例)
├── docs/                           # 文档
│   ├── CHANGELOG.md                # 更新日志
│   ├── OLLAMA_GUIDE.md             # Ollama 配置指南
│   ├── QUICKSTART.md               # 快速上手
│   ├── PROJECT_STATUS.md           # 项目状态
│   └── screenshots/                # 界面截图
├── dramatica_flow_web_ui.html      # Web UI 主界面
├── dramatica_flow_timeline.html    # 时间线泳道图
├── install.bat                     # Windows 一键安装
├── install.sh                      # Linux/macOS 一键安装
├── 启动服务器.bat                   # Windows 启动服务
├── 启动网页界面.bat                  # Windows 启动并打开浏览器
├── .env.example                    # 环境变量模板
├── pyproject.toml                  # 项目配置
└── setup.py                        # 包安装入口

测试

# 运行全部测试
python run_tests.py

# 或使用 pytest
python -m pytest tests/ -v

相关文档


技术规格

项目 规格
语言 Python 3.11+
Web 框架 FastAPI
LLM 接口 OpenAI SDK(兼容协议)
数据校验 Pydantic v2
CLI 框架 Typer + Rich
测试框架 pytest + pytest-asyncio
前端 原生 HTML/CSS/JS(零构建依赖)
支持模型 DeepSeek、Ollama(qwen2.5/llama3.1/mistral 等)

许可证

MIT License


致谢

About

深度集成 Dramatica 理论与 5 层 Agent 写作管线的下一代 AI 自动写小说引擎,支持因果链管理、多线叙事与伏笔追踪。A causal-driven AI novel creation system based on Dramatica theory, featuring a 5-layer Agent pipeline for deep narrative logic.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors