# dramatica-flow **Repository Path**: itjee/dramatica-flow ## Basic Information - **Project Name**: dramatica-flow - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-12 - **Last Updated**: 2026-05-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
世界观构建 — 可视化配置角色、势力、地点与世界规则
--- ## 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(生死同盟)** 连续变化,每次事件后自动更新: ```python # 关系变化示例 "林尘-慕雪:+20,慕雪看到林尘为救她不惜受伤" "林尘-萧天:-30,萧天暗中勾结魔族被揭穿" ``` ### 5. 多线叙事 — 全局时间轴调度 支持 **主线、支线、并行线、闪回线** 四种叙事线程,每种线程拥有独立的: - 视角角色与角色群 - 目标弧线与成长轨迹 - 篇幅权重(自动调整字数分配) - 掉线预警(超过 5 章未活跃自动提醒) 全局时间轴记录"谁在什么时候,在什么地方,做了什么",是多线叙事的"上帝视角"账本。 ### 6. 信息边界 — 杜绝全知视角污染 每个角色维护独立的信息记录: ```python @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 写作提供完整的世界观上下文。
多线叙事时间线 — 泳道图展示各线程事件分布、角色活动与关键节点
--- ## 快速开始 ### 环境要求 - **Python** >= 3.11([下载地址](https://www.python.org/downloads/),安装时请勾选 "Add Python to PATH") - **LLM 后端**(二选一):DeepSeek API 密钥 或 Ollama 本地环境 ### 安装 ```bash # 克隆项目 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` 配置文件(如不存在) **手动安装(如脚本失败):** ```bash python -m pip install -e . ``` ### 配置 AI 后端 安装完成后,用记事本打开项目根目录的 `.env` 文件,**二选一**配置: **方式一:DeepSeek API(效果最佳,需付费)** 1. 访问 [DeepSeek 开放平台](https://platform.deepseek.com) 注册并获取 API Key 2. 在 `.env` 中将 `sk-xxx` 替换为你的真实 API Key ```env LLM_PROVIDER=deepseek DEEPSEEK_API_KEY=你的真实API Key ``` **方式二:Ollama 本地模型(完全免费)** 1. 访问 [ollama.ai](https://ollama.ai) 下载安装 Ollama 2. 在终端运行 `ollama pull qwen2.5` 下载模型 3. 在 `.env` 中修改: ```env LLM_PROVIDER=ollama OLLAMA_MODEL=qwen2.5 ``` > 详细配置请参考 [Ollama 使用指南](docs/OLLAMA_GUIDE.md) ### 启动 ```bash # 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. 打开 [提取提示词模板](templates/novel_extract_prompt.md),复制提示词和 JSON 格式说明 2. 将提示词 + 小说全文发送给外部大模型(如 [DeepSeek 网页版](https://chat.deepseek.com),免费、支持超长文本) 3. 复制大模型输出的 JSON 4. 在 Web UI 的 **Step 3 世界观配置** 中点击 **"导入 JSON"**,粘贴即可 --- ## 创作流程 ``` ① 创建书籍 df book --title "我的小说" --genre "玄幻" --chapters 100 ↓ ② 初始化配置 在 Web UI 中配置角色、势力、地点、世界规则 ↓ ③ 生成大纲 AI 基于 Dramatica 理论自动生成三幕结构大纲 ↓ ④ 逐章创作 AI 写作 → 规则验证 → 叙事审计 → 修订闭环 ↓ ⑤ 故事追踪 实时监控因果链、情感弧线、伏笔状态 ↓ ⑥ 导出成品 一键导出为 Markdown / 全文审阅 ``` --- ## CLI 命令参考 | 命令 | 说明 | |------|------| | `df init