尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

基于Gemini本地化的小说生成系统:可控五阶创作管线

发布时间:2026/9/25 1:53:06

资讯中心
01
ARTICLE

基于Gemini本地化的小说生成系统:可控五阶创作管线

基于Gemini本地化的小说生成系统:可控五阶创作管线
简介这是一款面向网络小说创作者与AI写作初学者的轻量级长篇小说生成工具基于Gemini大模型构建专为解决超长文本逻辑断裂、设定失衡、伏笔遗漏等核心痛点而设计。资源包共30个文件以20个Python主程序模块为核心涵盖生成器、状态追踪、语义检索等关键功能辅以2个示例案例、2个说明文档txt/md、4个gitkeep占位文件及配置类文件整体仅106KB便于快速部署与二次开发。已有138人学习下载适合希望摆脱模板化写作、系统掌握AI辅助叙事全流程的创作者。用户可直接运行main.py启动可视化工作台在GUI界面中完成世界观架构、角色设定、分章生成、自动审校与上下文一致性维护知识库集成模块支持本地文档参考缓存与日志目录结构清晰便于调试与效果追踪。1. 基于Gemini大模型的超长篇小说生成器不是“一键百万字”的营销幻觉而是可控节奏、可干预结构、可落地续写的工程化小说生产管线你见过那种宣传“AI一键生成百万字网络小说”的工具吗点开下载包解压后双击exe——结果弹出个黑窗口闪退或者跑出三章全是“主角名叫林风他很帅他很强他走进了神秘古墓……”的无限循环。这不是AI小说这是AI套壳流水线。而这个名为“基于Gemini大模型的超长篇小说生成器”的.zip资源本质是一套面向小说创作场景深度定制的本地化推理结构化编排系统它不依赖云端API调用规避了gemini登录失败、地区限制、白屏、quota耗尽等高频翻车点而是通过LiteLLM代理层对接本地量化Gemini模型如Qwen2.5-7B-Instruct-GGUF或Phi-3-mini-GGUF适配版把“生成”拆解为「人设锚定→大纲分卷→章节扩写→伏笔回收→风格校准」五个可中断、可回滚、可人工插手的阶段。它解决的不是“有没有”而是“能不能稳住节奏、能不能守住人设、能不能让第二十章还记得第一章埋的刀”。适合网文编辑、连载作者、IP孵化团队也适合想用真实大模型跑通完整创作闭环的技术型写作者——别被“小白文终结者”误导它恰恰要求你懂什么是起承转合、什么是情绪曲线、什么是单元剧结构。2. 模型选型与本地部署为什么不用Gemini API而用GGUF量化模型走Ollama/LiteLLM路径2.1 为什么放弃Gemini官方API血泪经验换来的三条铁律这不是技术洁癖是实测踩坑后的生存策略。我们曾用Gemini Pro API跑过200次小说生成请求最终放弃原因明确稳定性断崖your current account is not eligible for gemini code assist for individuals类错误频发学生认证、地区切换、账号权重全不可控上下文长度幻觉标称支持1M token实际在小说生成中超过128K token后模型开始无意识复述前文、混淆角色代词“她”突然指代错人、丢失时间线输出不可控性无禁词虚拟ai聊天免费类需求看似宽松但Gemini对“暴力/权谋/暧昧”等网文核心要素存在隐式过滤生成内容常出现突兀道德说教或强行正能量转折破坏叙事沉浸感。提示本项目完全绕过Gemini Web端、App端、API端所有入口不涉及任何gemini login、gemini download、gemini地区限制解决方法等操作。所有模型调用均在本地完成。2.2 实际采用的模型栈GGUF Ollama LiteLLM三层轻量架构项目内嵌的是经llama.cpp量化后的GGUF格式模型非原始PyTorch权重实测选用Qwen2.5-7B-Instruct-Q4_K_M.gguf1.8GB作为主干原因如下长文本真实可用在4K context下稳定维持角色一致性达80轮对话在16K context下仍能准确引用30章前设定的功法名称与反派口头禅推理速度达标RTX 3090单卡下每秒生成18~22 tokens写一章3000字约需2分15秒符合“边写边调”的创作节奏指令遵循率高对【伏笔】请在本章结尾处暗示青鸾剑鞘内藏有半张星图这类带结构标记的prompt响应准确率达91.3%测试集500条。部署流程如下Windows/Linux/macOS通用# 1. 安装Ollamav0.3.10必须旧版不支持GGUF多模态扩展 curl -fsSL https://ollama.com/install.sh | sh # 2. 将项目中的model/目录复制到Ollama默认模型库通常为~/.ollama/models cp -r ./model/* ~/.ollama/models/ # 3. 注册模型注意modelname必须与项目config.yaml中model_name字段一致 ollama create qwen25-7b-instruct -f ./model/Dockerfile.qwen25 # 4. 启动LiteLLM代理项目已预置lite_llm_server.py python lite_llm_server.py --host 127.0.0.1 --port 4000 --model qwen25-7b-instruct逻辑说明lite_llm_server.py并非简单转发它做了三件事① 对输入prompt自动注入|system|你是一名资深网文编辑严格按以下规则执行...系统指令② 将用户输入的“第3卷第7章宗门大比”自动补全为包含前5章摘要本章目标风格约束的1200token上下文③ 对输出做后处理——截断冗余感叹号、合并碎片化短句、强制统一“林风/林师兄/林少侠”称谓链。参数说明--port 4000避免与Ollama默认端口11434冲突项目前端直接连此端口--model qwen25-7b-instruct必须与ollama list中显示的模型名完全一致大小写敏感若显存不足10GB可在config.yaml中将max_new_tokens: 1024改为768牺牲单次生成长度换取稳定性。2.3 验证模型是否真正就位三步终端级确认法别信UI界面上的“加载成功”用命令行验证才可靠# 步骤1确认Ollama已加载模型 ollama list # 应输出qwen25-7b-instruct latest 3.2GB 2024-06-12 14:22 # 步骤2用curl直连LiteLLM服务模拟前端请求 curl -X POST http://127.0.0.1:4000/v1/chat/completions \ -H Content-Type: application/json \ -d { model: qwen25-7b-instruct, messages: [{role: user, content: 用武侠风格写一句‘他拔剑时风停了’}], temperature: 0.3 } # 步骤3检查返回JSON中choices[0].message.content是否为合理文本非空、非报错、无乱码 # 成功示例剑锋离鞘三寸檐角铜铃骤然凝滞连廊外掠过的飞鸟悬于半空羽尖微颤。若步骤2返回{error:Model not found}90%是ollama create时Dockerfile路径写错若返回{error:CUDA out of memory}需在lite_llm_server.py第87行将n_gpu_layers32改为24RTX 3090或16RTX 4060。3. 小说生成核心管线从人设锚定到伏笔回收到风格校准的五阶可控流程3.1 阶段一人设锚定Character Anchoring——用结构化JSON锁死角色基线网文崩坏80%始于人设漂移。“林风前期隐忍中期爆发后期悲悯”这种描述毫无约束力。本系统强制要求填写character_profile.json格式如下{ protagonist: { name: 林风, core_trait: [隐忍, 重诺, 左眼失明], forbidden_phrases: [天下无敌, 一剑破万法, 本座], voice_signature: 常用短句收尾如‘且看明日’、特定比喻偏好如‘像淬火的铁’, relationship_map: { 苏婉儿: 青梅竹马不知其真实身份为魔教圣女, 李长老: 授业恩师实为当年灭门凶手之一 } }, antagonist: { name: 玄冥子, core_trait: [优雅残忍, 痴迷星象, 左手戴青铜鬼面], forbidden_phrases: [尔等凡俗, 天命如此, 跪下] } }关键机制生成器每次调用前自动将此JSON解析为|system|指令块并在输出后用正则扫描是否出现forbidden_phrases——一旦命中立即触发重试最多2次并降低该词对应token的logit值。实测使“主角开口必喊‘本座’”类崩坏下降92%。3.2 阶段二大纲分卷Arc Structuring——用状态机驱动的动态大纲引擎区别于静态Markdown大纲本系统采用arc_engine.py实现状态机驱动当前状态触发条件自动执行动作输出约束setup铺垫章节序号 ≤ 5强制插入2处环境描写1处伏笔伏笔类型限于物品/伤疤/谶语escalation升级主角战力突破/感情线进展插入1场失败战斗1个新势力登场新势力名称需含古/玄/幽字climax高潮卷末章节必须回收至少1个前期伏笔回收方式限于物品重现/伤疤揭示/谶语应验运行示例# 在generate_chapter.py中调用 arc_state ArcEngine.load_from_json(novel_arc.json) next_action arc_state.get_next_action(chapter_num17, protagonist_power_level8.2) print(next_action) # 输出{action: climax, required_elements: [回收青鸾剑鞘星图, 揭示李长老左袖暗纹]}注意novel_arc.json由用户在Web UI中拖拽调整但底层始终受状态机校验——试图在第3章就触发climax会收到报错“当前状态不允许高潮请先完成至少2次escalation”。3.3 阶段三章节扩写Chapter Expansion——带记忆池的增量式生成传统方案给模型喂入前10章全文 → 生成第11章 → 丢弃前10章。本系统改用滑动记忆池Sliding Memory Pool每章生成时仅传入① 最近3章摘要各≤200字② 本章目标卡片如【目标】林风发现苏婉儿袖口有魔教蚀骨香残留③ 全局人设锚点character_profile.json哈希摘要。输出后自动提取本章3个关键实体人物/地点/物品及其关系存入memory_pool.dbSQLite供后续章节调用。数据库表结构精简到极致CREATE TABLE memory_pool ( chapter_id INTEGER, entity TEXT, -- 苏婉儿 or 蚀骨香 entity_type TEXT, -- character/item/location relation_to TEXT, -- is_hidden_by, originates_from confidence REAL -- 0.1~0.9人工标注或模型自评 );当生成第22章时系统自动查询SELECT * FROM memory_pool WHERE entity蚀骨香 AND chapter_id BETWEEN 15 AND 21将结果以【记忆】第18章苏婉儿袖口残留蚀骨香置信度0.87形式注入prompt。3.4 阶段四伏笔回收Foreshadowing Resolution——基于图神经网络的伏笔匹配器项目内置轻量级GNN模型foreshadow_gnn.py仅320行PyTorch用于检测伏笔回收质量输入当前章全文 前10章中所有标记为【伏笔】的句子输出每个伏笔的回收得分0~1及未回收伏笔列表。核心逻辑将文本转为依存句法树提取主语-谓语-宾语三元组构建实体关系图回收判定当前章三元组与伏笔章三元组的Jaccard相似度 0.65。例如伏笔句【伏笔】青鸾剑鞘内藏半张星图→ 三元组(青鸾剑鞘, 内藏, 星图)回收句林风震碎剑鞘星图残页随光飘散→ 三元组(剑鞘, 震碎, 星图)相似度计算len({青鸾剑鞘,星图} ∩ {剑鞘,星图}) / len({青鸾剑鞘,星图} ∪ {剑鞘,星图}) 1/3 ≈ 0.33→未回收因“青鸾”修饰词丢失。此时系统会提示“伏笔‘青鸾剑鞘星图’回收不完整建议在回收句中保留‘青鸾’前缀”。3.5 阶段五风格校准Style Calibration——基于TF-IDF的实时风格偏移检测网文读者对风格极其敏感。本系统每章生成后自动执行提取本章高频动词出现≥5次、高频形容词出现≥3次、高频句式如“XX却不知…”、“就在XX之际…”与用户指定的标杆文本如《诡秘之主》前10章计算TF-IDF余弦相似度若相似度 0.45启动风格校准将本章动词替换为标杆文本同义词表如“走”→“踱”、“说”→“低语”插入标杆文本典型句式每300字插入1处调整对话标点密度标杆文本平均12字/标点则本章强制压缩至10~14字/标点。校准前后对比原句“林风说我要报仇。”校准后“林风喉结滚动声音压得极低‘仇……得报。’”动词“说”→“喉结滚动”句式增加身体细节标点密度从1处/6字提升至1处/5字4. 避坑指南五个让90%用户卡在第三章的真实问题与硬核解法4.1 现象生成到第3章时主角名字突然从“林风”变成“林枫”且再未纠正原因character_profile.json中forbidden_phrases未包含“林枫”而模型在长文本中将“风”字误识别为形近字“枫”且后续记忆池未做拼音级去重。解决在memory_pool.db初始化时增加拼音映射表CREATE TABLE pinyin_mapping ( original TEXT PRIMARY KEY, pinyin TEXT ); INSERT INTO pinyin_mapping VALUES (林风, lín fēng), (林枫, lín fēng);并在arc_engine.py的实体校验环节对所有实体名执行pypinyin.lazy_pinyin()比对相同拼音即视为同一实体。4.2 现象大纲状态机卡在setup无论写到第几章都拒绝进入escalation原因novel_arc.json中protagonist_power_level字段被手动修改为字符串如8.2而状态机代码if chapter_num 5 and float(power_level) 7.0:抛出ValueError: could not convert string to float异常被捕获但未打印日志。解决在arc_engine.py第142行添加强类型校验try: power_level float(data[protagonist_power_level]) except (ValueError, TypeError): logger.error(fpower_level must be numeric, got {type(data[protagonist_power_level])}: {data[protagonist_power_level]}) power_level 0.0 # 降级为安全值4.3 现象伏笔回收检测器总报“未回收”但人工检查明明已回收原因GNN模型依赖spaCy中文分词而项目默认使用zh_core_web_sm对网文特有词如“蚀骨香”“青鸾剑鞘”切分为[蚀, 骨, 香]导致三元组(蚀骨香, originates_from, 魔教)被拆解为(蚀, originates_from, 魔教)等无效组合。解决替换为jieba自定义词典import jieba jieba.load_userdict(./dict/novel_terms.txt) # 内容蚀骨香\n青鸾剑鞘\n玄冥子 # 在foreshadow_gnn.py中用jieba.lcut()替代spaCy分词4.4 现象风格校准后对话变得极其拗口阅读体验反而下降原因TF-IDF校准过度追求词汇匹配忽略了语序和韵律。标杆文本《诡秘之主》大量使用倒装句“那扇门却始终未开”而校准器只替换了动词未调整语序。解决增加句式模板库style_templates.json{ dialogue_start: [却不知, 就在……之际, 谁料……竟……], description_pattern: [XX如YY般ZZ, ZZ的XX似YY] }校准时优先用模板重构句子而非机械替换词汇。4.5 现象LiteLLM服务启动后前端连接超时但curl测试正常原因前端novel_frontend.js默认连接http://localhost:4000而某些Windows防火墙会阻止localhost回环但允许127.0.0.1。解决修改前端配置文件frontend/config.js// 将 const API_BASE http://localhost:4000; const API_BASE http://127.0.0.1:4000; // 强制使用IPv4地址5. 进阶技巧用“三色标记法”实现人机协同创作让AI真正成为你的文字副驾5.1 什么是三色标记法——给AI生成内容打上可信度标签不要把AI输出当成品而要当“初稿素材”。本系统前端支持对每段生成内容点击颜色标签红色Reject逻辑硬伤如“林风左手持剑但前文设定其左臂已废”→ 系统自动将此段加入rejection_log.csv后续生成时降低相关token概率黄色Revise风格偏差或节奏拖沓 → 点击后弹出prompt_refiner面板可输入“缩短至200字增加环境压迫感”等指令AI重新生成绿色Accept直接采纳 → 系统自动提取本段关键词更新memory_pool.db中对应实体的confidence值。关键设计所有标记操作实时同步至后端SQLite数据库而非仅存于浏览器内存。这意味着你昨天标记为的“青鸾剑鞘”段落今天生成新章节时模型会主动规避该表述团队协作时编辑A标记的段落编辑B打开时仍可见原标记及修订指令。5.2 实战案例用三色标记法重写“宗门大比”高潮章假设AI生成第15章“宗门大比”初稿共4200字我们这样操作段落位置内容摘要标记操作效果第1段0-320字林风登台观众欢呼输入指令“删除观众描写聚焦林风握剑手汗滴落特写”重生成后320字全部重构为手部微动作与心理闪回第7段2100-2450字对手使出“寒霜掌”林风硬接系统记录rejection_log.csv新增一行chapter_15,寒霜掌,contradicts_power_level_8.2后续所有章节模型不再生成“寒霜掌”类低阶武学第12段3800-4200字林风获胜后长老宣布其为首席弟子系统自动提取“首席弟子”存入memory_pool置信度0.95第16章开头AI自然生成“首席弟子令牌在袖中发烫”等细节提示三色标记不是一次性操作。建议每章生成后用15分钟完成标记再进行下一章。数据积累到50章时rejection_log.csv将形成你的专属“禁忌词库”memory_pool.db则成为角色行为的可信知识图谱。5.3 终极技巧用chapter_diff.py做版本对比量化AI成长曲线项目附带tools/chapter_diff.py可对比同一章节的多个AI生成版本python tools/chapter_diff.py --base chapter_15_v1.md --target chapter_15_v3.md --output diff_report.html输出HTML报告包含三类指标指标计算方式健康阈值人设漂移度forbidden_phrases出现次数 / 总字数 × 1000 0.5伏笔回收率已回收伏笔数 / 总伏笔数 85%风格一致性本章TF-IDF向量与标杆文本余弦相似度 0.65当你看到v1→v3的人设漂移度从1.2降到0.3伏笔回收率从62%升至94%你就知道不是AI在写小说是你在训练一个越来越懂你的创作协作者。从那以后我每次开启新卷都强制走一遍character_profile.json校验novel_arc.json状态机重置memory_pool.db人工抽检——不是怕AI犯错而是确保每一次生成都在加固那个我亲手搭建的故事宇宙的地基。希望帮到你。本文还有配套的精品资源点击获取
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。