文章

开发文档

AI 智能小说创作助手(NovelForge AI)—— 完整开发文档

170 分钟 6.8w 字 12 阅读

AI 智能小说创作助手(NovelForge AI)—— 完整开发文档

本文档是交给「华为云码道 CodeArts 代码智能体」(或任意 AI 编程工具)的项目级开发需求规格说明书。 开发模式:对话式全栈开发。技术栈: Vue 3 + Go ,交付形态: Windows 桌面安装包 。 文档版本:v1.0 | 编写日期:2026-10-09


目录

*

  1. 产品定义

*

  1. 目标用户与使用场景

*

  1. 部署形态

*

  1. 总体功能清单(功能全景)

*

  1. 技术栈选型

*

  1. 系统架构

*

  1. 项目目录结构
  • 4.1 AI 模型管理模块
  • 4.2 小说创建与参数预设
  • 4.3 大纲生成系统
  • 4.4 章节生成引擎(核心)
  • 4.5 角色系统
  • 4.6 物品系统
  • 4.7 地图系统
  • 4.8 伏笔管理
  • 4.9 封面系统
  • 4.10 小说阅读器
  • 4.11 TXT 导出
  • 4.12 项目管理与历史列表
  • 4.13 人工编辑与自动保存
  • 4.14 数据统计与备份

第一部分 项目概述与总体设计

1. 产品定义

1.1 产品名称

  • 中文名:AI 智能小说创作助手
  • 英文名:NovelForge AI
  • 定位:本地化桌面小说创作生产力工具,由 AI 大模型驱动,一键生成 "大纲 — 章节 — 角色 — 物品 — 地图 — 伏笔 — 封面" 全要素完整小说工程。

1.2 产品核心价值

  1. 全流程自动化:用户只需填写少量参数(分类、标签、描述、章节数量、章节字数、文风、叙事视角等),即可自动生成完整小说及全部配套资料(角色卡、关系图谱、物品、地图、伏笔、封面提示词、大纲等)。
  1. 章节连贯性保障:生成引擎严格遵循 "故事大纲 + 章节大纲" 约束,通过上下文管理、状态追踪、伏笔状态机、防重复校验,保证 10–2000 章长篇小说前后衔接、不跑题、不重复。
  1. 本地化与隐私:所有数据(小说、配置、密钥)存储在本地 SQLite;支持接入任何大模型(云端 API 或本地 Ollama),密钥本地加密保存,可完全离线创作。
  1. 可编辑、可导出、可阅读:所有生成内容支持人工修改;一键导出 TXT;内置小说风格阅读器在线阅读。
  1. 开箱即用:提供 Windows 安装包(NSIS),双击安装即可使用,无需配置开发环境。

1.3 目标用户

  • 网文作者 / 兼职写手(需要快速出稿、搭世界观、管理伏笔)
  • AI 小说创作爱好者(非程序员)
  • 内容工作室(批量生产商业小说 / 短篇集)

1.4 关键约束(用户明确要求,必须满足)

编号约束
C1技术栈固定为 Vue(前端)+ Go(后端)
C2交付 Windows 安装包,安装即用
C3支持所有主流 AI 大模型,可选或自定义,用户自配接口密钥
C4章节数量支持 10–2000 章
C5章节必须衔接贯通、不重复、不跑题,严格符合故事大纲与章节大纲
C6生成要素:角色图谱关系链、角色卡片、角色详情、物品卡、物品详情、地图卡、地图详情、封面、大纲、章节大纲、章节列表、阅读器、伏笔管理、小说介绍、封面 AI 生成描述词(商业向)
C7支持查看已生成小说历史列表
C8章节生成支持断点续传
C9所有已生成信息支持人工编辑修改
C10支持导出 TXT 文件
C11支持在线阅读器
C12UI 支持黑白双主题切换,窗口顶部标题栏同步变色,整套 UI 带动画与小说风格

2. 目标用户与使用场景

(说明:此节为目录占位,具体内容并入 1.3 / 使用场景如下)

典型使用流程(主场景):

  1. 用户在「设置」中配置 1 个或多个模型(如 DeepSeek / 通义 / 豆包 / OpenAI / Ollama 本地),填写 API Key 并测试连通。
  1. 点击「新建小说」→ 进入创作向导:选择生成模型、填写标题(可空,AI 生成)、分类、标签、简介 / 描述、章节数量、每章字数、文风、叙事视角(均有预设可快速选择)。
  1. 点击「开始生成」→ 系统按顺序执行:生成故事大纲 → 生成章节大纲 → 逐章生成正文(流式展示)→ 每章完成后自动抽取 / 更新角色、物品、地图、伏笔、章节摘要。
  1. 生成过程中可随时「暂停 / 继续 / 停止」;中断或失败后可「断点续传」。
  1. 生成完成后在「小说工作台」查看与编辑:角色图谱(力导向关系图)、角色卡 / 详情、物品卡 / 详情、地图卡 / 详情、伏笔管理、封面(含商业级 AI 绘图提示词)、大纲、章节大纲、章节列表、小说介绍。
  1. 在「阅读器」在线阅读全文(换主题、调字号、加书签)。
  1. 一键导出 TXT;可随时回到「历史列表」继续管理旧项目。

3. 部署形态

  • 形态:Windows 桌面应用(原生窗口 + 系统标题栏,支持标题栏深浅色同步)。
  • 安装方式:NSIS 安装包(Setup.exe),安装向导、可选安装路径、桌面快捷方式、开始菜单项。
  • 运行时:前端 Vue 构建产物由 Go 后端以单二进制内嵌方式托管,无需用户安装 Node / 浏览器。
  • 数据:默认数据目录 %APPDATA%\NovelForge\(含 novelforge.db 数据库、covers/ 封面图片、exports/ 导出文件、logs/ 日志)。

4. 总体功能清单(功能全景)

下表为产品功能全景,★ 为优先级(P0 必须、P1 重要、P2 增强)。 斜体项为在用户原始需求基础上补充完善的功能 。

模块功能点说明优先级
模型管理预置模型库内置主流模型模板(见 4.1)P0
模型管理自定义模型任意 OpenAI 兼容 API / Anthropic / Gemini,自定义 Base URL + Key + 模型名P0
模型管理密钥本地加密密钥使用本机机器密钥 AES 加密存储,界面掩码显示P0
模型管理连通性测试一键测试模型可用性、延迟、上下文上限P0
模型管理生成参数全局默认值默认温度、超时、重试次数、并发 = 1 顺序生成P1
小说创建创作向导模型、标题、分类、标签、描述、章节数、章节字数、文风、视角、语言P0
小说创建预设体系分类预设 / 标签预设 / 文风预设 / 视角预设 / 语言预设P0
小说创建字数与成本预估按字数 × 章数 × 模型单价预估 Token 与成本P1
大纲系统故事大纲生成卷 / 幕结构、主线、冲突、结局走向P0
大纲系统章节大纲生成每章核心事件、出场角色、伏笔、结尾钩子P0
大纲系统大纲校验与编辑大纲可人工编辑,改动后可选 "重新生成受影响章节"P0
章节引擎顺序生成 10–2000 章严格按章节大纲逐章生成P0
章节引擎上下文一致性管理全局设定 + 章节摘要 + 关键事件记忆 + 角色状态注入P0
章节引擎防重复防跑题大纲符合度约束 + 与前文相似度检测 + 校验重试P0
章节引擎流式输出生成过程实时流式展示P0
章节引擎断点续传任务状态机 + 进度持久化,中断 / 失败可续P0
章节引擎暂停 / 继续 / 停止生成队列控制P0
章节引擎失败自动重试指数退避重试,超限自动暂停并提示P0
章节引擎章节摘要自动生成每章完成后生成 200–300 字摘要,供上下文引用P0
角色系统角色自动抽取从大纲 / 章节自动识别角色并建卡P0
角色系统角色卡片姓名、身份、外貌、性格、能力、目标、口头禅等P0
角色系统角色详情完整档案 + 出场章节 + 状态变化时间线P0
角色系统关系图谱力导向图展示角色关系链,可点击跳转详情P0
角色系统角色状态追踪当前位置 / 目标 / 情绪 / 状态持续更新(一致性核心)P0
物品系统物品卡 / 物品详情名称、类型、归属、能力、出现章节、状态P0
地图系统地图卡 / 地图详情地点、区域归属、与章节 / 角色 / 物品的关联P0
伏笔管理伏笔列表与状态机埋设→发展→回收 三态管理,关联章节P0
伏笔管理伏笔回收提醒大纲阶段规划伏笔回收点,生成到该章节时强提醒P1
封面系统AI 封面描述词生成商业级绘图提示词(风格 / 构图 / 光线 / 色彩 / 商用元素)P0
封面系统封面图本地管理封面图片存储、预览、替换(支持 AI 绘图工具出图后导入)P1
小说介绍自动生成简介、卖点、受众定位、SEO 关键词P0
阅读器在线阅读器目录、翻页 / 滚动、字号 / 行距 / 字体、书签、进度记忆、深浅主题P0
导出TXT 导出全文 / 分卷导出,UTF-8/GBK 编码,排版选项P0
导出工程文件备份 / 恢复导出 JSON 工程包,可再次导入P1
项目管理历史列表全部已生成小说,搜索 / 筛选 / 排序,显示统计信息P0
人工编辑全要素可编辑大纲、章节、角色、物品、地图、伏笔、介绍、封面词全部支持编辑P0
人工编辑自动保存与草稿编辑防丢,本地草稿自动保存P1
UI黑白双主题浅色(纸墨书香)/ 深色(午夜书房),全局一键切换P0
UI标题栏主题同步窗口顶部标题栏随主题切换深浅色P0
UI动画与小说风格页面过渡、骨架屏、打字机效果、图谱动画、章节翻页动效P0
系统日志与异常上报本地日志文件,崩溃兜底提示P1
系统全局快捷键新建小说 / 开始生成 / 暂停 / 主题切换等快捷键P2
系统检查更新可配置自动检查更新(P2 可选)P2

5. 技术栈选型

5.1 总体选型(Vue + Go 桌面应用)

层选型说明
桌面壳Wails v2(Go)Go 写桌面应用 + WebView 渲染前端,天然满足 Vue+Go,单 exe、体积小、原生窗口控制(支持标题栏主题同步)。首选方案
备选壳Electron + Go 侧车服务若需更稳定的 WebView 兼容性可切换;Go 后端以本地 HTTP 服务提供 API,Electron 渲染 Vue 前端。实现方式需整体调整,默认不采用
前端框架Vue 3 + TypeScript组合式 API
前端构建Vite快速开发与打包
状态管理Pinia全局状态(主题、当前小说、生成任务进度)
路由Vue Router页面路由
UI 组件库Naive UI(推荐)内置完善暗色主题、主题切换 API、动画过渡组件;备选 Element Plus
图表ECharts 5角色关系图谱(力导向图)、统计图表
富文本 / 阅读器自研阅读器 + marked(如需 Markdown 渲染)章节正文以纯文本为主,阅读器自研
后端框架Go + Gin(或标准库 net/http)RESTful API
ORMGORM数据库操作
数据库SQLite(modernc.org/sqlite 纯 Go 驱动,无需 CGO)单文件、零配置、本地存储
AI SDK自研统一适配层(不依赖单一 SDK)OpenAI 兼容协议为主 + Anthropic + Gemini 原生协议 + Ollama 本地
密钥加密AES-256-GCM + 本机密钥(DPAPI 或机器指纹派生)本地密钥安全
打包NSIS(或 Wails 内置打包 + wails build -nsis)安装向导

5.2 为什么不选纯 Web / 纯 Electron

  • 纯 Web 无法满足 "安装包安装 + 顶部标题栏主题同步";Electron 体积大、内存高;Wails(Go)与用户指定的 Vue+Go 技术栈完全一致,且原生支持窗口外观控制。

5.3 前端依赖清单(package.json 要点)

vue ^3.4, vue-router ^4, pinia ^2, naive-ui ^2, echarts ^5,

vite ^5, typescript ^5, axios(或原生 fetch), marked(可选)

5.4 后端依赖清单(go.mod 要点)

github.com/wailsapp/wails/v2          // 桌面壳

gorm.io/gorm + gorm.io/driver/sqlite  // ORM

modernc.org/sqlite                    // 纯 Go SQLite(免 CGO)

github.com/gin-gonic/gin              // HTTP(若 Wails 内嵌模式则用标准库即可)

github.com/google/uuid

golang.org/x/crypto                   // AES-GCM

github.com/sirupsen/logrus            // 日志

6. 系统架构

6.1 架构总览(Mermaid)

flowchart TB
    subgraph Frontend["前端层 Vue3 + TS(WebView 渲染)"]
        UI[小说工作台 UI<br/>向导/大纲/章节/角色/物品/地图/伏笔/封面/阅读器]
        Store[Pinia 状态管理<br/>主题/任务进度/当前小说]
        Charts[ECharts 关系图谱与统计]
    end

    subgraph Backend["后端层 Go(Wails Runtime 内嵌)"]
        API[HTTP / Wails 绑定 API 层]
        SVC[业务服务层<br/>小说/大纲/章节/角色/物品/地图/伏笔/封面/导出]
        GEN[AI 生成引擎<br/>上下文组装/一致性校验/断点续传]
        ADAPT[模型适配器<br/>OpenAI兼容/Anthropic/Gemini/Ollama]
        DB[(SQLite 本地数据库)]
        FILES[本地文件:封面/导出/日志]
    end

    UI --> Store
    UI --> API
    Store --> API
    API --> SVC
    SVC --> GEN
    SVC --> DB
    GEN --> ADAPT
    ADAPT -->|HTTPS| CLOUD["云端大模型 API"]
    ADAPT -->|HTTP| OLLAMA["本地 Ollama"]
    SVC --> FILES

6.2 核心数据流(一次完整小说生成)

sequenceDiagram
    participant U as 用户
    participant FE as 前端
    participant BE as Go后端
    participant AI as 大模型API
    U->>FE: 新建小说并填写参数
    FE->>BE: POST /api/v1/novels (创建+配置)
    BE-->>FE: 返回 novel_id
    U->>FE: 点击"开始生成"
    FE->>BE: POST /api/v1/novels/:id/generate
    BE->>AI: 生成故事大纲(JSON)
    BE->>AI: 生成章节大纲(JSON,含伏笔规划)
    BE-->>FE: 推送大纲完成事件(SSE/轮询)
    loop 每个章节 i = 1..N
        BE->>BE: 组装上下文(全局设定+章节摘要+角色状态+伏笔+本章大纲)
        BE->>AI: 生成章节正文(流式)
        AI-->>BE: 流式文本
        BE-->>FE: 实时推送流式文本
        BE->>BE: 一致性校验(防重复/大纲符合度)
        BE->>AI: 生成章节摘要+抽取角色/物品/伏笔变化(JSON)
        BE->>BE: 落库+更新角色状态/伏笔状态机
    end
    BE-->>FE: 生成完成事件
    FE->>BE: GET 各要素数据 → 渲染图谱/卡片/阅读器

7. 项目目录结构

novelforge/

├── frontend/                      # Vue 3 前端

│   ├── src/

│   │   ├── main.ts

│   │   ├── App.vue

│   │   ├── router/index.ts        # 路由

│   │   ├── stores/                # Pinia:theme / novel / task / settings

│   │   ├── api/                   # 后端 API 封装

│   │   ├── components/            # 通用组件(骨架屏/打字机/图谱/卡片)

│   │   ├── views/

│   │   │   ├── Home.vue           # 工作台/历史列表

│   │   │   ├── CreateWizard.vue   # 创作向导

│   │   │   ├── NovelWorkspace.vue # 小说工作台(Tab 容器)

│   │   │   ├── workspace/         # Outline / Chapters / Characters / Items / Maps / Foreshadows / Cover / Intro

│   │   │   ├── Reader.vue         # 阅读器

│   │   │   ├── Settings.vue       # 模型与全局设置

│   │   │   └── GenerationPanel.vue# 生成面板(流式/进度/控制)

│   │   ├── styles/                # 主题变量(浅色/深色)、动画

│   │   └── utils/

│   └── package.json / vite.config.ts

├── backend/

│   ├── main.go                    # Wails 入口

│   ├── internal/

│   │   ├── api/                   # 路由与 handler

│   │   ├── service/               # 业务服务

│   │   ├── engine/                # AI 生成引擎(核心)

│   │   │   ├── context.go         # 上下文组装

│   │   │   ├── pipeline.go        # 生成流水线/状态机

│   │   │   ├── validate.go        # 一致性/防重复校验

│   │   │   └── prompt.go          # Prompt 模板

│   │   ├── adapter/               # 模型适配器

│   │   │   ├── openai.go  anthropic.go  gemini.go  ollama.go  factory.go

│   │   ├── model/                 # GORM 模型

│   │   ├── store/                 # 数据访问层

│   │   └── util/                  # 加密/文本/日志

│   └── go.mod

├── build/                         # Wails 构建资源、NSIS 脚本、图标

└── README.md / 安装说明.md

第二部分 数据模型设计

数据库:SQLite 单文件 novelforge.db 。全部表使用 utf8mb4 ,时间字段统一 UTC 存储、前端本地化显示。 约定:主键 id 为 INTEGER 自增; novel_id 外键统一指向 novels.id ;所有表包含 created_at / updated_at 。 生成类文本字段(正文、大纲、卡片内容)一律使用 TEXT 。

2.1 表清单总览

表名用途
novels小说主表(含介绍、统计信息)
novel_configs小说生成配置(模型、分类、标签、章节数、字数、文风、视角)
story_outlines故事大纲(卷 / 幕结构)
chapter_outlines章节大纲
chapters章节正文
chapter_summaries章节摘要(一致性上下文用)
characters角色卡
character_relations角色关系(图谱数据)
character_states角色状态快照(位置 / 目标 / 情绪时间线)
items物品卡
maps地图 / 地点卡
foreshadowings伏笔
covers封面(AI 提示词 + 图片)
generation_tasks生成任务(断点续传核心)
model_configs模型配置
app_settings全局设置(KV)
bookmarks阅读书签
reading_progress阅读进度
generation_logs生成日志

2.2 各表字段设计

novels(小说主表)

字段类型说明
idINTEGER PK
titleTEXT标题(可 AI 生成)
categoryTEXT分类(玄幻 / 都市 / 科幻 / 悬疑 / 言情 / 历史 / 武侠 / 轻小说 / 军事 / 游戏等)
tagsTEXT标签,JSON 数组字符串,如 ["热血","重生","系统"]
descriptionTEXT用户描述 / 创意来源
introTEXT小说介绍(AI 生成,含卖点 / 受众 / SEO)
statusTEXT创作状态:draft/outlining/outline_done/generating/paused/completed/failed
total\_chaptersINTEGER目标章节数(10–2000)
total\_wordsINTEGER全书目标字数(约 = 章节数 × 章节字数)
generated\_chaptersINTEGER已生成章节数
languageTEXT语言:zh-CN 默认,可扩展 en
cover\_idINTEGER关联 covers.id(可空)
created\_at / updated\_atDATETIME

novel\_configs(生成配置,与 novels 一对一)

字段类型说明
idINTEGER PK
novel\_idINTEGER FK
model\_config\_idINTEGER FK使用的模型配置
chapter\_countINTEGER章节数量 10–2000
chapter\_wordsINTEGER每章字数(如 2000/3000/5000,预设 + 自定义)
writing\_styleTEXT文风(见 4.2 预设)
povTEXT叙事视角:first(第一人称)/ third_limited(第三人称限知)/ third_omniscient(第三人称全知)/ second(第二人称)
temperatureREAL温度(默认 0.8,可 0–1.5)
outline\_firstBOOLEAN是否先大纲后正文(默认 true)
auto\_extractBOOLEAN每章后自动抽取角色 / 物品 / 伏笔(默认 true)
extra\_promptTEXT用户附加要求(可选)

story\_outlines(故事大纲)

字段类型说明
idINTEGER PK
novel\_idINTEGER FK
volumeINTEGER卷序号(第几卷)
volume\_titleTEXT卷名
outline\_textTEXT该卷大纲正文(主线 / 冲突 / 转折 / 结局)
orderINTEGER排序

chapter\_outlines(章节大纲)

字段类型说明
idINTEGER PK
novel\_idINTEGER FK
chapter\_indexINTEGER章节序号 1..N(唯一约束 novel\_id+chapter\_index)
titleTEXT拟定章节名
summaryTEXT本章核心事件(150–300 字)
charactersTEXT出场角色名 JSON 数组
locationsTEXT涉及地点 JSON 数组
foreshadow\_setTEXT本章埋设伏笔 JSON 数组
foreshadow\_revealTEXT本章回收伏笔 JSON 数组
ending\_hookTEXT结尾钩子 / 悬念设计
statusTEXTpending/generated/failed

chapters(章节正文)

字段类型说明
idINTEGER PK
novel\_idINTEGER FK
chapter\_indexINTEGER章节序号(唯一约束 novel\_id+chapter\_index)
titleTEXT章节标题
contentTEXT正文(纯文本,含段落分隔)
word\_countINTEGER实际字数
outline\_idINTEGER FK对应章节大纲
statusTEXTgenerating/generated/edited/failed
is\_editedBOOLEAN是否被人工编辑过
generated\_modelTEXT生成时使用的模型名
created\_at / updated\_atDATETIME

chapter\_summaries(章节摘要 —— 一致性核心)

字段类型说明
idINTEGER PK
novel\_idINTEGER FK
chapter\_indexINTEGER
summaryTEXT200–300 字章节摘要
key\_eventsTEXT关键事件列表 JSON
digestTEXT每 10 章压缩一次的记忆摘要(滚动窗口)
updated\_atDATETIME

characters(角色卡)

字段类型说明
idINTEGER PK
novel\_idINTEGER FK
nameTEXT姓名
role\_typeTEXT主角 / 重要配角 / 配角 / 反派 / 龙套
identityTEXT身份 / 职业
appearanceTEXT外貌描述
personalityTEXT性格
abilitiesTEXT能力 / 功法 / 特长
goalsTEXT目标 / 动机
backgroundTEXT背景故事
habitsTEXT口头禅 / 习惯
first\_appear\_chapterINTEGER首次出场章节
last\_appear\_chapterINTEGER最近出场章节
is\_ai\_generatedBOOLEAN是否 AI 抽取生成
cover\_promptTEXT角色立绘 AI 提示词(可选,商业向)

character\_relations(角色关系 —— 图谱数据)

字段类型说明
idINTEGER PK
novel\_idINTEGER FK
source\_char\_idINTEGER FK角色 A
target\_char\_idINTEGER FK角色 B
relation\_typeTEXT关系类型(师徒 / 恋人 / 仇敌 / 兄弟 / 上下级 / 盟友 / 宿敌…)
descriptionTEXT关系描述
strengthINTEGER关系强度 1–10(图谱连线粗细)
chapter\_indexINTEGER关系确立 / 变化的章节

character\_states(角色状态快照)

字段类型说明
idINTEGER PK
novel\_idINTEGER FK
character\_idINTEGER FK
chapter\_indexINTEGER快照所在章节
locationTEXT当前位置
emotionTEXT当前情绪
current\_goalTEXT当前目标
statusTEXT状态(受伤 / 中毒 / 突破 / 昏迷…)
relationships\_noteTEXT关系变化备注

items(物品卡)

字段类型说明
idINTEGER PK
novel\_idINTEGER FK
nameTEXT物品名
item\_typeTEXT类型(武器 / 法宝 / 丹药 / 书籍 / 信物 / 科技造物 / 普通道具…)
ownerTEXT当前归属角色
originTEXT来历
abilityTEXT能力 / 功能描述
historyTEXT物品经历 / 重要事件
first\_appear\_chapterINTEGER首次出现章节
last\_appear\_chapterINTEGER最近出现章节
cover\_promptTEXT物品 AI 提示词(可选)

maps(地图 / 地点卡)

字段类型说明
idINTEGER PK
novel\_idINTEGER FK
nameTEXT地点名
regionTEXT所属区域 / 大陆 / 国家
map\_typeTEXT城池 / 宗门 / 森林 / 秘境 / 国家 / 星球…
descriptionTEXT地点描述
significanceTEXT剧情意义 / 重要事件
related\_charactersTEXT常驻角色 JSON
first\_appear\_chapterINTEGER首次出现章节
cover\_promptTEXT场景 AI 提示词(可选)

foreshadowings(伏笔)

字段类型说明
idINTEGER PK
novel\_idINTEGER FK
contentTEXT伏笔内容描述
statusTEXTplanted(埋设)/ developing(发展)/ revealed(回收)
plant\_chapterINTEGER埋设章节
develop\_chaptersTEXT发展章节 JSON
reveal\_chapterINTEGER计划回收章节(大纲规划)
actual\_reveal\_chapterINTEGER实际回收章节
importanceINTEGER重要度 1–5
related\_charactersTEXT关联角色 JSON

covers(封面)

字段类型说明
idINTEGER PK
novel\_idINTEGER FK
prompt\_textTEXT商业级 AI 绘图提示词(多方案可存多行)
styleTEXT封面风格(国风 / 赛博 / 日漫 / 写实…)
image\_pathTEXT本地封面图片路径(用户用绘图工具出图后导入)
is\_activeBOOLEAN是否当前使用
created\_at / updated\_atDATETIME

generation\_tasks(生成任务 —— 断点续传核心)

字段类型说明
idINTEGER PK
novel\_idINTEGER FK
stageTEXToutline / chapter_outline / chapter / post_process / done
chapter\_indexINTEGER当前进行到的章节号(断点位置)
statusTEXTqueued/running/paused/stopped/error/completed
progressREAL0–100
error\_messageTEXT最近一次错误
retry\_countINTEGER当前章节已重试次数
last\_error\_atDATETIME
started\_at / finished\_atDATETIME
resume\_tokenTEXT断点续传令牌(含上下文指纹,防陈旧上下文)

model\_configs(模型配置)

字段类型说明
idINTEGER PK
nameTEXT显示名(如 "DeepSeek-V3")
providerTEXTopenai_compatible / anthropic / gemini / ollama
base\_urlTEXTAPI 地址(OpenAI 兼容 / Ollama 必填;官方可留默认)
api\_key\_encryptedTEXTAES-GCM 加密后的密钥
model\_nameTEXT模型标识(如 deepseek-chat)
context\_windowINTEGER上下文上限(tokens,用于分窗)
max\_output\_tokensINTEGER单次最大输出
is\_defaultBOOLEAN是否默认模型
is\_enabledBOOLEAN是否启用
extraTEXT扩展 JSON(如 anthropic 版本、gemini 项目)

app\_settings(全局设置 KV)

字段类型说明
keyTEXT PK如 theme / default_style / max_retries / retry_delay
valueTEXT值(JSON 序列化)

bookmarks /reading\_progress(阅读器)

字段类型说明
id / novel\_id / chapter\_index / note / created\_at书签
novel\_id(PK) / last\_chapter / scroll\_percent / font\_size / theme / updated\_at阅读进度

generation\_logs(生成日志)

字段类型说明
idINTEGER PK
novel\_idINTEGER FK
levelTEXTinfo/warn/error
stageTEXT阶段
chapter\_indexINTEGER章节(可空)
messageTEXT日志内容
created\_atDATETIME

第三部分 后端 API 设计

接口风格:RESTful JSON,统一前缀 /api/v1 。在 Wails 模式下由 Go 直接注册路由;如需 Electron 侧车模式,则为 127.0.0.1:端口 本地服务。 通用响应格式:

{ "code": 0, "message": "ok", "data": {...} }

code=0 成功;非 0 为错误码。分页参数统一 ?page=1&page_size=20 。

3.1 模型管理

方法路径说明
GET/api/v1/models模型配置列表(密钥脱敏)
POST/api/v1/models新增模型配置
PUT/api/v1/models/:id修改模型配置
DELETE/api/v1/models/:id删除模型配置
POST/api/v1/models/:id/test连通性测试(返回延迟 / 上下文可用性)
GET/api/v1/models/presets预置模型模板列表(供一键填入)

3.2 小说与项目管理

方法路径说明
GET/api/v1/novels历史列表(分页 + 关键词 / 分类 / 状态筛选 + 排序)
GET/api/v1/novels/:id小说详情(含统计)
POST/api/v1/novels创建小说(含 config)
PUT/api/v1/novels/:id修改小说基本信息
DELETE/api/v1/novels/:id删除小说(级联删除,弹窗确认)
GET/api/v1/novels/:id/stats字数 / 章节 / 进度统计(供仪表盘)
POST/api/v1/novels/:id/export-txt导出 TXT(参数:范围、编码、排版)
POST/api/v1/novels/:id/export-project导出 JSON 工程包
POST/api/v1/novels/:id/import-project导入工程包

3.3 生成任务(断点续传核心)

方法路径说明
POST/api/v1/novels/:id/generate启动生成(创建 / 恢复任务)
POST/api/v1/novels/:id/generate/pause暂停
POST/api/v1/novels/:id/generate/resume断点续传(自动从断点继续)
POST/api/v1/novels/:id/generate/stop停止(保留已生成内容)
GET/api/v1/novels/:id/generate/task任务状态(供轮询 / 断点信息)
GET/api/v1/novels/:id/generate/streamSSE 事件流:chapter_start / token / chapter_done / stage_change / error / done
POST/api/v1/novels/:id/generate/single-chapter单独生成指定章节(跳过 / 补章)

3.4 大纲

方法路径说明
GET/api/v1/novels/:id/outlines故事大纲(按卷)
PUT/api/v1/novels/:id/outlines/:outlineId编辑故事大纲
POST/api/v1/novels/:id/outlines/regenerate重新生成大纲(可选:保留角色 / 伏笔)
GET/api/v1/novels/:id/chapter-outlines章节大纲列表(分页)
PUT/api/v1/novels/:id/chapter-outlines/:id编辑章节大纲
POST/api/v1/novels/:id/chapter-outlines/regenerate-range重生成某区间章节大纲

3.5 章节

方法路径说明
GET/api/v1/novels/:id/chapters章节列表(分页 / 虚拟滚动,仅元信息)
GET/api/v1/novels/:id/chapters/:index章节详情(正文,可按需懒加载)
PUT/api/v1/novels/:id/chapters/:index人工编辑章节(保存后标记 is\_edited)
POST/api/v1/novels/:id/chapters/:index/regenerate重新生成该章节
GET/api/v1/novels/:id/chapters/:index/summary章节摘要

3.6 角色 / 关系 / 状态

方法路径说明
GET/api/v1/novels/:id/characters角色卡列表
GET/api/v1/novels/:id/characters/:cid角色详情(含出场章节、状态时间线)
POST/api/v1/novels/:id/characters手工新增角色
PUT/api/v1/novels/:id/characters/:cid编辑角色卡
DELETE/api/v1/novels/:id/characters/:cid删除角色
POST/api/v1/novels/:id/characters/extract手动触发角色抽取
GET/api/v1/novels/:id/character-graph关系图谱数据(nodes+edges)
PUT/api/v1/novels/:id/relations/:rid编辑关系
GET/api/v1/novels/:id/characters/:cid/states角色状态时间线

3.7 物品 / 地图

方法路径说明
GET/POST/PUT/DELETE/api/v1/novels/:id/items[/:iid]物品卡 CRUD
GET/POST/PUT/DELETE/api/v1/novels/:id/maps[/:mid]地图卡 CRUD

3.8 伏笔

方法路径说明
GET/api/v1/novels/:id/foreshadowings伏笔列表(按状态筛选)
POST/api/v1/novels/:id/foreshadowings手工新增
PUT/api/v1/novels/:id/foreshadowings/:fid编辑 / 变更状态(含回收登记)
DELETE/api/v1/novels/:id/foreshadowings/:fid删除
GET/api/v1/novels/:id/foreshadowings/checklist大纲规划的回收点检查表

3.9 封面 / 介绍

方法路径说明
GET/api/v1/novels/:id/covers封面方案列表(提示词 + 图片)
POST/api/v1/novels/:id/covers/generate-promptAI 生成商业级封面提示词(可多次生成多方案)
POST/api/v1/novels/:id/covers上传 / 导入封面图片(本地文件)
PUT/api/v1/novels/:id/covers/:cid编辑提示词 / 设为当前
DELETE/api/v1/novels/:id/covers/:cid删除封面方案
GET/api/v1/novels/:id/intro小说介绍
POST/api/v1/novels/:id/intro/generateAI 生成介绍(卖点 / 受众 / SEO)
PUT/api/v1/novels/:id/intro编辑介绍

3.10 阅读器

方法路径说明
GET/api/v1/novels/:id/reader/progress获取阅读进度
PUT/api/v1/novels/:id/reader/progress保存阅读进度
GET/api/v1/novels/:id/reader/bookmarks书签列表
POST/PUT/DELETE/api/v1/novels/:id/reader/bookmarks[/:bid]书签 CRUD
GET/api/v1/novels/:id/reader/toc目录(章节标题列表,用于快速跳转)

3.11 全局设置

方法路径说明
GET/PUT/api/v1/settings全局设置读写(主题、默认文风、重试策略等)
GET/api/v1/presets全部预设(分类 / 标签 / 文风 / 视角 / 封面风格)
GET/api/v1/system/health健康检查
GET/api/v1/system/logs最近日志(诊断用)

第四部分 核心功能详细设计

4.1 AI 模型管理模块

4.1.1 支持的模型范围("支持所有主流大模型" 的实现方式)

采用统一适配层(Adapter Factory),按协议分三类,覆盖几乎所有主流模型:

协议类型覆盖模型接入要点
OpenAI 兼容协议(默认主力)DeepSeek、通义千问、豆包(火山方舟)、智谱 GLM、Kimi/Moonshot、MiniMax、混元、讯飞星火、硅基流动、OpenAI、Ollama、vLLM / 本地推理等填 Base URL + API Key + Model 名即可,无需改代码
Anthropic 原生协议Claude 3.5/4 系列Base URL + Key + model,消息格式走 Anthropic 规范
Gemini 原生协议Gemini 系列走 gemini-1.5/2.x 接口,Key 可带 project/location 参数

4.1.2 预置模型模板(一键填入,可改)

前端 models/presets 至少内置:

DeepSeek-V3   | provider=openai\_compatible | base=https://api.deepseek.com/v1 | model=deepseek-chat

DeepSeek-R1   | provider=openai\_compatible | base=https://api.deepseek.com/v1 | model=deepseek-reasoner

通义千问       | provider=openai\_compatible | base=https://dashscope.aliyuncs.com/compatible-mode/v1 | model=qwen-max / qwen-plus

豆包(火山方舟) | provider=openai\_compatible | base=https://ark.cn-beijing.volces.com/api/v3 | model=ep-xxx(接入点ID)

智谱GLM       | provider=openai\_compatible | base=https://open.bigmodel.cn/api/paas/v4 | model=glm-4-plus

Kimi         | provider=openai\_compatible | base=https://api.moonshot.cn/v1 | model=kimi-k2-0711-preview

OpenAI       | provider=openai\_compatible | base=https://api.openai.com/v1 | model=gpt-4o / gpt-4o-mini

Claude       | provider=anthropic        | base=https://api.anthropic.com | model=claude-sonnet-4-20250514

Gemini       | provider=gemini            | base=https://generativelanguage.googleapis.com | model=gemini-2.0-flash

Ollama 本地   | provider=openai\_compatible | base=http://127.0.0.1:11434/v1 | model=qwen2.5:32b(自定义)

4.1.3 密钥安全

  • api_key_encrypted:使用 AES-256-GCM,密钥由本机指纹(Windows DPAPI CryptProtectData,Go 中 syscall/golang.org/x/sys/windows)派生,密钥只存在于本机。
  • 前端展示一律掩码(sk-****abc),编辑时可留空表示 "不修改"。
  • 测试连通时调用 GET /v1/models(OpenAI 兼容)或对应轻量接口,返回延迟与上下文窗口信息。

4.1.4 调用参数(全局默认,可在小说级覆盖)

temperature=0.8, max\_retries=3, retry\_backoff=指数退避(1s,2s,4s,8s),

timeout=120s(章节长文), request\_concurrency=1(顺序生成保证连贯)

4.2 小说创建与参数预设

4.2.1 创作向导(CreateWizard)页面字段

分三步:

  1. 基本信息:标题(可留空→AI 起名)、分类(下拉预设)、标签(多选 + 自定义)、描述 / 创意(textarea,可留空)、语言(默认简体中文)。
  1. 生成参数:生成模型(下拉,来自模型管理)、章节数量(10–2000,数字输入 + 滑块)、每章字数(预设 1000/2000/3000/5000/8000 + 自定义 500–20000)、文风(预设下拉 + 自定义)、叙事视角(四个预设单选)。
  1. 确认:显示字数 / 成本预估(按模型单价估算 Token 与费用)、附加要求(extra\_prompt 可选)、勾选 "先生成大纲"。

4.2.2 预设体系(写死在代码常量或 app_settings 中,页面下拉使用)

分类预设:玄幻、奇幻、都市、科幻、悬疑、推理、言情、历史、军事、武侠、仙侠、网游、游戏、轻小说、二次元、体育、灵异、惊悚、末世、赘婿 / 战神、系统流、同人

文风预设(每个预设 = 一段可注入 Prompt 的风格描述):

预设名风格描述(注入生成 Prompt)
传统网文风快节奏、强冲突、爽点密集、短句、每章结尾留钩子
细腻文学风长句铺陈、环境与心理描写细腻、节奏舒缓、画面感强
悬疑惊悚风悬念先行、信息量控制、层层反转、氛围阴郁
轻松喜剧风幽默对话、吐槽式旁白、节奏明快、不虐主
科幻硬核风设定严谨、术语合理、逻辑闭环、科技细节丰富
古风典雅风文言气质、诗词点缀、考据细节、人物称谓考究
热血战斗风打斗场面宏大、招式描写细致、情绪高涨、燃点密集
轻小说风轻松吐槽、二次元梗、短段落、角色萌点突出
定制用户自定义一段风格描述

叙事视角预设:

  • first 第一人称:主角 "我" 视角,心理活动丰富
  • third_limited 第三人称限知:跟随主角视角,只写主角所知
  • third_omniscient 第三人称全知:上帝视角,多线叙事
  • second 第二人称:你,代入感强(较少用,保留)

4.2.3 字数与成本预估

前端按 章节数 × 每章字数 × 经验系数(1.5,中文 token≈1.5字/token) + 大纲/摘要/抽取开销 估算总 Token,乘以该模型单价(模型模板中可填 price_per_1k_tokens),显示预估费用;未填单价则只显示 Token 数。


4.3 大纲生成系统

4.3.1 故事大纲生成

  • 输入:模型、分类、标签、描述、章节数、文风、视角、语言。
  • 输出(结构化 JSON,见附录 B):
  • 小说标题(若未提供)+ 一句话卖点
  • 世界观设定(背景 / 规则 / 力量体系)
  • 主线剧情(起承转合、核心冲突、结局)
  • 分卷结构:卷名 + 每卷起止章节 + 卷内主线
  • 主要角色初稿列表(供后续角色卡)
  • 核心伏笔规划(含计划回收章节区间)
  • 卷数规则:章节数≤50 则 1–2 卷;50–300 则 3–5 卷;>300 则按每 50–100 章一卷自动分卷。
  • 存储:写入 story_outlines;用户可在「大纲」Tab 编辑。

4.3.2 章节大纲生成

  • 按卷逐段生成,一次请求生成一卷(约 50–100 章)的章节大纲,JSON 数组输出,避免单次超长。
  • 每章大纲字段:title / summary / characters / locations / foreshadow_set / foreshadow_reveal / ending_hook(表结构已定义)。
  • 生成时注入:故事大纲、上一卷已生成章节大纲摘要、已规划的伏笔清单(确保埋设→回收节奏)。
  • 校验:生成后检查伏笔规划是否闭环(每个 planned 的伏笔都有埋设章与回收章);缺失则在 UI 提示,允许 "AI 补全伏笔规划"。

4.3.3 大纲修改联动

  • 编辑任意章节大纲后,该章标记 status=pending 且尚未生成的章节在续传时以新大纲为准;已生成章节如需改大纲,提供 "重写受影响章节" 按钮(可选择章节区间)。

4.4 章节生成引擎(核心中的核心)

目标:10–2000 章长篇, 衔接贯通、不重复、不跑题,严格符合大纲 。 三个支柱:① 强上下文注入;② 状态追踪;③ 生成后校验与自动重试。

4.4.1 生成流水线(pipeline)

开始

&#x20;├─ 1. 组装上下文包(见 4.4.2)

&#x20;├─ 2. 调用模型流式生成本章正文(temperature 按配置)

&#x20;├─ 3. 校验(见 4.4.4):失败→按策略重试/重写

&#x20;├─ 4. 保存章节到 chapters(status=generated)

&#x20;├─ 5. 后处理(见 4.4.5):生成摘要、抽取角色/物品/伏笔、更新状态

&#x20;├─ 6. 更新 generation\_tasks 断点(chapter\_index+1, progress)

&#x20;└─ 7. 循环下一章,直至完成

4.4.2 上下文包组装(一致性第一支柱)

每章生成时的 System Prompt 固定包含(按 token 预算分级注入,总长建议控制在模型上下文 60% 以内,剩余给输出):

上下文块内容预算
① 全局设定世界观、力量体系、主线、结局走向(来自 story\_outlines)约 10–15%
② 本章大纲当前章节大纲全字段(title/summary/characters/locations/ 伏笔 / 钩子)约 10%
③ 近期章节摘要最近 10 章的摘要(chapter\_summaries)约 15–20%
④ 记忆摘要每 10 章压缩一次的长程记忆摘要(digest,滚动窗口保留 3 份:前段 / 中段 / 近段)约 10%
⑤ 角色状态本章出场角色的最新状态(位置 / 情绪 / 目标 / 受伤等,来自 character\_states 最新快照)约 10%
⑥ 活跃伏笔状态为 planted/developing 且与本章相关的伏笔清单 + 本章应回收的伏笔约 5–8%
⑦ 连贯性守则固定指令:衔接上一章结尾、不得重复已写情节、不得违背已设定事实、严格按大纲事件推进约 2%
⑧ 写作要求文风描述 + 视角 + 每章字数目标 + 语言约 5%

关键机制: 摘要链 :每章生成后立即调用模型生成 200–300 字摘要;每完成 10 章,把最近 10 章摘要压缩为一份 digest 。上下文包只读摘要与 digest, 绝不整章回灌 ,保证 2000 章场景上下文稳定且不超窗。 角色状态追踪 :每章结束后,根据本章内容更新出场角色的最新状态快照(位置 / 情绪 / 目标 / 状态),下一章直接注入,从机制上杜绝 "角色瞬移、情绪断裂"。 伏笔状态机 :planted → developing → revealed;本章回收伏笔必须写进大纲指令并要求正文显式呼应;生成后校验回收是否发生。

4.4.3 断点续传(第二支柱)

任务状态机:

queued → running → (paused | stopped | error | completed)

&#x20;          running --单章失败重试耗尽--> error →(用户点击继续)→ 从断点 resume
  • generation_tasks 每完成一章即落库(stage=chapter, chapter\_index = 当前 + 1, progress = 已完成 / 总数)。
  • 应用崩溃 / 断电:重启后检测到 status=running 或 error 的任务,在小说列表显示 "可续传" 角标;点击「继续生成」→ 从 chapter_index 断点重跑,已完成的章节不重复生成。
  • 部分写入保护:章节正文只有在完整生成并通过校验后才 INSERT;生成中的文本只走流式推送、不落库,天然避免半章脏数据。
  • 上下文指纹:resume_token 记录续传时的上下文版本(含大纲版本号、已生成章节数),续传时若发现大纲被编辑过,提示 "大纲已变更,可选择:以新大纲续传 / 沿用旧大纲续传"。

4.4.4 一致性校验与防重复(第三支柱)

生成完成后,进入校验环节(可选开启,默认开启):

校验项方法不通过处理
大纲符合度二次调用模型(轻量):比对本章正文与章节大纲的 summary / 事件是否一致,返回 {pass, issues[]}有偏差→提示并按配置自动 "局部重写" 或 "整章重写"(重写上限 2 次)
与近期章节重复计算本章正文与最近 5 章正文的 4-gram 重合率;重合率 > 阈值(如 12%)判定重复自动整章重写(上限 2 次);仍超限→暂停并提示人工处理
设定一致性校验是否出现与 "全局设定 / 角色状态" 矛盾的显性事实(由校验模型判断,如角色已死又出场、地点穿越)标记 warning 列在「一致性报告」中,用户可一键 "按报告重写"
字数达标word_count >= 目标字数 × 0.85不足→提示 "扩写本章"(调用模型扩写)
结尾钩子校验最后一段是否承接大纲的 ending\_hook(有则记 success,无则 warning)warning 仅提示

校验模型默认复用生成模型;可在设置中指定 "廉价模型做校验" 以节省成本。

4.4.5 章节后处理(每章自动执行,可开关 auto\_extract)

  1. 章节摘要:生成 200–300 字摘要 + 关键事件列表(JSON),存入 chapter_summaries。
  1. 角色抽取 / 更新:识别本章新出场角色(建卡,填身份 / 外貌 / 性格初稿)、已有角色(更新 last\_appear\_chapter、状态快照)。
  1. 物品抽取:新物品建卡(名称 / 类型 / 归属 / 能力初稿)。
  1. 地点抽取:新地点建卡。
  1. 伏笔更新:识别本章埋设的伏笔(置 planted,记 plant\_chapter)、发展的伏笔(append develop\_chapters)、回收的伏笔(置 revealed,记 actual\_reveal\_chapter)。

抽取全部使用 结构化 JSON 输出 (见附录 B),由模型一次返回,代码直接解析落库;抽取失败不阻塞正文生成,降级为 "下次抽取",并在日志记录。

4.4.6 流式与前端展示

  • 后端经 SSE(或 Wails 事件)推送 token 事件,前端在生成面板以打字机效果实时渲染。
  • 面板控件:进度条(已完成章 / 总数 + 百分比)、当前章节流式文本、暂停 / 继续 / 停止按钮、Token 消耗统计、日志。

4.5 角色系统

  • 角色卡:字段见表 characters;「角色列表」页以卡片网格展示(头像区 = AI 提示词占位 / 自定义图,姓名、身份、类型徽标、出场章节)。
  • 角色详情:完整档案 + 出场章节时间线(点击跳转章节)+ 状态变化时间线(character\_states,滚动展示位置 / 情绪 / 目标的演进)。
  • 关系图谱:ECharts 力导向图(graph),节点 = 角色(主角高亮放大),边 = 关系(线宽 = strength,颜色按关系类型);支持拖拽、缩放、点击节点弹角色卡、图例筛选关系类型;图谱数据来自 character-graph 接口。
  • 编辑:所有字段可改;关系可增删改。
  • 一致性联动:角色卡被人工修改后,在下一章生成的上下文包中自动采用最新版本。

4.6 物品系统

  • 物品卡 / 详情页:名称、类型、归属、来历、能力、经历、出现章节。
  • 列表支持按类型筛选、按章节排序;物品与角色关联(归属)在详情中可点击跳转角色。
  • 支持人工新增 / 编辑 / 删除;AI 抽取的新物品进入 "待确认" 列表,用户确认后转正(避免误建卡)。

4.7 地图系统

  • 地图卡:地点名、区域、类型、描述、剧情意义、常驻角色、首次出现章节。
  • 地图详情:支持生成文字版地图层级(大陆→国家→城池→具体地点,JSON 树)并在前端以层级树 / 卡片展示;有条件的版本可渲染简单 SVG 示意图(P2)。
  • 地点与章节关联:点击地点可查看该地点出现的章节列表。

4.8 伏笔管理

  • 列表:按状态(埋设 / 发展 / 回收)筛选,显示重要度、埋设章节、计划回收章节、实际回收章节。
  • 状态机流转:人工或 AI 抽取均可变更状态;回收时登记 actual_reveal_chapter 并允许填写 "回收效果" 备注。
  • 回收点检查表:从大纲生成阶段就规划伏笔回收章节;生成进行到目标章节时,在生成面板 / 伏笔页高亮 "本章应回收:xxx",并强制注入上下文包,确保伏笔不被遗忘。
  • 一致性报告:小说完成后列出 "已埋设但未回收" 的伏笔清单(完结检查用)。

4.9 封面系统

4.9.1 商业级 AI 封面描述词生成器

  • 输入:小说标题、分类、简介、文风、主角设定(可选)、目标平台(起点 / 番茄 / 晋江 / 小红书 / 出版,影响尺寸与设计倾向)、风格偏好(国风 / 赛博 / 日漫 / 写实 / 极简)。
  • 输出(商业向提示词,一次生成 3 个方案):
【方案一】风格关键词 + 主视觉主体 + 构图(三分法/中心构图/对角线)+ 光线(逆光/冷暖对比/体积光)

&#x20;       \+ 色彩体系(主色/辅色/强调色,符合品类审美)+ 氛围情绪 + 角色/场景元素 + 留白与文字位

&#x20;       \+ 商业化要素(封面冲击力、缩略图辨识度、目标读者审美)+ 负面提示词(不要什么)

尺寸:起终点站 900x1200 / 番茄 900x1200 / 小红书 3:4 / 出版 1:1.414(可配置)
  • 前端展示 3 个方案卡片,每个可复制、可 "基于此方案再细化"(追加要求二次生成)。

4.9.2 封面图片管理

  • 封面方案列表:提示词卡片 + 图片预览区;用户将提示词复制到任意 AI 绘图工具出图后,通过「上传图片」导入本地,设为当前封面。
  • 封面在历史列表、阅读器首页、详情页统一展示。

4.10 小说阅读器

  • 入口:工作台「阅读」按钮 → 全屏阅读页。
  • 功能:
  • 目录侧栏(章节标题,可搜索跳转)
  • 上下翻页 / 滚动模式切换
  • 字号、行距、页宽、字体(宋体 / 黑体 / 楷体)调节
  • 明 / 暗阅读主题(独立于全局主题也可联动)
  • 书签增删、进度自动记忆(续读提示)
  • 章节预加载(前后各 2 章,滑动流畅)
  • 键盘快捷键:方向键翻页、B 加书签
  • 风格:正文排版仿纸质书(首行缩进 2em、段间距、标点排版),深色模式为 "午夜书房" 暖黑底(#1a1a1e 系)配米色文字。

4.11 TXT 导出

  • 导出选项:
  • 范围:全文 / 当前卷 / 指定章节区间
  • 编码:UTF-8(默认)/ GBK(供部分平台 / 编辑器)
  • 排版:章节分隔符样式(第X章 标题 换行分隔 / 纯文本)、是否带卷标题、是否带简介与目录
  • 行尾:CRLF(Windows 默认)
  • 文件名:《书名》.txt,导出到 exports/ 目录并弹窗显示位置;进度条展示导出进度(2000 章场景异步导出)。
  • 可同时导出「全要素工程包」:JSON 包含大纲 / 章节 / 角色 / 物品 / 地图 / 伏笔 / 配置,支持导入恢复(备份 / 迁移)。

4.12 项目管理与历史列表

  • 首页 / 工作台:全部小说卡片网格(封面图 + 标题 + 分类徽标 + 状态角标 + 章节数 / 字数 + 更新时间)。
  • 支持:搜索(标题 / 标签)、按分类 / 状态筛选、按更新时间 / 字数排序、置顶(P2)。
  • 卡片操作:打开工作台 / 继续生成(状态为 paused/error/running 时显示)/ 导出 TXT / 备份 / 删除(二次确认,级联删除)。
  • 统计仪表盘(工作台顶部,P1):总字数、总章节数、进行中任务、模型用量(Token 累计)。

4.13 人工编辑与自动保存

  • 所有可编辑内容(大纲、章节正文、角色、关系、物品、地图、伏笔、介绍、封面词、标签、标题)均有编辑入口。
  • 自动保存:编辑框失焦或 30 秒内自动保存草稿到内存 + 落库,避免误关丢失;章节编辑器提供「保存」按钮 + 自动保存提示。
  • 章节编辑后 is_edited=true,重生成该章前弹窗提示 "将覆盖人工修改"。
  • 编辑历史(P2):章节正文保留最近 5 个版本(chapter_versions 表,P2 扩展)。

4.14 数据统计与备份

  • 统计:各小说字数曲线(按章)、生成耗时、Token 消耗(按模型汇总)、分类分布 ——ECharts 图表呈现(P1)。
  • 备份:设置页提供「备份全部数据」(复制 db + covers 到用户指定目录)与「恢复备份」。

第五部分 前端 UI / UX 设计规范

5.1 设计语言:小说感 + 沉浸式

核心意象:书房 + 书卷 + 墨迹。

  • 浅色主题关键词:宣纸米白、墨黑、朱砂点缀、藏书质感;
  • 深色主题关键词:午夜书房、暖黑、烛光暖金、羊皮纸暗米色;
  • 图形语言:书页翻动、卷轴展开、印章、毛笔字标题(可用开源书法字型:演示悠然小楷、站酷庆科黄油体等,注意商用授权);
  • 通用视觉元素:卡片圆角(8–12px)、章节标题衬线感(宋体族 "Songti SC", "Noto Serif SC", "SimSun", serif)、正文阅读用宋体、UI 控件用无衬线(系统默认 / 思源黑体)。

5.2 双主题系统(用户硬性要求:黑白双主题 + 顶部标题栏同步)

  • 全局使用 CSS Variables(Design Tokens) 定义主题,切换主题只改 document.documentElement 的 data-theme 属性,所有组件消费变量,不写死颜色:
:root\[data-theme="light"] {

&#x20; \--bg-page: #f7f3ea;          /\* 宣纸米白 \*/

&#x20; \--bg-card: #fffdf7;

&#x20; \--bg-elevated: #ffffff;

&#x20; \--text-primary: #2b2a26;

&#x20; \--text-secondary: #6b675c;

&#x20; \--accent: #a33a2b;           /\* 朱砂红 \*/

&#x20; \--accent-hover: #8c3125;

&#x20; \--border: #e4ddcc;

&#x20; \--titlebar-bg: #f7f3ea;      /\* 标题栏底色(浅色) \*/

&#x20; \--titlebar-text: #2b2a26;

&#x20; \--shadow: 0 2px 12px rgba(43,42,38,.08);

}

:root\[data-theme="dark"] {

&#x20; \--bg-page: #16161a;          /\* 午夜暖黑 \*/

&#x20; \--bg-card: #1e1e24;

&#x20; \--bg-elevated: #26262e;

&#x20; \--text-primary: #e8e3d6;     /\* 羊皮纸米色 \*/

&#x20; \--text-secondary: #a39e90;

&#x20; \--accent: #d4a24e;           /\* 烛光暖金 \*/

&#x20; \--accent-hover: #e0b461;

&#x20; \--border: #33333c;

&#x20; \--titlebar-bg: #16161a;      /\* 标题栏底色(深色) \*/

&#x20; \--titlebar-text: #e8e3d6;

&#x20; \--shadow: 0 2px 12px rgba(0,0,0,.4);

}
  • 窗口顶部标题栏同步(关键实现):
  • Wails 配置窗口为非标准标题栏或使用系统标题栏 + Windows 主题 API:
  • Go 端通过 golang.org/x/sys/windows 调用 DwmSetWindowAttribute(hwnd, DWMWA_USE_IMMERSIVE_DARK_MODE, ...),主题切换时前端调 backend.SetWindowTheme(dark bool),实现标题栏深浅色与内容同步切换;
  • 若采用自定义标题栏(frameless + 自绘),则由前端直接控制 --titlebar-bg,效果一致。
  • 主题记忆:存入 app_settings(theme),启动时恢复;快捷键 Ctrl+Shift+T 快速切换(带过渡动画)。

5.3 动效规范(整套 UI 带动画)

场景动效
主题切换背景 / 文字颜色 300ms ease 渐变过渡(transition 统一变量)
页面路由Vue Router 过渡:旧页淡出 + 轻微上移,新页淡入(200–300ms)
卡片进入列表卡片错峰上浮淡入(stagger 60ms,transition-delay 按 index)
骨架屏生成中 / 加载中显示书页形骨架屏 + 微光扫描动画
流式生成章节文本打字机效果逐字 / 逐词浮现,光标闪烁
关系图谱节点入场弹跳 + 连线生长动画(ECharts 默认动画开启,边线 dash 流动)
章节翻页阅读器翻页:滑动 / 淡入淡出过渡
进度条生成进度条平滑填充(transition: width 400ms ease)
按钮 / 悬浮hover 抬升阴影 + 轻微缩放,点击 ripple
徽标 / 状态状态变更时小徽标 pop 动画
侧栏 / 抽屉卷轴式滑入(translateX + ease-out-quart)

动画统一在 styles/animations.css 定义,尊重 prefers-reduced-motion (无障碍)。

5.4 页面与布局(线框级说明)

5.4.1 首页(历史列表 / 工作台)

┌──────────────────────────────────────────────┐

│ \[Logo AI 小说创作助手]   搜索□  筛选▾   \[+ 新建小说] │

├──────────────────────────────────────────────┤

│ ┌─────────┐ ┌─────────┐ ┌─────────┐          │

│ │封面缩略图 │ │封面缩略图 │ │封面缩略图 │  ...卡片网格  │

│ │书名/分类/ │ │书名/分类/ │ │书名/分类/ │           │

│ │状态/章数  │ │状态/章数  │ │状态/章数  │           │

│ └─────────┘ └─────────┘ └─────────┘          │

│ 统计条:总字数 总章节 任务中 模型用量             │

└──────────────────────────────────────────────┘

5.4.2 创作向导(三步式)

侧边步骤指示器(1 基本信息 → 2 生成参数 → 3 确认),底部「上一步 / 开始生成」。

5.4.3 小说工作台(核心页,Tab 容器)

┌──────────────────────────────────────────────┐

│ ←返回   《书名》   状态徽标   \[继续生成/暂停] \[阅读] \[导出▾] │

├──────┬───────────────────────────────────────┤

│ Tab列 │                                       │

│ 封面  │    内容区(随 Tab 切换)                  │

│ 介绍  │    - 大纲:卷/章大纲树,可编辑            │

│ 大纲  │    - 章节:列表(虚拟滚动)+流式生成面板     │

│ 章节  │    - 角色:卡片网格 → 详情 → 图谱         │

│ 角色  │    - 物品 / 地图 / 伏笔 / 封面            │

│ 物品  │                                       │

│ 地图  │                                       │

│ 伏笔  │                                       │

└──────┴───────────────────────────────────────┘

5.4.4 生成面板(嵌在工作台章节 Tab / 可全屏)

流式正文(打字机)+ 控制条(进度、Token、暂停 / 继续 / 停止)+ 一致性报告入口。

5.4.5 阅读器

┌──────────────────────────────────────────────┐

│ \[目录] 第X章 标题          AA ▢ 明/暗  书签 ▸    │

├──────────────────────────────────────────────┤

│           正文区(仿纸质排版,居中限宽 720px)      │

│                                                 │

│          ◀ 上一章    进度   下一章 ▶              │

└──────────────────────────────────────────────┘

5.4.6 设置页

  • Tab1 模型管理:预置模板列表 + 自定义表单 + 测试按钮
  • Tab2 全局默认:文风 / 视角 / 字数默认、重试策略、主题
  • Tab3 数据:备份 / 恢复、数据目录打开、日志查看

5.5 路由与状态管理

/                首页(历史列表)

/create          创作向导

/novel/:id       小说工作台(Tab:cover|intro|outline|chapters|characters|items|maps|foreshadows)

/novel/:id/reader 阅读器

/settings        设置

Pinia stores:themeStore(主题 + 标题栏联动)、novelStore(当前小说 / 各要素数据)、taskStore(生成任务实时状态、SSE 连接)、settingsStore。


第六部分 非功能需求

类别要求
性能章节列表 2000 章使用分页 / 虚拟滚动;正文按章懒加载;图谱节点 >300 时开启 ECharts 降级采样;数据库操作全部走索引(novel\_id+chapter\_index 唯一索引)
稳定性生成任务崩溃可恢复(断点落库);SSE 断线自动重连;内存中不缓存全部章节,防长篇小说 OOM
可靠性模型调用超时 / 限流:指数退避重试(最多 3 次);429/5xx 自动等待重试;连续失败 5 次自动暂停任务并提示
安全API Key AES-256-GCM 本地加密;日志不打印密钥明文;导出 / 备份文件不包含密钥
数据安全自动保存(编辑防丢);删除操作二次确认;提供备份 / 恢复
兼容性Windows 10/11 x64;高分屏 DPI 适配;WebView2(Wails 自动引导安装)
离线除调用云端模型外全部功能可用;使用 Ollama 本地模型时完全离线
国际化界面中文为主,预留 i18n 结构(P2);生成语言跟随 novel.language

第七部分 安装打包与发布

7.1 打包流程(Wails)

  1. wails build -platform windows/amd64 -nsis(Wails v2 内置 NSIS 打包)。
  1. 产物:NovelForge-Setup-<version>.exe 安装向导(欢迎页、许可、安装路径选择、桌面快捷方式、开始菜单、完成页)。
  1. 图标:应用图标为 "书卷 + AI 星火" 风格,256x256 ico(浅深两套资源)。
  1. 首次运行:检查 WebView2 Runtime,缺失则引导安装(Wails 默认处理)。
  1. 自动更新(P2):可选接入 go-update 或本地检查 GitHub Release。

7.2 版本规划

  • v1.0.0:完整核心功能(本文档 P0 全量)
  • v1.1.0:P1 功能(统计仪表盘、备份、回收提醒、封面图管理、编辑历史)
  • v1.2.0:P2 增强(快捷键、自动更新、SVG 地图、i18n)

第八部分 开发里程碑与任务拆解

给码道 AI 的分阶段开发顺序(每阶段完成后应可运行、可验证,再接下一阶段)。

M0 骨架(0.5–1 天)

  • Wails 项目初始化(Vue3+TS+Vite 前端模板 + Go 后端)
  • 主题 Token 体系 + 黑白主题切换 + 标题栏同步 Demo
  • SQLite + GORM 建表(全部表)
  • 基础路由与页面壳(首页 / 设置 / 占位工作台)

M1 模型与小说管理(1 天)

  • 模型适配层(OpenAI 兼容 + Anthropic + Gemini + Ollama)+ 预置模板 + 测试连通
  • 密钥加密存储
  • 小说 CRUD + 历史列表 + 创作向导(含预设)

M2 生成引擎 v1(2–3 天,核心)

  • 故事大纲 + 章节大纲生成(结构化 JSON)
  • 章节流式生成 + SSE 推送 + 打字机展示
  • 上下文包组装(摘要链 / 角色状态 / 伏笔注入)
  • 断点续传状态机 + 暂停 / 继续 / 停止
  • 一致性校验(大纲符合度 + 4-gram 防重复)+ 自动重试

M3 全要素系统(2–3 天)

  • 章节后处理:摘要 / 角色 / 物品 / 地点 / 伏笔自动抽取(JSON 解析落库)
  • 角色卡 + 详情 + 状态时间线 + ECharts 关系图谱
  • 物品卡 / 详情、地图卡 / 详情
  • 伏笔管理 + 回收点检查表
  • 封面提示词生成器 + 图片导入
  • 小说介绍生成

M4 阅读与导出(1 天)

  • 阅读器(目录 / 书签 / 进度 / 排版 / 主题)
  • TXT 导出 + 工程包备份 / 导入

M5 打磨与发布(1–2 天)

  • 动效补齐、空态 / 加载态、错误提示兜底
  • 日志、崩溃恢复验证
  • NSIS 打包、安装与卸载测试、验收全流程回归

第九部分 测试与验收标准

每阶段交付前按清单回归;以下为 P0 验收清单(对应 C1–C12 约束)。

#验收项通过标准
T1安装包安装Setup.exe 安装成功、桌面快捷方式可用、卸载干净
T2模型接入预置模板至少 5 个可用;自定义 OpenAI 兼容模型可测通并生成
T3密钥安全数据库中密钥非明文;界面掩码显示
T4创建小说向导可选模型 / 分类 / 标签 / 描述 / 章节数 (10–2000)/ 字数 / 文风 / 视角,参数生效
T5大纲生成生成故事大纲 + 章节大纲,伏笔规划闭环;大纲可编辑
T6章节生成按章节大纲顺序生成全部章节;流式展示;每章字数达标
T7连贯性抽样 5 处章节衔接无断裂;角色状态(位置 / 情绪)连续;无与设定冲突的显性矛盾;抽样无重复段落
T8防跑题章节内容与章节大纲事件一致(以校验报告为准)
T9断点续传生成到第 N 章时强制结束进程,重启后继续生成不重复第 1–N 章,从 N+1 开始
T10暂停 / 继续 / 停止三个控制按钮行为正确,停止后保留已生成内容
T11全要素查看角色图谱 / 角色卡 / 角色详情 / 物品卡 / 物品详情 / 地图卡 / 地图详情 / 封面 / 大纲 / 章节大纲 / 章节列表 / 伏笔 / 介绍全部可见
T12人工编辑至少 10 类实体可编辑并持久化
T13TXT 导出全文导出 UTF-8/GBK 均正确,章节分隔与编码无误
T14阅读器目录跳转 / 书签 / 进度记忆 / 字号调节 / 明暗主题正常
T15历史列表多本小说列表显示、搜索筛选排序正常
T16双主题黑白切换全局生效,窗口标题栏同步变色
T17动画主题切换 / 路由 / 流式 / 图谱动画可感知且不卡顿
T182000 章压测章节列表滚动流畅(虚拟滚动);生成 2000 章配置可创建;导出不卡死
T19异常恢复模型 500/429 自动重试后继续;连续失败暂停并提示

第十部分 风险与对策

风险对策
长篇小说后期上下文漂移、设定崩塌三层防线:全局设定固定注入 + 摘要链 /digest + 角色状态快照;一致性校验报告兜底;人工可改设定后重写区间
模型输出 JSON 解析失败(大纲 / 抽取)所有结构化调用开启 JSON mode/response\_format;解析失败重试 1 次,仍失败降级为文本解析(正则抽取关键段),再失败记录日志不阻塞主流程
生成速度慢(2000 章)顺序生成保证连贯(并发 = 1 是设计约束,不妥协);后台批量跑 + 断点续传;前端可最小化继续
Token 成本超预期创建向导成本预估;摘要 / 校验可用廉价模型(设置中可选);上下文包 token 预算上限控制
SQLite 并发写压力生成任务单协程串行写;WAL 模式开启;索引完备
WebView2 缺失安装包内置检测与引导下载
大模型内容安全 / 敏感词章节生成前注入安全指令(拒绝色情暴力犯罪细节描写,P0 基础版);本地敏感词过滤表可配置(P1)

附录 A AI 生成 Prompt 模板全集

以下模板为 可直接落地 的中文 Prompt(含角色设定、约束、输出格式),代码中做成 Go 常量模板,按需拼接上下文块。

A1 故事大纲生成模板

你是一位资深小说主编与网文策划,擅长构建长篇故事框架。

请根据以下设定,为一部小说生成完整的故事大纲。

【基础信息】

分类:{category}

标签:{tags}

创意描述:{description}

语言:{language}(正文使用该语言)

文风:{writing\_style}

叙事视角:{pov}

计划章节数:{chapter\_count}(约每章{chapter\_words}字)

【分卷规则】{chapter\_count<=50 ? "全书1-2卷" : chapter\_count<=300 ? "全书3-5卷,每卷约50-100章" : "每卷约50-100章,自动分卷"}

【输出要求】

严格按照以下 JSON 结构输出,不要输出任何其他内容:

{

&#x20; "title": "建议书名(若用户未提供)",

&#x20; "selling\_point": "一句话卖点",

&#x20; "world\_setting": {"background":"世界观背景","rules":"力量/世界规则","factions":"主要势力"},

&#x20; "main\_story": {"begin":"开端冲突","development":"发展主线","climax":"高潮","ending":"结局走向"},

&#x20; "volumes": \[{"volume":1,"title":"卷名","chapter\_range":\[1,100],"plot":"本卷主线"}],

&#x20; "initial\_characters": \[{"name":"","role":"主角/重要配角/反派","identity":"","goal":"","outline":"简要人设"}],

&#x20; "foreshadow\_plan": \[{"content":"伏笔内容","importance":1-5,"plant\_volume":1,"reveal\_volume":4}]

}

要求:章节数与计划一致;伏笔必须规划回收;结局与分类调性匹配。

A2 章节大纲生成模板(按卷)

你是网文细纲策划。请为小说《{title}》的第{volume}卷(章节 {range\_start}-{range\_end})生成逐章细纲。

【全书设定】{world\_setting}

【本卷主线】{volume\_plot}

【已完成章节的最近摘要】{recent\_summaries}

【当前活跃伏笔】{active\_foreshadows}(状态=埋设/发展)

【本卷应回收伏笔】{to\_reveal}

【输出】严格 JSON 数组,每章一个对象:

\[

&#x20;{"chapter\_index":101,"title":"","summary":"本章核心事件150-300字","characters":\["出场角色"],"locations":\["地点"],"foreshadow\_set":\["本章埋设的伏笔"],"foreshadow\_reveal":\["本章回收的伏笔"],"ending\_hook":"结尾钩子"}

]

要求:章与章事件承接连贯;伏笔埋设/回收节奏合理;每章至少一个冲突或推进点;结尾钩子吸引继续阅读。

A3 章节正文生成模板(系统级 Prompt 骨架)

你是长篇小说作家,正在连载《{title}》({category},{writing\_style},{pov}视角,{language})。

【世界观与主线(必须严格遵守,不得违背)】

{world\_setting}

【本章大纲(本章必须完成的事件,不得遗漏也不得超纲)】

{chapter\_outline}

【近期剧情摘要(衔接上一章结尾,承上启下)】

{recent\_summaries}

【长程记忆摘要】{memory\_digest}

【出场角色当前状态(续写时保持状态连续)】

{character\_states}

【活跃伏笔(本章应回收的伏笔必须显式呼应)】{foreshadows}

【连贯性守则(铁律)】

1\. 开篇必须自然衔接上一章结尾的场景与情绪,不重复已发生的情节;

2\. 严格按本章大纲推进事件,不加入大纲没有的新主线、不跑题;

3\. 已确立的事实(角色生死、能力、关系、地点)不可自相矛盾;

4\. 角色言行符合人设与当前状态;

5\. 若本章大纲安排了伏笔回收,必须在文中明确揭示,不能遗漏。

【写作要求】

\- 文风:{writing\_style}

\- 视角:{pov}(全文视角一致)

\- 目标字数:约{chapter\_words}字

\- 段落自然、对话符合角色;每章结尾按大纲钩子收尾。

现在直接输出本章正文(不要输出标题以外的说明文字,不要输出本章大纲)。

A4 章节摘要生成模板

请为以下小说章节生成摘要。输出严格 JSON:

{"summary":"200-300字概述","key\_events":\["事件1","事件2"]}

要求:只写已发生事实,客观;为后续续写提供足够信息。

【章节标题】{title}

【正文】{content(前若干段即可,为省 token 可截断)}

A5 全要素抽取模板(角色 / 物品 / 地点 / 伏笔)

请从本章正文中抽取以下要素,输出严格 JSON(没有的项给空数组):

{

&#x20;"new\_characters":\[{"name":"","role\_type":"","identity":"","appearance":"","personality":"","abilities":"","goal":"","habits":""}],

&#x20;"existing\_characters":\[{"name":"","location":"当前位置","emotion":"当前情绪","goal":"当前目标","status":"身体/状态"}],

&#x20;"new\_items":\[{"name":"","item\_type":"","owner":"","origin":"","ability":""}],

&#x20;"new\_locations":\[{"name":"","region":"","map\_type":"","description":"","significance":""}],

&#x20;"foreshadows\_planted":\[{"content":"","importance":1-5}],

&#x20;"foreshadows\_developed":\[{"content":"伏笔内容描述,与已有伏笔匹配"}],

&#x20;"foreshadows\_revealed":\[{"content":"伏笔内容描述,与已有伏笔匹配"}]

}

【已有角色库(用于匹配 existing\_characters)】{character\_names}

【已有伏笔库(用于匹配)】{foreshadow\_contents}

【本章正文】{content}

A6 一致性校验模板

你是小说审稿编辑。请校验本章正文与大纲的一致性。

输出严格 JSON:{"pass":true/false,"issues":\[{"type":"跑题|遗漏事件|设定矛盾|重复情节","detail":"问题描述","suggestion":"修改建议"}]}

【本章大纲】{chapter\_outline}

【已确立设定】{world\_setting}【角色状态】{character\_states}

【最近3章摘要(防重复)】{recent\_summaries}

【本章正文】{content}

A7 商业封面描述词生成模板

你是商业图书封面设计师。请为小说《{title}》({category},核心卖点:{selling\_point})生成 3 套可交付给 AI 绘图工具的封面提示词。

目标平台:{platform}(影响尺寸与设计规范);风格偏好:{style\_pref};主要角色设定:{characters}

每套输出严格 JSON:

{"schemes":\[{

&#x20; "name":"方案一:{风格命名}",

&#x20; "prompt":"完整英文/中文提示词:主视觉主体+构图+光线+色彩体系+氛围+商业化元素(冲击力/缩略图辨识度/目标读者)+文字位预留",

&#x20; "negative\_prompt":"负面提示词",

&#x20; "style":"国风/赛博/日漫/写实/极简",

&#x20; "color\_scheme":"主色/辅色/强调色",

&#x20; "target\_reader":"目标读者",

&#x20; "usage\_suggestion":"投放建议(如起点男频/番茄女频/小红书引流)"

}]}

要求:符合商业封面规律(缩略图可辨识、不堆砌元素、主角醒目、情绪明确)。

A8 小说介绍生成模板

请为小说《{title}》生成商业化介绍,输出严格 JSON:

{"intro":"200-400字简介(有钩子、不剧透结局)","selling\_points":\["卖点1","卖点2","卖点3"],"target\_audience":"目标读者画像","seo\_keywords":\["关键词1","关键词2"]}

【故事大纲】{main\_story}【文风】{writing\_style}【分类】{category}

附录 B JSON 结构化输出 Schema 示例

各结构化调用统一携带 response_format={"type":"json_object"} (OpenAI 兼容)或对应 JSON mode;代码侧用 Go encoding/json 严格解析,失败重试策略见 4.4 与风险表。

B1 章节大纲(数组)

\[

&#x20; {

&#x20;   "chapter\_index": 101,

&#x20;   "title": "初入宗门",

&#x20;   "summary": "主角叶尘通过试炼进入青云宗外门……",

&#x20;   "characters": \["叶尘", "林雪"],

&#x20;   "locations": \["青云宗外门"],

&#x20;   "foreshadow\_set": \["林雪身世之谜"],

&#x20;   "foreshadow\_reveal": \[],

&#x20;   "ending\_hook": "外门考核名单上出现了叶尘被除名的名字"

&#x20; }

]

B2 章节正文传输格式(流式)

SSE event: token   data: {"delta": "字" }

SSE event: chapter\_done  data: {"index": 12, "title": "...", "word\_count": 3210}

B3 图谱数据(character-graph 返回)

{

&#x20; "nodes": \[{"id": 1, "name": "叶尘", "role\_type": "主角", "importance": 10}],

&#x20; "edges": \[{"source": 1, "target": 2, "relation\_type": "师徒", "strength": 9, "description": "..."}]

}

附录 C 给码道 AI 的第一轮开工指令

使用方法:把本附录内容(以及可选的完整文档)直接粘贴给华为云码道 CodeArts 代码智能体,作为第一轮对话指令。建议将本文档文件整体上传 / 粘贴,并在对话中附上以下开工指令。

【项目开发指令】请按《AI 智能小说创作助手\_开发文档.md》开发一个 Windows 桌面应用,技术栈为 Vue 3 + Go(Wails v2),交付 NSIS 安装包。

核心需求(必须全部满足):

1\. 支持所有主流大模型(预置 DeepSeek/通义/豆包/智谱/Kimi/OpenAI/Claude/Gemini/Ollama 模板,支持自定义 OpenAI 兼容接口,用户自配密钥,密钥本地 AES 加密)。

2\. 一键生成 10–2000 章完整小说:先生成故事大纲+章节大纲,再按大纲逐章生成正文;严格保证章节衔接贯通、不重复、不跑题(用摘要链+角色状态追踪+伏笔状态机+大纲符合度校验+4-gram 防重复实现)。

3\. 生成全要素资料:角色图谱关系链、角色卡片/详情、物品卡/详情、地图卡/详情、封面(含商业级 AI 绘图提示词)、大纲、章节大纲、章节列表、小说阅读器、伏笔管理、小说介绍。

4\. 章节生成支持断点续传、暂停/继续/停止、流式输出;所有生成内容支持人工编辑;支持导出 TXT;支持查看历史小说列表。

5\. UI:黑白双主题一键切换且窗口顶部标题栏同步变色,整套 UI 带动画和小说风格(书卷/墨迹/书房意象)。

6\. 数据全部本地 SQLite 存储,安装包内嵌前端,开箱即用。

开发方式:请按文档第八部分里程碑 M0→M5 分阶段实现,每个阶段完成可运行验证后再进入下一阶段;生成章节的 Prompt 模板与 JSON Schema 以文档附录 A/B 为准;接口以文档第三部分为准;数据库以文档第二部分为准。

当前请从 M0 开始:初始化 Wails v2 项目(Vue3+TS+Vite),搭建主题 Token 体系与黑白主题切换 Demo(含标题栏同步),建好全部数据库表,搭好路由骨架。

文档结束。有任何模块需要进一步细化(如具体接口字段、页面原型、某个 Prompt 的调优),可在此基础上继续追加章节。

相关推荐