# QMAI **Repository Path**: moli-framework/QMAI ## Basic Information - **Project Name**: QMAI - **Description**: No description available - **Primary Language**: TypeScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-08 - **Last Updated**: 2026-06-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

青幕AI写作 Logo

青幕AI写作(QMAI)

面向长篇小说的记忆型 AI 写作桌面系统

Release Platform License

--- image ## 软件概述 青幕AI写作不是普通的 AI 聊天写作工具。它是一套**长篇小说记忆型写作系统**,专为 200 万~300 万字量级的连载小说创作设计。 核心理念: > 写前自动提取上下文 → 写后自动沉淀章节记忆 → 图谱追踪关系变化 → 审查系统防止崩坏 → 人工确认最终定稿 普通 AI 写作工具的问题在于:写到后期 AI 会遗忘前文、人物性格不一致、时间线混乱、伏笔丢失。青幕AI写作通过结构化记忆系统和混合检索引擎,让 AI 在每次生成时都能"记住"之前的一切。 **适用场景:** - 网文日更作者:保持长篇连载质量、防止人设崩坏 - 小说策划者:管理世界观、势力关系、多线剧情 - AI 辅助写作者:让大模型在长篇创作中持续可用 --- image image ## 核心功能 ### 📚 记忆系统 记忆系统是青幕AI写作的核心引擎。每章正式保存后,系统会自动执行**章节摄取**,将正文内容结构化为可检索、可追踪、可复用的记忆单元。 **章节摄取提取的内容:** - 章节摘要与结尾钩子 - 出场人物、地点、组织、物品 - 关键事件与状态变化 - 人物关系变化与角色认知变化 - 伏笔新增 / 推进 / 回收 - 时间线事件 - 图谱节点与关系边 **上下文引擎(写作前自动触发):** 每次调用 LLM 写作前,系统自动生成**上下文包**,按优先级组装: ``` 用户明确指定 > 当前章节细纲 > 上一章结尾 > Canon 正史规则 > 当前人物状态 > 伏笔状态 > 最近章节摘要 > 图谱关系 > 向量搜索结果 > 关键词搜索结果 ``` 上下文包有 token 预算控制,自动在保证关键信息不遗漏的前提下裁剪内容。 **混合检索策略:** - 最近章节窗口:直接获取最近 N 章的摘要 - 关键词搜索:BM25 风格的精确匹配 - 向量搜索:语义级别的相似内容检索 - 图谱搜索:沿关系边扩展相关节点 - Canon 规则:强制注入的不可违背设定 **数据存储方式:** 所有记忆数据以项目目录形式本地存储,章节正文保存为 Markdown,快照与状态保存为 JSON。支持导出、备份和索引重建。 --- image ### 🎭 角色灵魂系统 角色灵魂系统由两个层面组成:**项目灵魂** 和 **角色视角(NvwaSKILL)**。 **项目灵魂(Soul Doc):** 每个小说项目可配置独立的写作灵魂文档,定义整部小说的气质基调: - 叙事气质(沉浸、克制、轻松等) - 语言风格(口语感、文学感等) - 节奏控制规则 - 对话规则与心理描写规则 - 冲突写法与感情线规则 - 禁区列表(禁止空泛抒情、禁止所有人物同一说话方式等) 灵魂文档在每次章节生成时自动注入 LLM 提示词,确保全书风格统一。 image **角色视角(NvwaSKILL):** 基于 SKILL 框架的角色个性化系统。每个角色视角包含: - 角色档案与核心设定 - 表达 DNA(说话习惯、用词偏好、句式特征) - 思维模式与决策风格 - 对话历史与观点参考 - 时间线与关键事件 系统内置数十个预设角色视角范例(从费曼到鲁迅、从孙悟空到王阳明),用户可参照创建自己小说中的角色模版。 **角色认知系统:** 追踪每个角色在每个时间节点"知道什么"和"不知道什么": - `knows`:角色已知信息 - `does_not_know`:角色未知信息 - `reader_knows_but_character_does_not`:读者知道但角色不知道的信息(信息差) 这防止了 AI 写作中最常见的错误——让角色知道了不该知道的信息。 --- ### 🔍 审查系统 审查系统提供多维度的章节质量把控,分为 **AI 审稿** 和 **连贯性检查** 两个层面。 **审查中心六维审查:** | 维度 | 说明 | |------|------| | 爽感密度 | 爽点分布是否合理、密度是否足够 | | 设定自洽 | 战力/地点/时间线等设定是否自相矛盾 | | 节奏张力 | 叙事节奏是否合理、张弛是否有度 | | 人设一致 | 角色行为是否偏离人设、对话是否符合性格 | | 叙事衔接 | 场景转换是否自然、前后文是否衔接 | | 追读引力 | 章末钩子是否有力、读者期待管理是否到位 | **AI 审稿流程:** 1. 读取目标章节正文 2. 加载大纲、人物状态、伏笔状态、时间线、角色认知 3. LLM 逐维度检查,输出结构化审稿意见 4. 按严重程度分级:阻塞 / 高 / 中 / 低 5. 提供具体修改建议与原文证据 **连贯性检查(Lint):** 自动检测结构性问题: - 时间线冲突 - 人设崩坏 - 伏笔错乱 - 角色认知越界 - 缺失的关系引用 每个问题输出包含严重程度、类型、原文证据、相关记忆和修改建议。 **事实检查(Fact Check):** 基于章节快照的事实验证系统,检测新章节中是否存在与既有 Canon 正史矛盾的内容。 **伏笔债务追踪:** 自动统计长期未回收的伏笔,计算债务评分,提醒作者哪些伏笔需要推进或收束。 --- image ### ✍️ 小说写作问题解决方案 针对长篇 AI 写作的常见崩坏问题,青幕AI写作提供系统性解决方案: | 问题 | 解决方案 | |------|----------| | AI 写到后期遗忘前文 | 章节快照 + 混合检索 + 上下文包自动组装 | | 人物性格前后不一致 | 角色状态追踪 + 灵魂绑定 + 人设一致性审查 | | 时间线混乱 | 结构化时间线 + 连贯性检查 + 时间线冲突报警 | | 伏笔丢失或错乱 | 伏笔追踪器 + 债务评分 + 自动检测未回收伏笔 | | 角色知道不该知道的信息 | 角色认知系统(knows / does_not_know) | | AI 生成错误内容污染后续 | 草稿/正式章节分离 + 人工确认后才入库 | | 大纲执行偏移 | 大纲一致性审查 + 上下文强制注入大纲规则 | | 生成内容 AI 味重 | 去AI化改写(De-AI)+ 项目灵魂风格控制 | | 设定散落难以追踪 | 图谱可视化 + 结构化记忆 + 全文搜索 | **草稿机制:** AI 生成的章节默认为草稿状态。草稿支持预览、编辑、重新生成、审稿。只有用户确认后才会保存为正式章节并触发记忆摄取。草稿不会污染正式记忆库。 **去AI化改写(De-AI):** 内置文风转化能力,将 AI 生成的"标准化"文本改写为更贴近人类写作的自然风格,减少模板化表达。 --- ### 🕸️ 图谱功能 小说图谱将作品中的所有实体和关系以网络形式可视化呈现。 **节点类型:** - 人物、地点、组织、物品 - 事件、章节、大纲 - 伏笔、秘密、冲突、时间点 **关系类型:** - 出场于、发生于、持有 - 敌对、合作、怀疑、隐瞒 - 知道、不知道 - 推进伏笔、回收伏笔、新增伏笔 - 导致、揭示、影响 **图谱构建逻辑:** 图谱数据来源于章节摄取过程。每当正式章节保存后,系统自动从快照中提取图谱节点和关系边,增量更新全局图谱。 **应用场景:** - 查看某角色的完整关系网络 - 追踪某个伏笔涉及的所有章节和角色 - 发现孤立节点(缺乏关联的设定) - 分析剧情线的关键路径 图谱视图基于 Sigma.js + ForceAtlas2 布局,支持社区发现、节点过滤和交互式探索。 --- ## 其他功能 - **大纲管理**:总大纲 → 分卷大纲 → 章节细纲,三级大纲体系 - **章节生成**:续写、扩写、改写、润色,多种生成模式 - **剧情搜索**:关键词 + 语义 + 图谱混合搜索 - **多模型支持**:自定义聊天、写作、审稿、摘要、嵌入模型 - **自动更新**:内置 Tauri Updater,启动时自动检测 GitHub Releases 新版本 - **国际化**:中文 / 英文双语界面 --- ## 技术架构 ``` ┌─────────────────────────────────────────────────┐ │ 前端 UI 层 │ │ React 19 + TypeScript + Tailwind CSS + Vite │ ├─────────────────────────────────────────────────┤ │ 状态管理层 │ │ Zustand (wiki-store, review-store...) │ ├─────────────────────────────────────────────────┤ │ 业务逻辑层 │ │ novel/ (记忆引擎, 上下文包, 摄取, 审查, 图谱) │ │ lib/ (LLM客户端, 嵌入, 搜索, 去重, 持久化) │ ├─────────────────────────────────────────────────┤ │ Tauri IPC 通信层 │ ├─────────────────────────────────────────────────┤ │ Rust 后端命令层 │ │ 文件系统 / 向量存储 / PDF提取 / 进程管理 / 代理 │ ├─────────────────────────────────────────────────┤ │ 本地文件系统 │ │ 项目目录 (Markdown + JSON + 向量索引) │ └─────────────────────────────────────────────────┘ ``` **技术栈:** | 层级 | 技术选型 | |------|----------| | 桌面框架 | Tauri 2 | | 前端 | React 19, TypeScript, Vite 8 | | 样式 | Tailwind CSS 4 | | 状态管理 | Zustand 5 | | 图谱渲染 | Sigma.js 3 + Graphology | | 后端 | Rust | | 向量存储 | LanceDB | | PDF 解析 | PDFium | | 自动更新 | tauri-plugin-updater | | CI/CD | GitHub Actions | **关键技术亮点:** - 混合检索引擎:关键词 + 向量 + 图谱三路融合,RRF 排序 - Token 预算控制:上下文包自动裁剪,确保不超模型限制 - 增量式图谱构建:每次摄取只更新变化部分 - 本地优先架构:所有数据存储在本地,无需联网(LLM 调用除外) - 草稿隔离机制:未确认内容不会污染正式记忆库 --- ## 安装与使用 ### 环境要求 - **操作系统**:Windows 10+(主要支持平台)、macOS、Linux - **LLM 服务**:需配置至少一个大语言模型 API(支持 OpenAI 兼容接口、Ollama 等) ### 安装方式 **方式一:下载安装包(推荐)** 前往 [GitHub Releases](https://github.com/Mochocyang/QMAI/releases) 下载最新版本安装包。 ### 基本使用流程 1. **新建小说项目**:指定项目名称、题材、目标字数 2. **导入或生成大纲**:导入已有大纲,或通过 AI 生成 3. **配置模型**:在设置中配置 LLM API 地址和密钥 4. **开始写作**:在 AI 对话区输入写作指令(如"继续写第 30 章") 5. **审阅草稿**:查看生成结果,可编辑、重写或审稿 6. **确认保存**:满意后保存为正式章节,系统自动摄取记忆 7. **查看图谱**:在图谱视图查看人物关系和剧情走向 --- ## 项目结构 ``` QMAI/ ├── src/ # 前端源码 │ ├── components/ # React 组件 │ │ ├── chat/ # AI 对话面板 │ │ ├── editor/ # 编辑器与阅读器 │ │ ├── graph/ # 图谱视图 │ │ ├── layout/ # 布局组件 │ │ ├── novel/ # 小说功能组件(灵魂、认知、伏笔、记忆等) │ │ ├── review/ # 审查中心 │ │ ├── search/ # 搜索视图 │ │ ├── settings/ # 设置面板 │ │ ├── sources/ # 原始资料管理 │ │ └── ui/ # 通用 UI 组件 │ ├── lib/ # 业务逻辑库 │ │ ├── novel/ # 小说核心模块(记忆、上下文、摄取、审查、图谱) │ │ ├── llm-client.ts # LLM 客户端 │ │ ├── embedding.ts # 嵌入向量 │ │ ├── search.ts # 搜索引擎 │ │ ├── sweep-reviews.ts # 批量审查 │ │ └── ... # 其他工具库 │ ├── stores/ # Zustand 状态仓库 │ ├── i18n/ # 国际化(中/英) │ └── commands/ # Tauri 命令调用层 ├── src-tauri/ # Rust 后端 │ ├── src/ │ │ ├── commands/ # Tauri 命令实现 │ │ ├── lib.rs # 插件注册与应用初始化 │ │ └── ... │ ├── Cargo.toml # Rust 依赖配置 │ └── tauri.conf.json # Tauri 应用配置 ├── NvwaSKILL/ # 角色视角数据(应用运行时资源) ├── extension/ # 浏览器剪藏扩展 ├── scripts/ # 构建与发布脚本 ├── .github/workflows/ # CI/CD 工作流 ├── package.json # 前端依赖与脚本 └── vite.config.ts # Vite 构建配置 ``` --- ## 本地开发 ### 前置依赖 - Node.js 20+ - Rust (stable) - [Tauri 2 开发环境](https://v2.tauri.app/start/prerequisites/) ### 开发命令 ```bash # 安装前端依赖 npm install # 启动开发环境(前端 + Tauri 桌面窗口) npm run tauri dev # 仅启动前端开发服务器 npm run dev # 类型检查 npm run typecheck # 构建便携版 npm run build:portable ``` --- ### 代码规范 - 前端代码使用 TypeScript 严格模式 - Commit Message 遵循 [Conventional Commits](https://www.conventionalcommits.org/) 规范 - 新功能请在 `src/lib/novel/` 中集中实现,避免散落到无关模块 - Rust 代码遵循 `cargo fmt` 和 `cargo clippy` 标准 --- ## 许可证 本项目采用 [MIT License](LICENSE) 开源许可证。 --- ## 致谢 - 本项目灵感来源:(webnovel-writer)https://github.com/lingfengQAQ/webnovel-writer - 项目框架UI设计依托LLM WIKI:https://github.com/nashsu/llm_wiki - 内置角色灵魂设计参考女娲.skill:https://github.com/alchaincyf/nuwa-skill - 感谢LINUXDO提供的帮助:https://linux.do/ ## 相关链接 - 📦 [Releases 下载](https://github.com/Mochocyang/QMAI/releases) - 🐛 [问题反馈](https://github.com/Mochocyang/QMAI/issues) - 💬 [功能建议](https://github.com/Mochocyang/QMAI/issues/new)