基于大语言模型的小说生成器:如何用RAG根治长篇设定崩塌与逻辑漂移

📅 发布时间:2026/9/8 9:52:13
基于大语言模型的小说生成器:如何用RAG根治长篇设定崩塌与逻辑漂移 简介这是一款基于大语言模型的多功能小说生成器面向希望提升长篇创作效率的写作者与AI应用爱好者帮助解决故事连贯性、角色一致性和情节合理性等常见难题。压缩包共48个文件约498KB以Python源码为主包含主程序、一致性检查器、大模型适配器、配置管理等模块辅以说明文档和配置文件结构清晰便于二次开发。已有276人学习下载。读者可借助其模块化设计快速搭建本地运行环境按提示设定故事类型、风格与角色背景即可生成初稿并利用内置检查机制维护世界观统一适合从构思到成稿的多种创作场景是探索AI辅助文学创作的高性价比工具。 写长篇小说最崩溃的瞬间是什么不是卡文不是灵感枯竭而是写到第三十万字的时候突然发现自己把主角左手的伤疤写到了右手或者第一卷就死掉的配角在第五卷又活生生地出现帮着主角打架。这种设定崩塌的问题几乎是每个长篇写作者的噩梦。我做这款“基于大语言模型的多功能小说生成器”初衷就是为了治这个病。它不是那种你输入一句话就给你瞎编三千字的“自动写文机”而是一套帮你在动笔之前就把世界观、人物关系、时间线、能力体系全部固化下来的创作辅助系统核心解决三个问题逻辑严谨、设定统一、长篇可维护。这篇博文我会把整个项目的设计思路、功能拆解、实操流程和踩坑记录全部摊开来讲适合正在写长篇网文、准备做互动叙事游戏或者对LLM应用开发感兴趣的读者。1. 整体设计思路为什么大模型写长文总是“越写越崩”在动手做这个生成器之前我先花了两周时间调研市面上已有的AI写作工具发现一个通病它们都只擅长“短平快”你让它写个五百字的小短文、写个朋友圈文案、写个短视频脚本效果都不错。但一旦让它写几十万字的长篇小说基本到第三四万字就开始崩——前后人名对不上、时间线混乱、角色性格漂移、设定说变就变。1.1 大模型写长文的“记忆天花板”这个问题的根源在于大语言模型的注意力机制存在天然的“上下文窗口”限制。通俗点说模型每次生成文本时只能“看到”你喂给它的那么长一段内容超出窗口范围的信息就会彻底消失。你不可能把五十万字的草稿一次性塞进上下文窗口让它“记住”就算是最新的长上下文模型塞进去之后生成质量也会断崖式下降注意力被稀释模型反而抓不住重点。这就好比让一个记忆力极好但只能记住最近半小时谈话内容的人来做你的编辑你跟他聊前三十章的情节他认真听完了但聊到第五十章的时候他已经把前三十章忘干净了。这跟模型本身的智商无关纯粹是架构机制决定的。1.2 我的解法给大模型配一个“设定外挂”既然模型记不住那就不让它“硬记”。我的核心设计思路是把需要长期记忆的内容从上下文窗口中剥离出来单独建立一个结构化设定库在每次生成前动态检索并注入当前章节所需的设定片段。这个思路其实借鉴了RAG检索增强生成的做法。小说生成器维护一个专门的“设定数据库”里面存放世界观设定、人物卡、势力关系、时间线事件、伏笔清单等结构化信息。每次写新章节时系统先分析本章涉及哪些人物、哪些地点、哪些伏笔然后从设定库里检索出相关条目拼装成一段“当前章节提示词”再交给模型生成正文。这样一来模型永远不需要记住整本书它只需要专注于当前章节的创作而全局的一致性和逻辑性由设定库来保障。这就像给一个天赋型但健忘的写手配了个满分助理助理负责查资料递素材写手负责发挥文采各司其职。1.3 技术选型API调用为主本地部署兜底模型层面我踩了不少坑。最开始想全部用本地部署的开源模型省成本还能保护数据隐私但试下来发现开源模型在长篇叙事的连贯性和文笔细腻度上跟商业API模型确实还有差距。特别是描写人物微表情、环境氛围渲染这类需要“笔力”的活儿开源模型写出来总差点意思。最终我采用的是“双轨制”架构默认走商业大模型API比如通义千问、智谱、DeepSeek等国内平台保证生成质量同时预留了本地部署接口用ChatGLM或千问开源版做兜底处理不需要太高文笔的章节大纲、设定整理等工作。这里友情提示一下新手配置API的时候一定要看清楚平台给的“代理地址”到底是指什么——有的平台要求填的是网关地址有的是模型服务地址填错一个字母就全部报错我刚开始调试的时候在这上面白白耗了一个下午。2. 核心功能拆解与实操要点整套系统我分了四个核心模块世界观设定模块、人物管理模块、章节大纲模块、正文生成与润色模块。每个模块解决一个层面的问题合起来才能支撑起长篇创作的完整闭环。2.1 世界观设定模块把“规则”写进系统里这个模块是整套系统的地基。很多写手在动笔前脑子里其实有完整的世界观但就是没落在纸面上写到后面全靠记忆不崩才怪。我的做法是设计了一套结构化字段模板强制用户把设定填进去包括但不限于世界背景、力量体系、种族/阵营、地理区域、科技/魔法水平、社会制度、禁忌与限制。最核心的一个字段叫“硬性规则”专门记录这个世界里绝对不能违背的物理法则或运行规律。比如你设定“这个世界魔法需要消耗生命力”那这条规则会被系统标注为“全局锁定”无论生成哪一章模型都会被明确提示不得写出“无代价使用大型魔法”的情节。这里有一个实操要点值得强调设定不是写得越多越好。一个常见误区是新手恨不得把世界观写成十万字百科全书结果模型每次都要携带超长设定反而冲淡了正文的创作上下文。我建议设定库的总字数控制在单次生成允许的上下文中占到三分之一以内宁缺毋滥只留核心规则和与当前剧情强相关的设定。2.2 人物管理模块深度人设卡与OOC控制人物写崩是最影响读者弃书的原因。角色前期冷静理智后期突然无脑冲动这种“OOCOut Of Character不符合原人设”问题是AI写作的重灾区。我设计的“深度人设卡”不只记录姓名年龄外貌这些表层信息更关键的是三层内容性格标签、行为准则、说话风格特征。性格标签用来约束角色的决策倾向比如一个“谨慎多疑”的角色系统会避免让他在没有充分证据的情况下做出冒险行动行为准则记录角色的底线和禁忌比如“从不伤害儿童”、“极度厌恶背叛”这些是角色行为的红线说话风格特征则存储角色的惯用句式、口头禅、语速倾向甚至用词偏好确保对话读起来“像这个人说出来的话”。操作上我做了个“同场景重写”功能——如果你发现某段对话角色语气不对可以单独选中这段文字系统会基于该角色的人设卡重新生成而不是整章推倒重来。实测下来这个功能最能节省修改时间原来AI写完一章我要花半小时改人物对白现在基本几分钟就能过一遍。2.3 章节大纲模块让模型当“拉片编辑”写长篇最忌讳的就是“脚踩西瓜皮滑到哪里是哪里”。但我发现让大模型直接生成完整细纲往往会结构松散因为它缺乏“全书观”。我建议的处理思路是“两步走”第一步让模型基于设定库生成“三幕式总纲”——开头、高潮、结局。这个阶段不需要细节只定大方向比如主角的初始状态、核心矛盾、终极目标、关键转折点。第二步每一卷开始时基于总纲和当前状态生成“卷纲”再基于卷纲拆解“章节纲”。每次拆解时模型都会从设定库中检索这个时间点已经发生的事件、角色当前的状态、待回收的伏笔清单确保大纲之间逻辑衔接紧密。这里面的设计密码是“倒退式校验”——每一章大纲生成后系统会把它和之前的章节摘要做一次逻辑比对专门检查时间线冲突、地点跳转异常、人物“凭空出现”等问题。这个环节特别重要我在测试时发现即使设定库做得再好模型在生成大纲时还是偶尔会“不小心”让一个早该死掉的角色复活倒退式校验能把这个bug在生成正文之前就拦下来。3. 实操过程搭建并跑通完整创作流程理论说再多不如直接上手跑一遍。下面我以一个具体的太空悬疑题材为例完整演示这套小说生成器从零到一的工作流程包括提示词设计、参数选择和过程记录你可以直接照着复现。3.1 初始化设定库以“深空孤舟”项目为例第一个实操动作永远是建设定库而不是急着写正文。我在系统里新建了一个名为“深空孤舟”的项目填写了以下核心设定世界观背景公元2387年地球资源枯竭人类派出“孤舟号”殖民飞船前往14光年外的开普勒-442b航程耗时152年船上采取冷冻休眠制度每10年轮换一组船员值班。硬性规则飞船内重力模拟系统覆盖全船若关闭则进入微重力环境超光速通信不可用与地球存在最长11年的信号延迟舰载AI“忒弥斯”拥有船内最高控制权但不能直接伤害船员。故事核心冲突在一次例行轮换中发现本该处于休眠状态的第三批船员中有一人提前苏醒且死亡死状蹊跷主角临时接任安全官展开调查。这组设定的妙处在于每一条规则都预设了叙事张力。信号延迟意味着孤立无援的绝境休眠制度让每个人都有嫌疑AI权限的限制则埋下了“AI是否在其中做了手脚”的悬念线。填写完设定后系统会自动把规则转换为约束指令在后续所有生成请求中附加传送给模型。3.2 构建人物卡让角色立得住设定库建好之后我建了三个初始人物。以主角为例深度人设卡如下她叫林昭27岁原飞船工程部技术员临危受命接任安全官。性格标签填的是“高敏感、低信任、高执行力”——她对周围人的情绪变化极度敏感但表面上冷静克制只有在压力临界点才会爆发。行为准则栏填了三条绝不在没有把握的情况下公开指责他人对自己认定的真相执拗到底不惧与权威对抗尽可能避免不必要的牺牲。说话风格特征我备注了“短句多、疑问句多、习惯性重复对方话语的末尾两个字”。这个细节很有意思实际操作中我发现这种语言学层面的特征描述比单纯写“她说话很冷漠”有效得多。模型能根据“重复对方末尾词”这种具体模式生成了非常有辨识度的对话节奏。写作时读者即使遮住人名也能从台词风格猜到是谁在说话。3.3 生成章节大纲从卷纲到章纲的层层落体设定和人物卡就绪后我先让系统生成了第一卷卷纲标题为“第八十七天的异常”。模型根据总纲和当前状态给出了四个关键章节节点发现异常死亡、初步调查引出矛盾、查案触碰舰规禁忌、卷末发现第二具尸体且凶手似乎“不可能”作案。然后我让系统把第二章“初步调查引出矛盾”拆解成段落级别的大纲。这里要讲解一下参数调节的技巧。大模型生成有一个temperature参数控制随机性取值范围一般是0到2。数值越低输出越发散度小、更加保守可控数值越高越发有创意但容易跑偏。我的经验是生成场景推荐temperature原因卷纲、章纲等结构性内容0.5-0.7既要逻辑稳定又要保留一点意外转折人物对话0.8-0.9稍高随机性让对话不那么“样板戏”动作场景、战斗场面0.7-0.8保持节奏感避免啰嗦情节推理、解密桥段0.4-0.5逻辑严谨优先避免逻辑崩坏第二章的大纲生成时我设了temperature0.6生成结果里有个细节让我很满意模型主动建议“让林昭在调查时发现前任安全官留下的日志但日志最后一页被撕掉”——这既制造了悬念又自然带出了支线线索还不需要额外引入新角色。这说明设定库里的“前任安全官”虽然只填了简单信息但足够模型在这个框架内发挥创造力了。3.4 逐段生成正文与即时校验大纲定稿后进入逐段生成流程。我的做法不是让系统一次性输出完整章节而是按章节内部段落切分成若干个“创作单元”每个单元控制在800到1500字左右生成后立刻做一次设定校验通过后再生成下一段。这个操作背后的原因是分段生成可以大幅降低上下文携带量让模型专注于当前场景的描写同时每次生成前系统都能重新注入与当前段落相关的最新状态信息——比如角色在上一段刚发现关键物证这一段她的心理状态标注就会调整为“警觉、紧张、怀疑对象锁定为二副”。第一次完整生成“林昭询问二副不在场证明”这个单元的正文后系统返回的文本里出现了一个逻辑裂缝二副的台词里提到了“两周前的事”但时间线上这艘船上的“周”概念早就被改成了“轮换周期”用“周”来算时间在这个世界里根本不符合设定。这正是倒退式校验发挥作用的地方——校验模块比对了时间线设定库检测到用词与世界观矛盾自动标注了警告并给出了修正建议“轮换周期第12天”或“距上次轮换过去三天”。我把这些校验提醒汇总成了一个“逻辑勘误记录”文件积累到目前已经有几十条。回头看这正是这套系统和普通AI写作软件拉开差距的地方普通软件给你生成一段好看的文字但这套系统在生成的同时还在盯着逻辑漏洞相当于每一章都配备了一个较真的逻辑编辑。4. 常见问题与排查技巧实录系统虽然好用但踩坑的地方也不少。我把实际使用中频率最高的问题和排查方法整理成一份速查手册基本都是常规文档里不会写的经验每一条都是我实实在在调试过的。4.1 上下文遗忘问题前文设定“突然消失”现象设定库里明明写了某个配角是左撇子后续章节里他却“右手持枪射击”。原因排查下来往往不是设定库失效了而是生成某一段时检索模块没有把“左撇子”这个设定标签作为关键词命中。我做的最关键修复是把人物卡的“关键视觉特征”字段单独提炼出来作为全局注入信息不依赖检索命中——凡是填进这个字段的内容每次生成必带。这个修复虽然只改了一行注入逻辑但效果立竿见影。我后来把这个经验推广到所有“高频硬设定”上比如主角的外貌、飞船的名字、核心科技的运作法则全部走全局注入通道不再依赖语义检索。4.2 角色说话“A像B”人设卡生效范围不足现象对话生成时两个性格差异很大的角色说出来的话几乎一个调调看台词根本分不清是谁。排查后发现是提示词里的人物风格指导写得太过笼统——“说话有个性”这种描述等于没说。解决思路是分两步走第一步缩窄风格描述到句式层面比如“习惯用三到五个字的短句提问”、“爱用比喻来描述技术概念”第二步生成对话前额外注入一段“人物关系动态”——比如当前正在对话的两人上次交流时发生过争执这次对话语气会带着一丝防备。我强烈建议不要指望一次设置永久生效。长篇创作过程中人物会成长、关系会变化我每周会花十分钟回顾本周生成的章节把手动修正过的人物描写特征记录回人设卡里让人设卡“跟着故事一起长”。4.3 “AI味”太重四字成语堆砌、排比句泛滥这是几乎所有人用大模型写小说都躲不开的毛病。生成的文字读起来华丽但空洞一段话连续三个排比形容词堆得比内容还多。我试过很多方法最有用的有两个第一个是在提示词里明确约束“多用具体名词少用抽象形容词”比如不要写“她感到深深的绝望”而要写“她盯着舷窗外无尽的黑手指在控制台上轻轻敲了十七下”第二个方法是把temperature调低同时把重复惩罚参数frequency penalty调高试试这个参数会抑制模型重复使用同样的词汇能让行文不再那么“复读机”。配合这个方法我在系统里增加了一个“风格种子样例”功能——把自己欣赏的名家片段作为风格参考放入提示词中让模型模仿那种句子的节奏和用词密度。实测下来配合使用之后AI味能减轻大半。4.4 Token消耗失控长篇小说越写越贵写长篇必然要面对成本问题。我刚开始测试时光一个十章的生成流程就烧掉了几十万token换算成钱确实肉疼。后来做了三个优化第一是缓存历史章节的摘要而不是直接把全文塞进上下文。系统每章结束后会把该章缩写成300字左右的“章节记忆”后续生成只携带记忆不携带全文这能让上下文占用减少60%以上费用自然就下来了。第二是对小节级别设置上下文裁剪只携带与本场景相关的设定和记忆。因为有些章节省略了大量角色出场没必要携带他们的全部信息。第三是把大量格式化整理工作切到本地部署的小模型执行比如从原文提取时间线、更新伏笔状态这类轻量任务放在本地跑既快又近乎免费。商业API只用来撑正文创作这种高价值环节。5. 写在最后大模型写小说的正确打开方式这套系统从构思到现在已经迭代了三个多月最大的感触是大模型写长篇小说的核心挑战从来不是“文笔不够好”而是“记忆不够长、逻辑不够稳”。文笔粗糙可以通过多轮润色解决但逻辑崩坏和设定漂移是硬伤一旦发生轻则读者吐槽重则整本书结构崩塌无法完本。目前这套小说生成器已经帮我稳定产出了两部完整的中长篇故事一部是文首提到的太空悬疑题材另一部是东方玄幻前者测试它在硬设定约束下的严谨度后者测试世界观自由创造空间。两部作品都做到了“无前后矛盾、无角色漂移、伏笔均可回收”这在没有系统辅助的时代几乎是不可能的任务。有一点想与各位读者分享的是不要指望大模型完全替代你的创作它更像是团队里的“文字助理逻辑校对设定记忆库”三合一的工具。你的审美、你的选题、你对生活和人性的洞察这些依然是无法被模型替代的核心竞争力。工具负责让你不犯错而负责让故事发光的人仍然是你自己。如果你也在试用同类工具建议从一个小短篇或者短篇集开始练手把设定库的结构建立起来感受一下“设定先行、生成紧随”的创作节奏。这套思路的精髓在于把创作中机械重复的部分交给机器把创意和情感表达留给自己。路还长但方向我已经帮你验证过了可以放心走。本文还有配套的精品资源点击获取