|
|
1 неделя назад | |
|---|---|---|
| .agents | 3 недель назад | |
| .claude | 2 месяцев назад | |
| .codegraph | 2 месяцев назад | |
| .github | 1 неделя назад | |
| .vscode | 2 месяцев назад | |
| analytics-worker | 1 месяц назад | |
| extension | 2 месяцев назад | |
| qmai-changelog | 2 месяцев назад | |
| scripts | 2 недель назад | |
| skills | 2 недель назад | |
| src | 1 неделя назад | |
| src-tauri | 1 неделя назад | |
| .gitignore | 1 месяц назад | |
| .nvmrc | 1 месяц назад | |
| LICENSE | 2 месяцев назад | |
| README.md | 3 недель назад | |
| components.json | 2 месяцев назад | |
| index.html | 2 месяцев назад | |
| package-lock.json | 1 неделя назад | |
| package.json | 1 неделя назад | |
| tsconfig.app.json | 1 месяц назад | |
| tsconfig.json | 2 месяцев назад | |
| tsconfig.node.json | 2 месяцев назад | |
| vite.config.ts | 3 недель назад |
面向长篇小说的记忆型 AI 写作桌面系统
青幕AI写作不是普通的 AI 聊天写作工具。它是一套长篇小说记忆型写作系统,专为 200 万~300 万字量级的连载小说创作设计。
核心理念:
写前自动提取上下文 → 写后自动沉淀章节记忆 → 图谱追踪关系变化 → 审查系统防止崩坏 → 人工确认最终定稿
普通 AI 写作工具的问题在于:写到后期 AI 会遗忘前文、人物性格不一致、时间线混乱、伏笔丢失。青幕AI写作通过结构化记忆系统和混合检索引擎,让 AI 在每次生成时都能"记住"之前的一切。
适用场景:
记忆系统是青幕AI写作的核心引擎。每章正式保存后,系统会自动执行章节摄取,将正文内容结构化为可检索、可追踪、可复用的记忆单元。
章节摄取提取的内容:
上下文引擎(写作前自动触发):
每次调用 LLM 写作前,系统自动生成上下文包,按优先级组装:
用户明确指定 > 当前章节细纲 > 上一章结尾 > Canon 正史规则
> 当前人物状态 > 伏笔状态 > 最近章节摘要 > 最近章节正文片段 > 图谱关系
> 向量搜索结果 > 关键词搜索结果
上下文包有 token 预算控制,自动在保证关键信息不遗漏的前提下裁剪内容;发送前还会按当前模型的真实输入上限再次裁剪并重试,避免长章节历史超出接口限制。
混合检索策略:
数据存储方式:
所有记忆数据以项目目录形式本地存储,章节正文保存为 Markdown,快照与状态保存为 JSON。支持导出、备份和索引重建。
角色灵魂系统由两个层面组成:项目灵魂 和 角色视角(NvwaSKILL)。
项目灵魂(Soul Doc):
每个小说项目可配置独立的写作灵魂文档,定义整部小说的气质基调:
灵魂文档在每次章节生成时自动注入 LLM 提示词,确保全书风格统一。
角色视角(NvwaSKILL):
基于 SKILL 框架的角色个性化系统。每个角色视角包含:
系统内置数十个预设角色视角范例(从费曼到鲁迅、从孙悟空到王阳明),用户可参照创建自己小说中的角色模版。也可以通过拆书库从已有作品中提取角色,一键加入自定义灵魂库。
角色认知系统:
追踪每个角色在每个时间节点"知道什么"和"不知道什么":
knows:角色已知信息does_not_know:角色未知信息reader_knows_but_character_does_not:读者知道但角色不知道的信息(信息差)这防止了 AI 写作中最常见的错误——让角色知道了不该知道的信息。
拆书库是青幕AI写作的特色功能,让你能够拆解成熟作品的写作秘密,并将其复用到自己的创作中。
拆书工作流:
作品文风提取(9 维度):
| 维度 | 说明 |
|---|---|
| 文风宪法 | 8-12 条带理由的硬性写作规则 |
| 叙事视角 | 第几人称、视角切换规则 |
| 对话风格 | 口语化程度、台词密度 |
| 描写密度 | 环境/动作/心理描写的比重 |
| 节奏控制 | 张弛节奏、信息投放速度 |
| 情感处理 | 含蓄外露程度、共情强度 |
| 用词偏好 | 书面/口语、长短句倾向 |
| 段落结构 | 段落长度、过渡方式 |
| 代表样本 | 多段原文片段佐证分析 |
启用文风约束后,每次生成章节时会自动注入文风预设,保障全书风格统一。
拆书库特性:
审查系统提供多维度的章节质量把控,分为 AI 审稿、连贯性检查 和 角色一致性检查 三个层面。
审查中心六维审查:
| 维度 | 说明 |
|---|---|
| 爽感密度 | 爽点分布是否合理、密度是否足够 |
| 设定自洽 | 战力/地点/时间线等设定是否自相矛盾 |
| 节奏张力 | 叙事节奏是否合理、张弛是否有度 |
| 人设一致 | 角色行为是否偏离人设、对话是否符合性格 |
| 叙事衔接 | 场景转换是否自然、前后文是否衔接 |
| 追读引力 | 章末钩子是否有力、读者期待管理是否到位 |
AI 审稿流程:
角色一致性检查(专项能力):
审查阶段会专门校验角色是否脱离记忆库设定:
连贯性检查(Lint):
自动检测结构性问题:
每个问题输出包含严重程度、类型、原文证据、相关记忆和修改建议。
事实检查(Fact Check):
基于章节快照的事实验证系统,检测新章节中是否存在与既有 Canon 正史矛盾的内容。
伏笔债务追踪:
自动统计长期未回收的伏笔,计算债务评分,提醒作者哪些伏笔需要推进或收束。
针对长篇 AI 写作的常见崩坏问题,青幕AI写作提供系统性解决方案:
| 问题 | 解决方案 |
|---|---|
| AI 写到后期遗忘前文 | 章节快照 + 最近章节正文片段 + 混合检索 + 上下文包自动组装 |
| 人物性格前后不一致 | 角色状态追踪 + 灵魂绑定 + 人设一致性审查 + 角色命中记忆库检查 |
| 时间线混乱 | 结构化时间线 + 连贯性检查 + 时间线冲突报警 |
| 伏笔丢失或错乱 | 伏笔追踪器 + 债务评分 + 自动检测未回收伏笔 |
| 角色知道不该知道的信息 | 角色认知系统(knows / does_not_know) |
| AI 生成错误内容污染后续 | 草稿/正式章节分离 + 人工确认后才入库 |
| 大纲执行偏移 | 大纲一致性审查 + 上下文强制注入大纲规则 |
| 生成内容 AI 味重 | 去AI化改写(De-AI)+ 项目灵魂风格控制 + 作品文风约束 |
| 不知道如何写好某种文风 | 拆书库提取成熟作品的 9 维文风,直接复用 |
| 设定散落难以追踪 | 图谱可视化 + 结构化记忆 + 全文搜索 |
| 长章节超出模型上下文 | 发送前按模型真实输入上限自动裁剪并重试 |
草稿机制:
AI 生成的章节默认为草稿状态。草稿支持预览、编辑、重新生成、审稿。只有用户确认后才会保存为正式章节并触发记忆摄取。草稿不会污染正式记忆库。
去AI化改写(De-AI):
内置文风转化能力,将 AI 生成的"标准化"文本改写为更贴近人类写作的自然风格,减少模板化表达。
小说图谱将作品中的所有实体和关系以网络形式可视化呈现。
节点类型:
关系类型:
图谱构建逻辑:
图谱数据来源于章节摄取过程。每当正式章节保存后,系统自动从快照中提取图谱节点和关系边,增量更新全局图谱。
应用场景:
图谱视图基于 Sigma.js + ForceAtlas2 布局,支持社区发现、节点过滤和交互式探索。
┌─────────────────────────────────────────────────┐
│ 前端 UI 层 │
│ React 19 + TypeScript + Tailwind CSS + Vite │
├─────────────────────────────────────────────────┤
│ 状态管理层 │
│ Zustand (wiki-store, review-store...) │
├─────────────────────────────────────────────────┤
│ 业务逻辑层 │
│ novel/ (记忆引擎, 上下文包, 摄取, 审查, 图谱, │
│ 拆书分析, 文风提取, 角色一致性) │
│ lib/ (LLM客户端, 嵌入, 搜索, 去重, 持久化) │
├─────────────────────────────────────────────────┤
│ Tauri IPC 通信层 │
├─────────────────────────────────────────────────┤
│ Rust 后端命令层 │
│ 文件系统 / 向量存储 / Office解析 / 进程管理 / 代理 │
├─────────────────────────────────────────────────┤
│ 本地文件系统 │
│ 项目目录 (Markdown + JSON + 向量索引) │
└─────────────────────────────────────────────────┘
技术栈:
| 层级 | 技术选型 |
|---|---|
| 桌面框架 | Tauri 2 |
| 前端 | React 19, TypeScript, Vite 8 |
| 样式 | Tailwind CSS 4 |
| 状态管理 | Zustand 5 |
| 富文本编辑 | Milkdown 7 |
| 图谱渲染 | Sigma.js 3 + Graphology |
| 图表/流程图 | Mermaid |
| 简繁转换 | OpenCC |
| 拼音匹配 | pinyin-pro |
| 后端 | Rust |
| 向量存储 | LanceDB |
| Office 解析 | docx-rs / calamine |
| 自动更新 | tauri-plugin-updater |
| CI/CD | GitHub Actions |
关键技术亮点:
方式一:下载安装包(推荐)
前往 GitHub Releases 下载最新版本安装包。
macOS 用户须知
Release 包未做 Apple 公证,首次打开可能提示「已损坏」或无法运行。将 .app 拖入「应用程序」后,在终端执行:
codesign --force --deep --sign - /Applications/QMaiWrite.app
xattr -dr com.apple.quarantine /Applications/QMaiWrite.app
macOS 暂不支持应用内自动更新,新版本请手动从 Releases 下载安装。
QMAI/
├── src/ # 前端源码
│ ├── components/ # React 组件
│ │ ├── chat/ # AI 对话面板
│ │ ├── dashboard/ # 仪表盘
│ │ ├── editor/ # 编辑器与阅读器
│ │ ├── graph/ # 图谱视图
│ │ ├── layout/ # 布局组件(含使用说明入口)
│ │ ├── novel/ # 小说功能组件(灵魂、认知、伏笔、记忆、拆书库等)
│ │ ├── review/ # 审查中心
│ │ ├── search/ # 搜索视图
│ │ ├── settings/ # 设置面板(模型、数据管理、界面等)
│ │ ├── sources/ # 原始资料与大纲管理
│ │ └── ui/ # 通用 UI 组件
│ ├── lib/ # 业务逻辑库
│ │ ├── novel/ # 小说核心模块
│ │ │ ├── book-analysis/ # 拆书库(角色提取、文风提取、别名匹配等)
│ │ │ ├── context-engine.ts # 上下文引擎
│ │ │ ├── chapter-ingest.ts # 章节摄取
│ │ │ ├── review-adapter.ts # 审查适配器(含角色一致性)
│ │ │ ├── model-resolver.ts # 默认模型解析
│ │ │ ├── de-ai-adapter.ts # 去AI化
│ │ │ └── ...
│ │ ├── llm-client.ts # LLM 客户端
│ │ ├── embedding.ts # 嵌入向量
│ │ ├── search.ts # 搜索引擎
│ │ └── ...
│ ├── stores/ # Zustand 状态仓库
│ ├── i18n/ # 国际化(中/英)
│ └── commands/ # Tauri 命令调用层
├── src-tauri/ # Rust 后端
│ ├── src/
│ │ ├── commands/ # Tauri 命令实现
│ │ ├── lib.rs # 插件注册与应用初始化
│ │ └── ...
│ ├── Cargo.toml # Rust 依赖配置
│ └── tauri.conf.json # Tauri 应用配置
├── skills/ # 角色 SKILL 数据(应用运行时资源)
├── extension/ # 浏览器剪藏扩展
├── scripts/ # 构建与发布脚本
├── .github/workflows/ # CI/CD 工作流
├── package.json # 前端依赖与脚本
└── vite.config.ts # Vite 构建配置
# 安装前端依赖
npm install
# 启动开发环境(前端 + Tauri 桌面窗口)
npm run tauri dev
# 仅启动前端开发服务器
npm run dev
# 类型检查
npm run typecheck
# 构建桌面便携版
npm run build:portable
# 构建 GitHub 发布版(含签名与 latest.json)
npm run build:github-release
src/lib/novel/ 中集中实现,避免散落到无关模块cargo fmt 和 cargo clippy 标准本项目采用 GNU General Public License v3.0 开源许可证(基于 LLM Wiki 衍生开发)。