|
|
@@ -0,0 +1,471 @@
|
|
|
+<p align="center">
|
|
|
+ <img src="QM-LOGO.png" width="120" alt="青幕AI写作 Logo" />
|
|
|
+</p>
|
|
|
+
|
|
|
+<h1 align="center">青幕AI写作(QMAI)</h1>
|
|
|
+
|
|
|
+<p align="center">
|
|
|
+ 面向长篇小说的记忆型 AI 写作桌面系统
|
|
|
+</p>
|
|
|
+
|
|
|
+<p align="center">
|
|
|
+ <a href="https://github.com/Mochocyang/QMAI/releases">
|
|
|
+ <img src="https://img.shields.io/github/v/release/Mochocyang/QMAI?style=flat-square" alt="Release" />
|
|
|
+ </a>
|
|
|
+ <img src="https://img.shields.io/badge/version-2.2.22-blue?style=flat-square" alt="Version" />
|
|
|
+ <img src="https://img.shields.io/badge/platform-Windows%20%7C%20macOS%20%7C%20Linux-blue?style=flat-square" alt="Platform" />
|
|
|
+ <img src="https://img.shields.io/badge/license-MIT-green?style=flat-square" alt="License" />
|
|
|
+</p>
|
|
|
+
|
|
|
+---
|
|
|
+<img width="1232" height="836" alt="image" src="https://github.com/user-attachments/assets/66630916-85b8-4865-9477-f5e04706bee3" />
|
|
|
+
|
|
|
+## 软件概述
|
|
|
+
|
|
|
+青幕AI写作不是普通的 AI 聊天写作工具。它是一套**长篇小说记忆型写作系统**,专为 200 万~300 万字量级的连载小说创作设计。
|
|
|
+
|
|
|
+核心理念:
|
|
|
+
|
|
|
+> 写前自动提取上下文 → 写后自动沉淀章节记忆 → 图谱追踪关系变化 → 审查系统防止崩坏 → 人工确认最终定稿
|
|
|
+
|
|
|
+普通 AI 写作工具的问题在于:写到后期 AI 会遗忘前文、人物性格不一致、时间线混乱、伏笔丢失。青幕AI写作通过结构化记忆系统和混合检索引擎,让 AI 在每次生成时都能"记住"之前的一切。
|
|
|
+
|
|
|
+**适用场景:**
|
|
|
+- 网文日更作者:保持长篇连载质量、防止人设崩坏
|
|
|
+- 小说策划者:管理世界观、势力关系、多线剧情
|
|
|
+- AI 辅助写作者:让大模型在长篇创作中持续可用
|
|
|
+- 学习仿写者:通过拆书库拆解成熟作品的角色设定与文风
|
|
|
+
|
|
|
+---
|
|
|
+<img width="1239" height="883" alt="image" src="https://github.com/user-attachments/assets/076740be-85ef-4503-842d-565c367aebdc" />
|
|
|
+<img width="1201" height="832" alt="image" src="https://github.com/user-attachments/assets/57936132-45b2-4fed-8c80-2c9282fedbf5" />
|
|
|
+
|
|
|
+## 核心功能
|
|
|
+
|
|
|
+### 📚 记忆系统
|
|
|
+
|
|
|
+记忆系统是青幕AI写作的核心引擎。每章正式保存后,系统会自动执行**章节摄取**,将正文内容结构化为可检索、可追踪、可复用的记忆单元。
|
|
|
+
|
|
|
+**章节摄取提取的内容:**
|
|
|
+- 章节摘要与结尾钩子
|
|
|
+- 出场人物、地点、组织、物品
|
|
|
+- 关键事件与状态变化
|
|
|
+- 人物关系变化与角色认知变化
|
|
|
+- 伏笔新增 / 推进 / 回收
|
|
|
+- 时间线事件
|
|
|
+- 图谱节点与关系边
|
|
|
+
|
|
|
+**上下文引擎(写作前自动触发):**
|
|
|
+
|
|
|
+每次调用 LLM 写作前,系统自动生成**上下文包**,按优先级组装:
|
|
|
+
|
|
|
+```
|
|
|
+用户明确指定 > 当前章节细纲 > 上一章结尾 > Canon 正史规则
|
|
|
+> 当前人物状态 > 伏笔状态 > 最近章节摘要 > 最近章节正文片段 > 图谱关系
|
|
|
+> 向量搜索结果 > 关键词搜索结果
|
|
|
+```
|
|
|
+
|
|
|
+上下文包有 token 预算控制,自动在保证关键信息不遗漏的前提下裁剪内容;发送前还会按当前模型的真实输入上限再次裁剪并重试,避免长章节历史超出接口限制。
|
|
|
+
|
|
|
+**混合检索策略:**
|
|
|
+- 最近章节窗口:直接获取最近 N 章的正文片段(长章节同时保留开头与结尾)+ 摘要
|
|
|
+- 关键词搜索:BM25 风格的精确匹配
|
|
|
+- 向量搜索:语义级别的相似内容检索
|
|
|
+- 图谱搜索:沿关系边扩展相关节点
|
|
|
+- Canon 规则:强制注入的不可违背设定
|
|
|
+
|
|
|
+**数据存储方式:**
|
|
|
+
|
|
|
+所有记忆数据以项目目录形式本地存储,章节正文保存为 Markdown,快照与状态保存为 JSON。支持导出、备份和索引重建。
|
|
|
+
|
|
|
+---
|
|
|
+<img width="1235" height="843" alt="image" src="https://github.com/user-attachments/assets/d143793d-70d1-4dc2-915b-d413860727c0" />
|
|
|
+
|
|
|
+### 🎭 角色灵魂系统
|
|
|
+
|
|
|
+角色灵魂系统由两个层面组成:**项目灵魂** 和 **角色视角(NvwaSKILL)**。
|
|
|
+
|
|
|
+**项目灵魂(Soul Doc):**
|
|
|
+
|
|
|
+每个小说项目可配置独立的写作灵魂文档,定义整部小说的气质基调:
|
|
|
+- 叙事气质(沉浸、克制、轻松等)
|
|
|
+- 语言风格(口语感、文学感等)
|
|
|
+- 节奏控制规则
|
|
|
+- 对话规则与心理描写规则
|
|
|
+- 冲突写法与感情线规则
|
|
|
+- 禁区列表(禁止空泛抒情、禁止所有人物同一说话方式等)
|
|
|
+
|
|
|
+灵魂文档在每次章节生成时自动注入 LLM 提示词,确保全书风格统一。
|
|
|
+<img width="1214" height="850" alt="image" src="https://github.com/user-attachments/assets/921ca1f8-6901-416b-9456-1c2c6b3144b0" />
|
|
|
+
|
|
|
+**角色视角(NvwaSKILL):**
|
|
|
+
|
|
|
+基于 SKILL 框架的角色个性化系统。每个角色视角包含:
|
|
|
+- 角色档案与核心设定
|
|
|
+- 表达 DNA(说话习惯、用词偏好、句式特征)
|
|
|
+- 思维模式与决策风格
|
|
|
+- 对话历史与观点参考
|
|
|
+- 时间线与关键事件
|
|
|
+- 动机、行为模式与代表性台词
|
|
|
+
|
|
|
+系统内置数十个预设角色视角范例(从费曼到鲁迅、从孙悟空到王阳明),用户可参照创建自己小说中的角色模版。也可以通过**拆书库**从已有作品中提取角色,一键加入自定义灵魂库。
|
|
|
+
|
|
|
+**角色认知系统:**
|
|
|
+
|
|
|
+追踪每个角色在每个时间节点"知道什么"和"不知道什么":
|
|
|
+- `knows`:角色已知信息
|
|
|
+- `does_not_know`:角色未知信息
|
|
|
+- `reader_knows_but_character_does_not`:读者知道但角色不知道的信息(信息差)
|
|
|
+
|
|
|
+这防止了 AI 写作中最常见的错误——让角色知道了不该知道的信息。
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 📖 拆书库(作品分析)
|
|
|
+
|
|
|
+拆书库是青幕AI写作的特色功能,让你能够**拆解成熟作品的写作秘密**,并将其复用到自己的创作中。
|
|
|
+
|
|
|
+**拆书工作流:**
|
|
|
+1. 导入小说作品(支持整本/多文件/章节范围选择)
|
|
|
+2. 章节自动切分,LLM 精准识别真实出场角色(不再用正则抽取无效候选名)
|
|
|
+3. 一键提取**角色 Skill**:6 维度人格分析(公开资料 / 说话风格 / 表达 DNA / 外界看法 / 决策模式 / 时间线)
|
|
|
+4. 一键提取**作品文风**:9 维度文风指标 + 风格宪法 + 原文代表样本
|
|
|
+5. 将角色 Skill 加入自定义灵魂库,或将文风绑定为当前小说的风格约束
|
|
|
+
|
|
|
+**作品文风提取(9 维度):**
|
|
|
+
|
|
|
+| 维度 | 说明 |
|
|
|
+|------|------|
|
|
|
+| 文风宪法 | 8-12 条带理由的硬性写作规则 |
|
|
|
+| 叙事视角 | 第几人称、视角切换规则 |
|
|
|
+| 对话风格 | 口语化程度、台词密度 |
|
|
|
+| 描写密度 | 环境/动作/心理描写的比重 |
|
|
|
+| 节奏控制 | 张弛节奏、信息投放速度 |
|
|
|
+| 情感处理 | 含蓄外露程度、共情强度 |
|
|
|
+| 用词偏好 | 书面/口语、长短句倾向 |
|
|
|
+| 段落结构 | 段落长度、过渡方式 |
|
|
|
+| 代表样本 | 多段原文片段佐证分析 |
|
|
|
+
|
|
|
+启用文风约束后,每次生成章节时会自动注入文风预设,保障全书风格统一。
|
|
|
+
|
|
|
+**拆书库特性:**
|
|
|
+- 支持重新提取角色 / 重新提取文风
|
|
|
+- 后台运行:深度提取可后台执行,右下角浮层显示进度,完成后一键跳转结果
|
|
|
+- 别名匹配:角色光环支持拼音模糊匹配和简繁转换,昵称也能命中角色设定
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 🔍 审查系统
|
|
|
+
|
|
|
+审查系统提供多维度的章节质量把控,分为 **AI 审稿**、**连贯性检查** 和 **角色一致性检查** 三个层面。
|
|
|
+
|
|
|
+**审查中心六维审查:**
|
|
|
+
|
|
|
+| 维度 | 说明 |
|
|
|
+|------|------|
|
|
|
+| 爽感密度 | 爽点分布是否合理、密度是否足够 |
|
|
|
+| 设定自洽 | 战力/地点/时间线等设定是否自相矛盾 |
|
|
|
+| 节奏张力 | 叙事节奏是否合理、张弛是否有度 |
|
|
|
+| 人设一致 | 角色行为是否偏离人设、对话是否符合性格 |
|
|
|
+| 叙事衔接 | 场景转换是否自然、前后文是否衔接 |
|
|
|
+| 追读引力 | 章末钩子是否有力、读者期待管理是否到位 |
|
|
|
+
|
|
|
+**AI 审稿流程:**
|
|
|
+1. 读取目标章节正文
|
|
|
+2. 加载大纲、人物状态、伏笔状态、时间线、角色认知
|
|
|
+3. LLM 逐维度检查,输出结构化审稿意见
|
|
|
+4. 按严重程度分级:阻塞 / 高 / 中 / 低
|
|
|
+5. 提供具体修改建议与原文证据
|
|
|
+
|
|
|
+**角色一致性检查(专项能力):**
|
|
|
+
|
|
|
+审查阶段会专门校验角色是否脱离记忆库设定:
|
|
|
+- AI 先从初稿提取所有出场角色,再逐个对照记忆库(角色光环、人物状态、角色认知状态)
|
|
|
+- 标注每个角色的命中状态,判断是否脱离设定
|
|
|
+- 审查前用初稿正文重新匹配角色光环,补齐配角、新角色登场时的光环注入缺失
|
|
|
+- 长章节(>8000 字)自动分段并行审查(最多 3 段覆盖 24000 字)
|
|
|
+- 返修后新增阶段 5.5 复审闭环,确认返修是否引入新阻断问题
|
|
|
+- 结果在审查中心以独立的"角色命中记忆库报告"面板呈现
|
|
|
+
|
|
|
+**连贯性检查(Lint):**
|
|
|
+
|
|
|
+自动检测结构性问题:
|
|
|
+- 时间线冲突
|
|
|
+- 人设崩坏
|
|
|
+- 伏笔错乱
|
|
|
+- 角色认知越界
|
|
|
+- 缺失的关系引用
|
|
|
+
|
|
|
+每个问题输出包含严重程度、类型、原文证据、相关记忆和修改建议。
|
|
|
+
|
|
|
+**事实检查(Fact Check):**
|
|
|
+
|
|
|
+基于章节快照的事实验证系统,检测新章节中是否存在与既有 Canon 正史矛盾的内容。
|
|
|
+
|
|
|
+**伏笔债务追踪:**
|
|
|
+
|
|
|
+自动统计长期未回收的伏笔,计算债务评分,提醒作者哪些伏笔需要推进或收束。
|
|
|
+
|
|
|
+---
|
|
|
+<img width="1072" height="780" alt="image" src="https://github.com/user-attachments/assets/a685a212-7a56-4354-b018-f243b9357141" />
|
|
|
+
|
|
|
+### ✍️ 小说写作问题解决方案
|
|
|
+
|
|
|
+针对长篇 AI 写作的常见崩坏问题,青幕AI写作提供系统性解决方案:
|
|
|
+
|
|
|
+| 问题 | 解决方案 |
|
|
|
+|------|----------|
|
|
|
+| AI 写到后期遗忘前文 | 章节快照 + 最近章节正文片段 + 混合检索 + 上下文包自动组装 |
|
|
|
+| 人物性格前后不一致 | 角色状态追踪 + 灵魂绑定 + 人设一致性审查 + 角色命中记忆库检查 |
|
|
|
+| 时间线混乱 | 结构化时间线 + 连贯性检查 + 时间线冲突报警 |
|
|
|
+| 伏笔丢失或错乱 | 伏笔追踪器 + 债务评分 + 自动检测未回收伏笔 |
|
|
|
+| 角色知道不该知道的信息 | 角色认知系统(knows / does_not_know) |
|
|
|
+| AI 生成错误内容污染后续 | 草稿/正式章节分离 + 人工确认后才入库 |
|
|
|
+| 大纲执行偏移 | 大纲一致性审查 + 上下文强制注入大纲规则 |
|
|
|
+| 生成内容 AI 味重 | 去AI化改写(De-AI)+ 项目灵魂风格控制 + 作品文风约束 |
|
|
|
+| 不知道如何写好某种文风 | 拆书库提取成熟作品的 9 维文风,直接复用 |
|
|
|
+| 设定散落难以追踪 | 图谱可视化 + 结构化记忆 + 全文搜索 |
|
|
|
+| 长章节超出模型上下文 | 发送前按模型真实输入上限自动裁剪并重试 |
|
|
|
+
|
|
|
+**草稿机制:**
|
|
|
+
|
|
|
+AI 生成的章节默认为草稿状态。草稿支持预览、编辑、重新生成、审稿。只有用户确认后才会保存为正式章节并触发记忆摄取。草稿不会污染正式记忆库。
|
|
|
+
|
|
|
+**去AI化改写(De-AI):**
|
|
|
+
|
|
|
+内置文风转化能力,将 AI 生成的"标准化"文本改写为更贴近人类写作的自然风格,减少模板化表达。
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 🕸️ 图谱功能
|
|
|
+
|
|
|
+小说图谱将作品中的所有实体和关系以网络形式可视化呈现。
|
|
|
+
|
|
|
+**节点类型:**
|
|
|
+- 人物、地点、组织、物品
|
|
|
+- 事件、章节、大纲
|
|
|
+- 伏笔、秘密、冲突、时间点
|
|
|
+
|
|
|
+**关系类型:**
|
|
|
+- 出场于、发生于、持有
|
|
|
+- 敌对、合作、怀疑、隐瞒
|
|
|
+- 知道、不知道
|
|
|
+- 推进伏笔、回收伏笔、新增伏笔
|
|
|
+- 导致、揭示、影响
|
|
|
+
|
|
|
+**图谱构建逻辑:**
|
|
|
+
|
|
|
+图谱数据来源于章节摄取过程。每当正式章节保存后,系统自动从快照中提取图谱节点和关系边,增量更新全局图谱。
|
|
|
+
|
|
|
+**应用场景:**
|
|
|
+- 查看某角色的完整关系网络
|
|
|
+- 追踪某个伏笔涉及的所有章节和角色
|
|
|
+- 发现孤立节点(缺乏关联的设定)
|
|
|
+- 分析剧情线的关键路径
|
|
|
+
|
|
|
+图谱视图基于 Sigma.js + ForceAtlas2 布局,支持社区发现、节点过滤和交互式探索。
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 其他功能
|
|
|
+
|
|
|
+- **大纲管理**:总大纲 → 分卷大纲 → 章节细纲,三级大纲体系;支持 AI 大纲、细化生成、一键提取
|
|
|
+- **章节生成**:续写、扩写、改写、润色,多种生成模式;支持章节移动到卷、右键重命名/删除
|
|
|
+- **剧情搜索**:关键词 + 语义 + 图谱混合搜索
|
|
|
+- **模型管理**:内置预设(DeepSeek、Google、智谱等)多选启用;自定义模型标签式批量管理、批量测试 + 失败重试;「默认模型」机制统筹后台任务
|
|
|
+- **数据管理**:一键导出/导入全部数据(AI 会话、大纲、模型、记忆),重装系统可完美恢复
|
|
|
+- **界面调节**:全局界面字号调节(85%-130%),中文 / 英文双语界面
|
|
|
+- **自动更新**:内置 Tauri Updater,启动时自动检测 GitHub Releases 新版本;Windows 更新前等待主程序释放文件句柄
|
|
|
+- **使用说明入口**:章节、大纲、图谱、记忆中心、灵魂、审查、设置等核心功能图标悬停可查看使用说明
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 技术架构
|
|
|
+
|
|
|
+```
|
|
|
+┌─────────────────────────────────────────────────┐
|
|
|
+│ 前端 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 |
|
|
|
+| 富文本编辑 | Milkdown 7 |
|
|
|
+| 图谱渲染 | Sigma.js 3 + Graphology |
|
|
|
+| 图表/流程图 | Mermaid |
|
|
|
+| 简繁转换 | OpenCC |
|
|
|
+| 拼音匹配 | pinyin-pro |
|
|
|
+| 后端 | 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 对话面板
|
|
|
+│ │ ├── 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 构建配置
|
|
|
+```
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 本地开发
|
|
|
+
|
|
|
+### 前置依赖
|
|
|
+
|
|
|
+- 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
|
|
|
+
|
|
|
+# 构建 GitHub 发布版(含签名与 latest.json)
|
|
|
+npm run build:github-release
|
|
|
+```
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 代码规范
|
|
|
+
|
|
|
+- 前端代码使用 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)
|