1. 项目概述一个能“听懂”你想法的小说创作Agent如果你也和我一样有过写小说的冲动但总卡在“开头难”、“剧情散”、“人物崩”这些坎上那么今天聊的这个工具可能会让你眼前一亮。Long-Novel-GPT简称LNGPT不是一个简单的文本续写器而是一个真正意义上的“长篇小说创作智能体”。它的核心目标是帮你把脑子里那些零碎的想法、一个简单的提问比如“我想写一个关于未来世界主角是退役机甲师捡到一台古董机甲的故事”一步步变成结构完整、情节连贯、甚至能达到网文签约门槛的百万字长篇。这背后依赖的是当下最前沿的LLM大语言模型和RAG检索增强生成技术。但LNGPT的巧妙之处在于它没有让AI天马行空地乱写而是为它设计了一套严谨的“工作流”大纲 - 章节 - 正文。就像一个经验丰富的编辑它会先帮你搭好骨架大纲再填充血肉章节剧情最后打磨细节正文润色。更关键的是它支持你导入已有的小说草稿或全文在这个基础上进行修改、扩写和续写让AI成为你的“超级辅助”而不是“替代者”。接下来我将结合自己深度使用和测试的经验为你拆解这个工具从部署到创作的全过程分享那些官方文档里不会写的实操细节和避坑指南。2. 核心架构与工作流深度解析LNGPT之所以能处理长文本并保持逻辑连贯其核心在于一个精心设计的Agent智能体架构。它不仅仅是调用一次API生成一段文字而是将创作过程分解为多个可管理、可回溯的步骤并通过工具调用实现信息的检索与同步。2.1 自上而下的“金字塔”式创作流程传统的AI写作工具往往是“一次性”或“续写式”的容易导致剧情跑偏、前后矛盾。LNGPT采用的“大纲-章节-正文”三级结构是一种典型的自上而下、逐步细化的工程化思维。大纲层战略层这是小说的顶层设计。AI根据你的初始想法Prompt生成一个包含核心冲突、主要人物关系、故事主线与可能支线的概要。这一步决定了故事的基调和走向。在我的测试中明确要求“科技修仙题材主角以现代知识破解上古阵法”AI生成的大纲就会围绕“知识体系碰撞”这一核心矛盾展开而不是泛泛的修仙升级。章节层战术层在大纲的框架下将故事分解为具体的章节。每一章会有一个核心事件和目标。例如大纲中“主角首次破解阵法”这一情节在章节层会被细化为“第X章藏书阁偶得残卷夜观星象初窥门径”。这一层确保了每个叙事单元都有明确的推进作用。正文层执行层这是最终的文本产出层。AI根据章节目标结合具体的风格Prompt如“天蚕土豆风格”生成详细的场景、对话和心理描写。在这一层RAG技术会介入检索已有的相关正文片段和剧情纲要确保新写的内容与之前已生成的部分在细节上如人物外貌、地点特征、法宝名称保持一致。注意这个流程并非完全线性。在“正文”创作阶段如果发现情节需要调整信息会反向反馈到“章节”甚至“大纲”层进行同步更新形成一个动态调整的闭环。这模仿了人类作者“边写边改”的创作习惯。2.2 RAG与工具调用确保“记忆”与“一致性”的关键长篇小说创作最大的挑战是“一致性”。写了50章之后AI很可能忘了第3章给配角设定的口头禅是什么。LNGPT通过RAG技术解决了这个问题。“拆书”与知识库构建当你导入一本已有小说时LNGPT会首先执行“拆书”操作。这个过程不仅仅是分割文本更重要的是提取关键信息如人物关系图谱、核心剧情纲要、重要地点和物品设定。这些信息被结构化地存储起来形成一个专属于这部小说的“知识库”。实时检索与上下文注入在生成新内容无论是修改还是续写时Agent会首先根据当前创作焦点例如“正在写主角与反派的第一次对决”从知识库中检索出最相关的正文片段可能是之前描写反派武功招式的段落和剧情纲要。这些检索到的内容会作为关键上下文与你的新指令一起发送给LLM。这就相当于在提醒AI“记住反派的特点是阴险狡诈常用一把淬毒短剑”。同步更新机制当你对某一段正文进行了修改比如把一场平局改成了主角惨胜LNGPT不仅保存修改后的正文还会自动分析这次修改对整体剧情的影响并更新对应的剧情纲要。例如纲要可能会从“主角与反派试探性交手”更新为“主角重伤但窥得反派武功破绽”。这保证了高层纲要始终是底层正文的准确摘要。这套机制使得LNGPT能够处理超长篇幅理论上只要知识库管理得当百万字级别的小说也能保持前后细节不自相矛盾。3. 从零开始本地化部署与配置详解官方推荐使用Docker部署这是最便捷、环境最统一的方式。但为了满足不同需求特别是使用本地大模型的情况这里会详细拆解每一步。3.1 基础Docker部署使用OpenAI等云端API这是最直接的启动方式适合绝大多数使用ChatGPT、文心一言、DeepSeek等云端API的用户。获取镜像打开终端Linux/macOS或命令提示符/PowerShellWindows执行拉取命令。这里有一个细节latest标签指向最新稳定版如果你想锁定某个特定版本如2.2可以指定maoxiaoyuz/long-novel-gpt:2.2。docker pull maoxiaoyuz/long-novel-gpt:latest配置文件准备这是最关键的一步。你需要从项目仓库找到.env.example文件。通常你可以直接使用curl命令下载或访问GitHub页面手动复制内容。# 示例下载配置文件到当前目录 curl -o .env.example https://raw.githubusercontent.com/MaoXiaoYuZ/Long-Novel-GPT/main/.env.example下载后将其重命名为.env。用文本编辑器如VS Code、Notepad打开它你会看到如下关键配置项# OpenAI OPENAI_API_KEYsk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx OPENAI_BASE_URLhttps://api.openai.com/v1 # 可用的模型例如 gpt-4o, gpt-4-turbo-preview OPENAI_AVAILABLE_MODELSgpt-4o # 文心一言 (可选) WENXIN_API_KEYyour_api_key WENXIN_SECRET_KEYyour_secret_key WENXIN_AVAILABLE_MODELSernie-4.0-8k # 线程配置 MAX_THREAD_NUM5API密钥将OPENAI_API_KEY替换成你自己的。如果你主要用文心就填写文心的API_KEY和SECRET_KEY。模型名称OPENAI_AVAILABLE_MODELS务必填写你API账户内确实有权限访问的模型名。填错了会导致无法调用。多个模型用英文逗号隔开。线程数MAX_THREAD_NUM控制同时生成的任务数。设为5表示最多可以5章同时创作速度更快但API调用并发量高费用消耗也快。请根据你的API套餐和网络状况调整。启动容器确保终端位于你存放.env文件的目录下执行运行命令。docker run -p 80:80 --env-file .env -d maoxiaoyuz/long-novel-gpt:latest-p 80:80将容器内的80端口映射到宿主机的80端口。如果你本机的80端口已被占用比如有Nginx可以改为-p 8080:80之后通过http://localhost:8080访问。--env-file .env指定环境变量文件。-d后台运行。访问与验证打开浏览器访问http://localhost或你指定的端口。如果看到LNGPT的Web界面说明部署成功。实操心得第一次启动时Docker可能会花一点时间拉取镜像层。启动后如果无法访问首先用docker ps命令查看容器是否在运行。如果容器状态异常使用docker logs [容器ID]查看日志通常能快速定位问题比如API密钥无效或模型名错误。3.2 对接本地大模型Ollama、LM Studio等许多开发者希望在本地运行开源模型如Qwen、Llama、DeepSeek Coder以保护隐私或节省成本。LNGPT通过兼容OpenAI API格式来实现这一点。核心原理你需要一个“桥梁”服务将本地模型的接口转换成LNGPT能识别的OpenAI API格式。Ollama和LM Studio都原生支持此功能。部署步骤以Ollama为例启动本地模型服务首先确保你的Ollama已经运行并拉取了所需模型例如qwen2.5:7b。然后启动OpenAI格式的API服务。# 启动Ollama的OpenAI兼容接口默认端口通常是11434 ollama serve # 或者如果你需要指定端口可以用其他工具如OpenAI-Forward或第三方包装器 # 假设服务地址为 http://127.0.0.1:11434/v1修改Docker启动命令为了让容器内的LNGPT能访问到宿主机你的电脑上运行的Ollama服务需要添加网络参数。docker run -p 80:80 --env-file .env -d --add-hosthost.docker.internal:host-gateway maoxiaoyuz/long-novel-gpt:latest关键参数--add-hosthost.docker.internal:host-gateway它创建了一个主机名映射使得容器内可以通过host.docker.internal这个域名访问到宿主机。配置.env文件这是最容易出错的地方。你需要配置本地模型部分并正确使用上述主机名。# 本地模型配置 (例如 Ollama) LOCAL_BASE_URLhttp://host.docker.internal:11434/v1 # 注意不是localhost LOCAL_API_KEYollama # Ollama通常不需要密钥但有些包装器需要这里可随意填写非空字符串如ollama LOCAL_AVAILABLE_MODELSqwen2.5:7b # 这里填写Ollama中你拉取的模型名称LOCAL_BASE_URL必须使用http://host.docker.internal:[你的端口]/v1。localhost或127.0.0.1在容器内指向的是容器自己而不是宿主机。LOCAL_AVAILABLE_MODELS必须与本地服务提供的模型名完全一致。在Ollama中就是ollama list命令显示的名字。在界面中选择模型部署成功后在LNGPT的Web界面设置中你应该能看到一个下拉菜单里面除了云端模型如GPT-4还会有你配置的本地模型如qwen2.5:7b。选择它即可开始用本地模型进行创作。踩坑记录我最初在LOCAL_BASE_URL中使用了http://localhost:11434/v1导致容器无法连接到Ollama日志报错“Connection refused”。改为host.docker.internal后立即解决。另外确保宿主机防火墙允许容器访问你所指定的端口如11434。4. 实战创作从零生成一部短篇小说的全流程假设我们现在要创作一部名为《星尘回响》的科幻短篇目标是生成约2万字的内容。我将演示如何利用LNGPT 2.2版本的功能高效完成从构思到成稿的过程。4.1 阶段一创意输入与大纲生成初始Prompt在“创作”页面不要只写“写一个科幻小说”。给予AI更明确、更具象的指令这能极大提升生成质量。例如“创作一部软科幻小说核心设定人类可以通过‘共鸣器’聆听宇宙中古老星辰消亡时发出的‘遗言’这些‘遗言’中蕴含着超越当前科技的物理规律。主角是一名因听力过于敏锐而被‘星语者’组织边缘化的监听员在一次偶然中他听到了一个本不该存在的、来自未来星辰的‘预言遗言’。请为此生成一个详细的故事大纲包括核心冲突、主要人物主角、导师、对手、盟友、故事的三幕式结构开端发现异常发展调查与遭遇阻挠高潮破解预言与终极抉择结局影响与余波以及可能涉及的科幻概念。”生成与调整点击生成后LNGPT会调用Agent开始工作。它会先根据你的Prompt生成一个初步大纲。这个大纲可能比较粗糙你可以直接在这个结果框里继续用自然语言对话来调整它。比如“把对手从组织内部官僚改为一个试图垄断星辰遗言科技的巨型企业‘寰宇集团’。给主角增加一个弱点每次深度共鸣后会短暂失去对现实声音的感知。”锁定大纲当大纲调整到你满意后这个文本就成为了后续所有章节和正文生成的“宪法”。LNGPT会将其存入知识库作为后续检索和一致性校验的最高指导。4.2 阶段二章节规划与剧情展开基于大纲生成章节进入“章节规划”或类似功能页。你可以指定要生成多少章比如10章以及每章的预期字数比如先设定200字作为章节概要。输入指令“根据上述大纲生成10个章节的标题和核心剧情概要每章概要约200字确保节奏紧凑每章结尾留有悬念。”并行生成与线程控制LNGPT 2.1版本支持多线程并行生成章节。如果你在.env中设置了MAX_THREAD_NUM5那么10章会分两批每批5章同时生成速度显著提升。在界面上你通常可以看到一个任务队列或进度条。人工审核与微调生成完毕后务必逐章审阅这些概要。这是控制故事走向最关键的人工介入点。你可以调整顺序拖拽章节调整叙事时序如采用倒叙。合并/拆分觉得某章内容太多就拆成两章太单薄就合并。直接编辑对任何一章的概要进行文字修改细化或改变情节。重新生成对不满意的单章可以选中后让其重新生成直到符合要求。注意事项章节概要阶段不必追求文笔重点是情节逻辑和节奏把控。确保每一章都有明确的事件推进、人物成长或悬念设置。这是防止后续正文写“散”了的关键。4.3 阶段三正文生成与风格化润色这是篇幅最长的阶段也是AI大显身手的阶段。选择风格PromptLNGPT允许你为正文生成选择不同的风格模板。例如如果你想要网络文学那种快节奏、强代入感的风格可以加载“天蚕土豆风格.txt”这个Prompt。这个Prompt里定义了句子长短、词汇偏好、描写侧重等。你也可以根据自己喜好创建或修改Prompt。启动正文生成选中所有或部分章节点击“生成正文”。LNGPT会为每个章节的概要结合选定的风格Prompt以及从已生成内容中检索到的相关信息如人物特征、已设定的科幻名词展开成详细的正文。RAG在此时的作用当生成第5章时Agent会自动去检索前4章中关于“共鸣器”的具体描述、主角听力缺陷的几次表现、以及“寰宇集团”首次出场的段落确保这些细节在第5章中得到延续。这正是长篇小说保持“一致性”的魔法所在。迭代与扩写单章润色对某一章生成的正文不满意可以选中该章使用“对草稿进行润色”Prompt或输入具体指令“把这场打斗写得更细致一些”“增加一些环境描写烘托孤独感”进行重写或扩写。批量扩写如果觉得每章2000字还不够可以选中全部章节使用“扩写”功能指令为“将每章正文在保持原有情节的基础上扩充50%的篇幅主要增加人物对话细节和环境氛围描写”。全局修改如果你中途想改变某个设定比如把“共鸣器”改名为“星纹接收器”可以在知识库管理或特定界面进行全局查找与替换LNGPT会同步更新剧情纲要中的相关提及。4.4 阶段四导入已有文本与协同创作这是LNGPT区别于其他工具的强大功能。假设你已有3万字的《星尘回响》初稿。导入与拆书在“书籍管理”或类似页面导入你的Word或TXT文档。LNGPT会启动“拆书”流程这可能需要几分钟时间取决于文本长度。完成后系统会生成初始的人物关系图和剧情纲要。基于原文的修改与续写局部改写你觉得第8章的高潮部分张力不足。你可以直接选中第8章对应的正文片段给出指令“重写主角与寰宇集团保安队长在空间站核心的对峙场景要求对话更加针锋相对增加主角利用环境智取的细节。”续写如果你的故事卡在了第15章。你可以让AI基于前14章的全部内容通过RAG检索和整体大纲生成第15章及之后的章节概要和正文。风格统一如果你的初稿文风不统一可以选中全部章节应用“润色”Prompt让AI将全文风格调整为一致的网文风或文艺风。5. 高级技巧与成本优化实战指南使用AI辅助创作效果和成本是需要平衡的艺术。以下是我在多次实践中总结出的经验。5.1 提示词工程与AI高效沟通结构化指令将你的要求分点列出比写一大段散文式的描述更有效。低效“写一个有趣的相遇主角很酷女主很美场景要浪漫。”高效“生成主角林风与女主苏雨在‘星辰遗物拍卖会’上的首次相遇场景。要求1. 林风的行为动机是寻找特定频率的遗物碎片表现其专业和敏锐2. 苏雨的身份是神秘卖家举止优雅但带有疏离感3. 场景描写突出拍卖会的科技感与奢华4. 两人因竞拍同一件物品产生交集对话中有隐晦的机锋5. 结尾为苏雨留下一个谜题式的线索。”提供范例在Prompt中直接粘贴一段你喜欢的文字风格作为例子告诉AI“请模仿以下段落的描写节奏和词汇风格”。角色扮演直接让AI扮演特定角色进行思考。例如在生成大纲时指令开头可以是“你是一位拥有20年经验的科幻杂志主编请以专业视角评估并完善以下故事创意...”分步引导对于复杂情节不要指望AI一步到位。可以先让它“列出这个阴谋的5个关键步骤和3个可能的漏洞”然后再基于这个列表去生成具体剧情。5.2 成本与线程管理精打细算玩转APILNGPT界面会实时显示API调用费用针对OpenAI等计费API这是非常实用的功能。线程数设置.env中的MAX_THREAD_NUM是双刃剑。数字越大并行章节越多生成速度越快但瞬间的Token消耗和API请求数也呈倍数增长可能导致速率限制或费用激增。建议初次尝试或使用高价模型如GPT-4时设置为2-3。在生成章节概要这类对质量要求稍低、任务量大的环节可以调高到5。在生成最终正文这类要求高的环节建议调回2-3甚至1以获得更稳定、更专注的生成质量。模型选择策略大纲与章节规划可以使用能力较强但成本较高的模型如GPT-4因为这一步决定了故事骨架值得投入。正文扩写与润色对于已有详细章节概要的正文生成可以尝试使用性价比较高的模型如GPT-3.5-Turbo、文心ERNIE-Speed。风格化润色时再切换回强模型。本地模型兜底对于大量的、重复性的文本生成任务比如批量将每章从500字扩写到800字完全可以交给本地部署的7B/13B参数模型虽然文采可能稍逊但零成本用于产生草稿非常合适。分阶段保存与版本管理不要一次性生成全部百万字。建议每完成10-20章就手动将作品导出保存。LNGPT的内部状态可能会因为更新或意外而重置外部备份至关重要。你可以用Git来管理不同版本的小说文稿清晰看到每次AI修改和人工调整的差异。5.3 质量把控当好AI的“主编”AI是强大的写手但不是完美的作家。它缺乏真正的人类情感和深度的生活阅历。因此你的角色必须从“作者”转变为“主编”。逻辑检查官AI最常犯的错误是“逻辑跳跃”和“细节遗忘”。仔细检查人物的动机是否合理时间线是否矛盾上章受伤的角色这章是否突然痊愈了利用LNGPT生成的“剧情纲要”作为检查清单逐条核对。情感注入者AI写的对话和内心独白有时会显得“空洞”或“套路化”。你需要人工介入为关键场景添加真正打动人心的细节。比如把“他很伤心”改成“他攥着那张泛黄的星图指节发白却感觉不到一丝疼痛因为心里的某个地方已经先一步碎成了听不见的星尘。”风格统一者即使使用了风格PromptAI在不同段落间的文风仍可能有细微波动。通读全文调整那些过于突兀的句式或词汇确保语言风格统一。创意源泉AI擅长组合与扩展但突破性的“神转折”和“绝妙设定”依然来自人脑。当AI生成的情节陷入俗套时就是你发挥创意、给出全新指令的时候。6. 常见问题与故障排查实录在实际部署和使用中你可能会遇到以下问题。这里记录了我的排查和解决方法。问题现象可能原因解决方案访问http://localhost报错“连接被拒绝”1. Docker容器未成功启动。2. 端口被占用或映射错误。1. 运行docker ps查看容器状态。若无用docker logs [容器ID]查日志。2. 改为-p 8080:80映射到其他端口访问http://localhost:8080。界面提示“API错误”或“模型不可用”1..env文件中API密钥错误或过期。2. 模型名称填写错误如大小写、空格。3. 对于本地模型LOCAL_BASE_URL地址或端口错误。1. 仔细检查并重新填写API密钥。2. 核对官方文档确保模型名完全正确。3. 测试本地API服务在宿主机用curl http://127.0.0.1:11434/v1/models看是否返回模型列表。确保Docker命令中加了--add-host参数。生成内容突然中断或重复生成同一段1. 上下文长度Token数超出模型限制。2. 多线程任务冲突或网络波动。1. LNGPT会自动切分长文本但若单次指令过长仍可能出错。尝试简化Prompt或分更小的阶段生成。2. 调低MAX_THREAD_NUM减少并发。检查网络连接稳定性。“拆书”功能耗时极长或卡住导入的书籍文件过大如超过10MB。1. 耐心等待处理百万字小说可能需要数十分钟。2. 考虑先将大文件拆分为多个部分如每部/每卷分别导入。生成的小说情节平淡缺乏创意初始Prompt过于简单未给AI足够的约束和灵感。参考5.1 提示词工程提供更详细的人物设定、世界观框架和情节约束。给AI“戴上镣铐跳舞”它反而能跳出更精彩的舞步。使用本地模型时生成速度非常慢本地模型参数较大如13B以上且硬件CPU/内存性能不足。1. 尝试量化程度更高的模型版本如Q4_K_M。2. 在生成时在LNGPT界面选择更短的输出长度限制。3. 考虑在正文生成阶段使用本地模型在大纲和章节规划阶段使用更快的云端API。最后一点个人体会Long-Novel-GPT是我目前见过的将AI用于长文本创作最务实、最体系化的工具之一。它没有空谈“完全自动创作”而是聚焦于“增强人类作者”。它的价值不在于替代你写出惊世之作而在于帮你扛住最枯燥、最需要重复劳动的“堆字数”和“保一致”的环节让你能把宝贵的精力集中在核心创意、人物塑造和情感升华上。把它当作一个不知疲倦、知识渊博、任劳任怨的写作助理明确你掌舵、它划桨的分工才能真正人机协同驶向创作的深海。