AI小说创作助手实战:智能拆书、起名与润色提示词工程

发布时间:2026/10/6 17:43:41
AI小说创作助手实战:智能拆书、起名与润色提示词工程 简介AI小说创作助手是一套面向小说作者与写作爱好者的智能创作生产力工具基于人工智能与提示词技术帮助解决灵感枯竭、框架搭建困难、文本润色耗时等痛点适合从入门写手到职业作者的多层级用户。资源包共52个文件约3.48MB以Python脚本与JavaScript模块为主辅以PNG界面截图、Markdown教程文档、HTML页面及配置说明涵盖多模型接入脚本、提示词编辑器、拆书与思维导图模块、小说编辑器教程等结构清晰便于二次开发与功能扩展。目前已有52人学习下载。通过该资源读者可获取智能拆书、书名与简介生成、正文润色、错别字修正等完整功能实现思路并参考多平台大模型接入脚本与提示词优化文档快速搭建属于自己的AI写作工作流提升创作效率与作品质量。1. 从一份 Shi.zip 说起AI 小说创作助手到底能替你做哪几步如果你写过网文大概经历过这种循环想书名想到凌晨两点简介改了七版还是不满意正文写到第三章发现节奏塌了回头拆别人的爆款又拆不出结构。AI 小说创作助手就是冲着这几个环节来的——它把「智能拆书、生成书名与简介、正文润色」这几件事打包成一个本地工具核心驱动是提示词技术而不是某个云端黑盒。你拿到手的 Shi.zip 解压后是一套可运行的创作工作台提示词管理是它的骨架拆书用一套模板起名用一套模板润色又是另一套彼此独立又能串起来用。适合谁日更压力大的网文作者、想批量产出短篇的运营、以及需要把提示词工程落到具体写作场景的 AI 应用开发者。它不替你写完整本书但能把「从灵感到可发布章节」之间的机械劳动压掉一大半。2. 拆开 Shi.zip目录结构、提示词管理与运行环境2.1 解压后先看什么目录骨架与文件职责拿到 Shi.zip 别急着双击运行先解压到一个纯英文路径下——中文路径在部分 Python 依赖加载时会出编码问题这是血泪经验。解压后典型结构大致是这样不同打包版本文件名可能略有出入以实际为准ai-novel-assistant/ ├── main.py # 入口启动交互界面或命令行 ├── config/ │ ├── settings.json # 模型接口、温度、最大 token 等全局配置 │ └── prompts/ # 提示词模板目录核心资产 │ ├── dismantle.txt # 拆书模板 │ ├── title.txt # 书名生成模板 │ ├── intro.txt # 简介生成模板 │ └── polish.txt # 润色模板 ├── core/ │ ├── llm_client.py # 模型调用封装 │ ├── prompt_manager.py # 提示词加载、变量替换、版本切换 │ └── novel_parser.py # 拆书时的文本分章、结构提取 ├── data/ │ └── samples/ # 示例文本用来跑通流程 └── requirements.txt # 依赖清单config/prompts/是整个工具最值钱的地方。它把「拆书」「起名」「简介」「润色」拆成独立模板文件每个文件里用占位符标记变量比如{chapter_text}、{style}、{word_count}。prompt_manager.py负责读模板、替换变量、拼最终请求。你改提示词不用动代码改 txt 就行——这一点对非程序员作者非常友好。2.2 运行环境与依赖安装工具基于 Python常见做法是建虚拟环境再装依赖避免污染系统包。步骤如下# 进入解压后的目录 cd ai-novel-assistant # 创建虚拟环境Python 3.9 以上 python -m venv venv # 激活Windows venv\Scripts\activate # 激活macOS / Linux source venv/bin/activate # 安装依赖 pip install -r requirements.txtrequirements.txt里通常包含requests、jieba中文分词拆书时用、rich终端美化输出等。如果安装卡在某个包上先升级 pippip install --upgrade pip。装完后别急着跑main.py先确认config/settings.json里的模型接口配置。2.3 settings.json 里必须改的三个参数打开config/settings.json你会看到类似结构{ api_base: https://your-endpoint/v1, api_key: sk-xxxxxxxx, model: your-model-name, temperature: 0.8, max_tokens: 2048, top_p: 0.9 }api_base和api_key填你自己可用的模型服务地址与密钥model填对应模型名。这三个不改后面所有功能都跑不起来。temperature控制创造性拆书建议 0.30.5要的是稳定提取结构起书名和简介可以 0.81.0要的是发散。max_tokens决定单次输出长度润色长章节时如果发现输出被截断就把它调到 4096 或更高。top_p一般保持 0.9 不动除非你明确知道自己在调什么。提示改完 settings.json 后先跑一次python main.py --test如果打包版本带这个参数确认模型能通再进入正式创作否则后面报错你分不清是提示词问题还是接口问题。3. 智能拆书实战把一本爆款拆成可复用的结构模板3.1 拆书模板里到底在拆什么拆书不是让 AI 写读后感而是提取可迁移的结构。dismantle.txt模板通常要求模型输出几个固定维度章节节奏每章推进了什么、冲突类型人际/环境/内心、钩子位置章末悬念在第几段、人物出场密度。这些维度是网文写作里真正能复用的东西。模板里一般有类似这样的指令请对以下章节文本进行结构拆解输出 JSON 格式 { chapter_index: 章节序号, main_event: 本章核心事件一句话, conflict_type: 冲突类型, hook_position: 钩子出现在全文百分比位置, hook_text: 钩子原文摘录, pacing: 节奏评价快/中/慢 } 文本{chapter_text}{chapter_text}是变量由novel_parser.py按章节切好后注入。chapter_index让你后续能按顺序拼出整本书的节奏曲线。hook_position用百分比而不是绝对段号是为了跨章节对比——爆款书的钩子往往集中在 85%95% 位置如果你拆出来发现自己的书钩子在 60% 就泄了那就是节奏问题。3.2 跑一次完整拆书的命令与参数假设你把要拆的小说存成了data/samples/novel.txt按章用空行或「第X章」分隔。运行python main.py --mode dismantle --input data/samples/novel.txt --output data/output/dismantle_result.json --batch-size 3--mode dismantle指定走拆书流程。--input是源文本路径。--output是结果落盘位置建议单独建 output 目录。--batch-size 3表示每次送 3 章给模型太大容易超 token 限制太小则调用次数多、慢。拆书结果是一个 JSON 数组每章一个对象。拿到结果后你可以用 pandas 快速看节奏分布import json import pandas as pd with open(data/output/dismantle_result.json, r, encodingutf-8) as f: data json.load(f) df pd.DataFrame(data) # 看钩子位置分布 print(df[hook_position].describe()) # 看冲突类型占比 print(df[conflict_type].value_counts())describe()给你钩子位置的均值、四分位数均值在 0.85 以上说明这本书钩子压得靠后、留人能力强。value_counts()看冲突类型是否单一——如果一本 100 万字的书 90% 都是人际冲突那它的冲突设计其实很集中这是可以学的策略。3.3 拆书结果怎么反哺自己的写作拆完不是看完就完了。把dismantle_result.json里的main_event列单独抽出来按顺序读一遍你得到的是这本书的「事件骨架」。然后拿你自己的大纲对照你的事件密度是每章一个还是每三章一个爆款书通常每章至少一个明确事件哪怕是小事件。另一个用法是把hook_text全部导出做成一个钩子素材库写到自己章末卡住时翻一翻找同类情境的钩子写法。注意拆书结果只做参考不要直接套用具体情节套了就是洗稿这里说的是结构层面的借鉴。4. 书名、简介与正文润色提示词模板怎么改才不翻车4.1 书名生成从关键词到候选列表title.txt模板一般要求输入题材、核心设定、目标读者输出 10 个候选书名。模板里常见的变量是{genre}、{core_setting}、{target_reader}。调用方式python main.py --mode title --genre 都市异能 --setting 主角能听见物品的记忆 --reader 男频18-30岁 --count 10--count 10控制候选数量。生成结果会直接打印在终端同时存一份到data/output/titles.txt。这里有个参数值得注意模板里通常有一个style_hint变量默认可能是「简洁有力」你可以改成「悬念感强」或「口语化」出来的书名风格差别很大。我一般会跑三轮第一轮默认第二轮改成「悬念感强」第三轮改成「两个字以内」然后从 30 个里挑。别指望一次出爆款名书名是筛出来的不是生成出来的。4.2 简介生成控制信息密度和钩子位置简介模板intro.txt的关键变量是{title}、{protagonist}、{core_conflict}、{word_limit}。word_limit一般设 150200 字这是多数平台简介的舒适区。模板里会要求模型把最强钩子放在前 30 字内因为读者在列表页只扫一眼。跑法python main.py --mode intro --title 听见记忆的人 --protagonist 能读取物品记忆的旧货店老板 --conflict 被卷入一桩二十年前的悬案 --limit 180生成后别直接复制。检查两点前 30 字有没有具体画面「旧货店老板摸到一枚戒指听见了哭声」比「主角拥有特殊能力」强十倍结尾有没有留一个未解问题。如果模板默认输出偏平就在intro.txt里加一句指令「前 30 字必须包含一个具体动作或感官细节结尾必须是一个未回答的问题。」4.3 正文润色温度、分段与「不要改剧情」润色模板polish.txt最容易翻车。很多人把整章丢进去让 AI「润色」结果 AI 把剧情也改了。正确做法是在模板里明确约束请对以下文本进行润色要求 1. 不改变任何情节、人物动作和对话内容 2. 只优化用词重复、句式单调、过渡生硬 3. 保持原有段落划分 4. 输出仅包含润色后正文不要解释 文本{chapter_text}调用时temperature要调低0.3 左右太高会「自由发挥」。命令python main.py --mode polish --input data/samples/chapter_01.txt --output data/output/chapter_01_polished.txt --temperature 0.3润色后一定要 diff 对比原文看有没有被悄悄改掉的情节。常见翻车是 AI 把「他推开门」改成「他缓缓推开门」——加了一个副词节奏就慢了。如果发现这类改动频繁在模板里再加一条「不添加原文没有的副词和形容词。」5. 避坑与排查拆书、起名、润色里最容易翻车的五件事5.1 拆书输出不是 JSON而是一段散文现象跑完拆书dismantle_result.json打开是自然语言段落程序解析报错。原因模型没有严格按 JSON 格式输出尤其在temperature偏高或模板指令不够强硬时。解决在dismantle.txt开头加「你必须只输出 JSON不要任何解释文字」并把temperature降到 0.3如果还不行在llm_client.py里加一层正则提取把第一个{到最后一个}之间的内容截出来再解析。5.2 书名生成全是「XX之XX」的模板感现象10 个候选里 8 个是「XX之XX」「XX纪元」「XX觉醒」。原因模板里缺少风格约束模型退回到训练数据里最高频的网文命名模式。解决在title.txt里加负面指令「禁止使用『之』『纪元』『觉醒』『重生』等词」并加一个style_hint变量每次跑换一种风格提示。另外把temperature提到 0.91.0给模型更多发散空间。5.3 润色后字数暴涨或暴跌现象原文 2000 字润色后变成 2800 字或 1500 字。原因max_tokens设得太小导致截断或者模型在「润色」时自行扩写/缩写。解决先确认max_tokens大于原文 token 数的 1.5 倍然后在模板里加「输出字数与原文误差不超过 10%」。如果还是暴涨检查是不是把temperature设太高了。5.4 拆书时章节切分错乱现象novel_parser.py把两章合并成一章或者把一章切成三段。原因源文本的章节分隔符不统一有的用「第X章」有的用空行有的用「Chapter X」。解决先手动统一源文本的分隔符全部改成「第X章 」开头章与章之间空一行。如果书很长写个简单脚本批量替换import re with open(data/samples/novel_raw.txt, r, encodingutf-8) as f: text f.read() # 把各种章节标记统一成「第X章 」 text re.sub(rChapter\s*(\d), r第\1章 , text) text re.sub(r第(\d)节, r第\1章 , text) with open(data/samples/novel.txt, w, encodingutf-8) as f: f.write(text)5.5 模型接口超时或返回空现象跑批量拆书时中间某几章返回空或者直接超时。原因单次请求 token 太多、网络抖动、或接口限流。解决把--batch-size从 3 降到 1在llm_client.py里加超时重试常见做法是重试 3 次每次间隔 2 秒。如果接口本身有限流在批量任务里加time.sleep(1)控制请求频率。6. 进阶把提示词模板版本化做自己的创作流水线拆书、起名、简介、润色跑通之后真正拉开差距的是提示词模板的迭代管理。我一般会在config/prompts/下再建一层版本目录比如prompts/v1/、prompts/v2/每次改模板前先复制一份旧版。这样当你发现某次改动后书名质量下降可以立刻回滚。prompt_manager.py里通常有一个prompt_version配置项指向当前使用的版本目录改一行就能切换。更进一步把四个环节串成一条流水线拆书结果里的main_event和hook_text可以作为起名和简介的输入变量。比如你拆完一本爆款提取出它的核心冲突类型然后把这个类型作为{core_conflict}传给简介模板生成的简介会天然带有那本书的结构基因。这不是抄袭是把结构分析的结果喂给生成环节让 AI 的输出有参照系。验证模板改动是否有效别凭感觉。每次改完模板用同一组输入跑 5 次把输出存下来对比。书名看候选里「能用的」比例简介看前 30 字有没有画面润色看 diff 里情节改动条数。我自己的习惯是任何模板改动至少跑 5 组输入、每组 3 次确认稳定后才替换线上版本。从那以后我每次改polish.txt都强制走一遍 diff 检查再也没出现过润色把剧情改跑的事。希望帮到你。本文还有配套的精品资源点击获取