本文由 资源共享网 – ziyuan 发布,转载请注明出处,如有问题请联系我们!AI智能小说生成器源码附成品(Electron+nodjs)
AI智能小说生成器
基于 Electron + AI 的智能小说创作工具
? 项目简介
AI智能小说生成器是一款基于 Electron 开发的桌面应用,集成了多种大语言模型(LLM),支持智能化的小说创作流程。从故事构思、章节大纲到正文生成,提供全方位的AI辅助创作功能。
✨ 功能特性
? 核心功能
1. 多模型支持
DeepSeek: 国产大模型,性价比高
OpenAI: GPT系列模型,质量优秀
Ollama: 本地模型,隐私安全
OpenAI兼容: 支持所有兼容OpenAI API的服务
2. 智能创作流程
故事创意 → AI生成大纲 → AI生成章节 → 状态管理 → 持续创作
章节大纲生成: AI根据故事创意自动生成章节大纲
小说内容生成: 基于大纲智能生成小说正文
状态管理: 自动追踪角色状态、世界设定
多章节连续: 支持连续生成多个章节,保持剧情连贯
3. 17种小说分类
玄幻小说、都市小说、仙侠小说、历史小说
科幻小说、武侠小说、言情小说、悬疑小说
游戏小说、奇幻小说、军事小说、现实小说
二次元小说、体育小说、灵异小说、同人小说
短篇小说
每个分类都有专属的:
默认提示词模板
角色状态模板
世界设定模板
创作规则指南
4. 提示词管理
分类模板: 17种分类的默认提示词
自定义编辑: 可修改作者角色、创作规则
项目独立: 每个小说项目独立保存配置
实时生效: 修改后立即应用到生成过程
5. 设定管理
角色状态: 追踪主角、配角的状态变化
世界设定: 管理世界观、势力、规则
AI建议: 根据章节内容自动生成状态建议
版本管理: 支持多版本保存和回溯
6. 智能优化
字数控制: 自动检测字数,不足时智能扩写
去AI味: 内置10条规则,让生成内容更自然
多轮对话: 支持上下文连贯的创作
进度追踪: 自动保存创作进度
? 快速开始
环境要求
Node.js: v24.11.0 或更高版本
操作系统: Windows 10 及以上
网络: 需要访问LLM API(本地Ollama除外)
安装步骤
1. 克隆项目
2. 安装依赖
npm install
3. 启动应用
npm start
4. 打包应用
npm run build
打包后的安装程序位于 dist 目录。
? 使用指南
第一步:配置LLM
打开应用,点击左侧菜单 "LLM配置"
选择一个LLM提供商(DeepSeek/OpenAI/Ollama/OpenAI兼容)
填写配置信息:
DeepSeek: 填写API Key和Base URL
OpenAI: 填写API Key和模型名称
Ollama: 填写Base URL,自动获取模型列表
OpenAI兼容: 填写API Key、Base URL和模型名称
点击 "测试连接" 验证配置
点击 "保存配置"
第二步:创建小说项目
点击左侧菜单 "提示词管理"
选择小说分类(如:玄幻小说)
查看并编辑默认提示词(可选)
输入小说名称,点击 "保存提示词"
第三步:生成章节大纲
点击左侧菜单 "小说生成"
在 "章节大纲生成" 区域:
选择小说名称
输入故事创意(如:一个现代程序员穿越到修仙世界…)
设置生成数量(建议一次生成1章)
点击 "开始生成大纲"
等待AI生成完成,可点击 "查看大纲列表" 查看
第四步:生成小说内容
在 "小说生成" 区域:
选择小说名称
设置生成章节数(建议一次生成1章)
勾选选项:
✅ 使用角色状态
✅ 使用世界设定
✅ 读取前面章节(第二章开始)
选择状态更新模式:
手动: 不自动更新
半自动: AI生成建议,用户确认
全自动: AI自动更新
点击 "开始生成"
查看日志和进度条,等待生成完成
第五步:管理设定
点击左侧菜单 "设定管理"
选择小说名称
查看当前的角色状态和世界设定
可以:
手动编辑JSON内容
点击 "生成状态建议" 让AI自动生成
分别保存角色状态和世界设定
第六步:持续创作
重复第三步和第四步,继续生成后续章节
应用会自动:
跳过已生成的大纲和章节
参考前面章节内容
更新角色状态和世界设定
保存创作进度
? 项目结构
ai-novel-writer/ ├── src/ # 源代码目录 │ ├── main.js # Electron主进程入口 │ ├── ver.json # 版本信息 │ ├── logo.ico # 应用图标 │ ├── logo.png # 应用图标 │ │ │ ├── pages/ # 页面文件 │ │ ├── index.html # 主界面 │ │ └── splash.html # 启动画面 │ │ │ ├── styles/ # 样式文件 │ │ └── main.css # 主样式表 │ │ │ ├── assets/ # 资源文件 │ │ └── icons/ │ │ └── menu-icons.svg # 菜单图标 │ │ │ ├── components/ # UI组件 │ │ ├── window-controls.js # 窗口控制 │ │ ├── menu-handler.js # 菜单处理 │ │ ├── modal.js # 弹窗组件 │ │ ├── app-init.js # 应用初始化 │ │ ├── prompt-handler.js # 提示词管理 │ │ ├── settings-handler.js # 设定管理 │ │ ├── outline-handler.js # 大纲生成 │ │ ├── generate-handler.js # 小说生成 │ │ ├── llm-handler.js # LLM配置 │ │ └── about-handler.js # 关于页面 │ │ │ ├── utils/ # 工具类 │ │ ├── llm-manager.js # LLM管理器 │ │ ├── novel-generator.js # 小说生成器 │ │ ├── outline-generator.js # 大纲生成器 │ │ ├── novel-manager.js # 项目管理器 │ │ ├── prompt-manager.js # 提示词管理器 │ │ ├── story-idea-manager.js # 故事创意管理 │ │ ├── template-loader.js # 模板加载器 │ │ ├── prompt-template-loader.js # 提示词模板加载器 │ │ ├── app-state.js # 全局状态管理 │ │ └── app-settings.js # 应用设置 │ │ │ ├── templates/ # 模板文件 │ │ ├── prompt-templates.json # 分类提示词模板 │ │ ├── default-settings.json # 默认设定模板 │ │ ├── generation-prompts.json # 生成提示词模板 │ │ └── outline-templates.json # 大纲提示词模板 │ │ │ └── config/ # 配置文件 │ └── llm-config.json # LLM配置 │ ├── userdata/ # 用户数据目录(自动生成) │ └── projects/ # 小说项目 │ └── [小说名]/ │ ├── configs/ # 配置文件 │ │ ├── prompts.json # 提示词配置 │ │ ├── story-idea.json # 故事创意 │ │ └── progress.json # 创作进度 │ ├── storylines/ # 章节大纲 │ │ ├── 第1章大纲.json │ │ └── 第2章大纲.json │ ├── chapters/ # 小说章节 │ │ ├── [小说名]第1章.txt │ │ └── [小说名]第2章.txt │ └── data/ # 状态数据 │ ├── chapter_001_state.json # 角色状态 │ └── world_bible_00.json # 世界设定 │ ├── package.json # 项目配置 ├── build-obfuscate.js # 打包混淆脚本 ├── .npmrc # npm配置(国内源) └── README.md # 项目说明文档
? 开发说明
技术栈
Electron: 28.1.0 - 跨平台桌面应用框架
Node.js: 24.11.0 - JavaScript运行环境
Axios: 1.6.2 - HTTP客户端
JavaScript Obfuscator: 4.1.0 - 代码混淆工具
核心模块说明
1. LLM管理器 (llm-manager.js)
负责与各种LLM服务通信:
统一的API调用接口
多提供商支持(DeepSeek/OpenAI/Ollama)
超时控制和错误处理
响应内容清理
2. 小说生成器 (novel-generator.js)
核心生成逻辑:
章节内容生成
字数检测和自动扩写
状态更新建议
世界设定更新
前置章节加载
3. 大纲生成器 (outline-generator.js)
大纲生成逻辑:
章节大纲生成
前置大纲参考
故事创意管理
分类模板应用
4. 模板加载器 (template-loader.js)
模板管理:
加载分类提示词
加载默认设定
提供模板查询接口
5. 提示词模板加载器 (prompt-template-loader.js)
AI提示词构建:
小说生成提示词
章节扩写提示词
状态更新提示词
世界设定更新提示词
大纲生成提示词
6. 全局状态管理 (app-state.js)
跨组件通信:
项目选择同步
分类选择同步
设定更新通知
事件订阅机制
配置文件说明
1. prompt-templates.json
17种分类的默认提示词:
{
"categories": {
"xuanhuan": {
"author_role": "你是一位精通玄幻小说创作的顶级网文作家...",
"creation_rules": "- **严格遵守设定**...",
"state_update_guide": "你是一个精确的数据分析助手..."
}
},
"anti_ai_taste_rules": "【重要:去除AI痕迹的写作要求】..."
}2. default-settings.json
默认角色状态和世界设定模板:
{
"xuanhuan": {
"character_state_template": {
"protagonist": { "name": "", "level": 1, ... }
},
"world_bible_template": {
"world_name": "",
"power_system": []
}
}
}3. generation-prompts.json
AI生成的通用提示词:
{
"novel_generation": { ... },
"chapter_expansion": { ... },
"state_update": { ... },
"world_bible_update": { ... },
"outline_generation": { ... }
}4. outline-templates.json
大纲生成的分类提示词:
{
"xuanhuan": {
"system_role": "你是一位资深的玄幻小说编剧...",
"outline_requirements": [ ... ]
}
}打包说明
混淆打包流程
npm run build
执行流程:
备份
src目录下所有.js文件使用
javascript-obfuscator混淆代码使用
electron-builder打包应用恢复原始
.js文件删除备份文件
打包配置 (package.json)
{
"build": {
"appId": "com.gaochang.ai-novel-writer",
"productName": "AI小说生成器",
"asar": false,
"win": {
"target": ["nsis"],
"icon": "src/logo.ico"
}
}
}? 界面预览
主界面布局
┌─────────────────────────────────────────────────┐ │ [×] [□] [─] AI小说生成器 v1.0.0 │ ├──────────┬──────────────────────────────────────┤ │ │ │ │ 菜单栏 │ 内容区域 │ │ │ │ │ ? 提示词 │ ┌──────────────────────────────┐ │ │ ⚙️ 设定 │ │ │ │ │ ? 生成 │ │ 功能面板 │ │ │ ? LLM │ │ │ │ │ ℹ️ 关于 │ └──────────────────────────────┘ │ │ │ │ │ │ ┌──────────────────────────────┐ │ │ │ │ 日志输出 │ │ │ │ └──────────────────────────────┘ │ └──────────┴──────────────────────────────────────┘
功能特色
? 现代化卡片式布局
? 多彩色主题设计
? 响应式界面
? 实时日志输出
? 进度条显示
? 一键操作
? 常见问题
Q1: 如何选择合适的LLM?
A:
DeepSeek: 性价比最高,适合大量创作
OpenAI: 质量最好,适合精品创作
Ollama: 完全本地,适合隐私要求高的场景
Q2: 为什么生成的内容字数不够?
A: 应用会自动检测字数,如果低于2500字会自动调用AI扩写。如果多次扩写后仍不足,可能是:
LLM模型限制
提示词需要优化
大纲内容过于简单
Q3: 如何让生成的内容更自然?
A:
使用内置的"去AI味"规则(已自动应用)
在提示词中强调"口语化"、"自然流畅"
使用"半自动"模式,手动调整AI生成的状态
适当编辑AI生成的内容
Q4: 可以同时创作多部小说吗?
A: 可以!每个小说项目都是独立的,互不影响。只需在不同页面选择不同的小说名称即可。
Q5: 生成的文件保存在哪里?
A: 所有文件保存在 userdata/projects/[小说名]/ 目录下:
大纲:
storylines/第X章大纲.json章节:
chapters/[小说名]第X章.txt状态:
data/chapter_XXX_state.json设定:
data/world_bible_XX.json
Q6: 如何备份我的小说?
A: 直接复制 userdata/projects/[小说名]/ 整个文件夹即可。
![]()
与《AI智能小说生成器源码附成品(Electron+nodjs)》相关的《AI人工智能》
人工智能聊天机器人系统源码(可以自己训练)
您可以自己为机器人系统提供知识库,并通过不断训练它来回答您的问题。在初期,由于知识库内容较为简单,建议用户先按照使用说明书进行知识输入,逐步教会机器人相关知识。仅在机器人掌握了一定的知识后,才可以进行提问。这款系统非常适合用于搭建基础的智能客服、在线问答以及其他互动聊天机器人应用,帮助网站提升用户体验并提供更智能的服务。有训练说明基础训练基础训练1:按指定词语分割句子基础训练2:游标的使用基础训练...
30 31484 0
视频生成系统源码(AI智能python源码)
实现了先进视频生成技术的低成本普及,还提供了一个精简且用户友好的方案,简化了视频制作的复杂性从图像扩散模型到视频扩散模型的三阶段训练。我们提供每个阶段的权重。支持训练加速,包括Transformer加速、更快的 T5 和 VAE 以及序列并行。在对 64x512x512 视频进行训练时,Open-Sora 可将训练速度提高55%。详细信息请参见训练加速。我们提供用于数据预处理的视频切割和字幕工具。...
30 67977 0
Ai智能客服系统在线客服网站源码_支持二十种语言
简介:安全防护:系统强力加固,有效防止黑客入侵国际化多语言:中文简体、繁体、英文、越南语、印尼语、俄语、泰语、日语、韩语、西班牙语、法语、德语、意大利语、阿拉伯语、葡萄牙语、丹麦语等二十种语言。支持一键翻译,让外贸沟通更简单,助力外贸新机遇。框架:thinkphp5+workerman,环境:Nginx+php7.3+mysql5.6多商户客服、不限坐席、独立系统--数据存储自己服务器上,支持开启...
10 145183 0
视频生成系统源码(AI智能python源码)
实现了先进视频生成技术的低成本普及,还提供了一个精简且用户友好的方案,简化了视频制作的复杂性从图像扩散模型到视频扩散模型的三阶段训练。我们提供每个阶段的权重。支持训练加速,包括Transformer加速、更快的 T5 和 VAE 以及序列并行。在对 64x512x512 视频进行训练时,Open-Sora 可将训练速度提高55%。详细信息请参见训练加速。我们提供用于数据预处理的视频切割和字幕工具。...
30 67977 0

