导入与导出怎么理解
导入不是重点,导入后字段怎么补、怎么保留才是重点——为什么旧包能导、为什么旧包会跟默认、为什么新包能保留原样。
本章重点
本章重点:导入不是重点,导入后字段怎么补、怎么保留才是重点。
信息
这一章讲的是:为什么旧包也能导、为什么导入后有时会跟随默认、为什么新版包会保留自己的位置和深度、导入增强到底帮你解决了什么问题。
先一句话理解导入和导出
- 导入:把外部 Worldbook 包读进当前项目。
- 导出:把当前项目里的 Worldbook 另存出去。
看起来很简单,但真正难点不在「能不能导」,而在:导入后,字段怎么兼容,旧包怎么补齐,新包怎么保留。
为什么旧版 worldbook 也能导入
因为旧版 worldbook 虽然没有你现在这些新字段(提示层级、注入位置、聊天深度、注入顺序、递归相关字段),但它依然有最基础的 worldbook 结构:标题、主关键词、内容、是否启用,以及一些基础匹配设置。
所以系统可以先把旧结构读进来,再决定缺失的新字段怎么补。
为什么导入旧包后,有时会「跟随默认」
这是新手非常容易误以为是 bug 的地方。其实很多时候不是 bug,而是这条规则:如果旧包本来就没有新字段,系统就需要给它补默认值。
例子
比如一条旧词条没有写提示层级、注入位置,那导入后,它就可能会跟着你当前设置页里的默认提示层级和默认注入位置走。
这不等于出错,它只是说明:这条旧词条本来没有这个字段,系统必须想办法补一个值进去。
新版 worldbook 为什么能保留原样
因为新版包本来就已经写了这些字段(提示层级、注入位置、聊天深度、注入顺序、其他新结构字段),那导入时就不需要猜,系统直接读它原来的值就行。
提示
这个地方可以这样记:
- 旧包:缺什么,系统补什么;
- 新包:有什么,就保留什么。
导入增强到底解决了什么问题
导入增强不是为了「不兼容旧包」,而是为了:继续兼容旧包的同时,让「怎么补缺失字段」这件事更可控。
以前常见情况是:旧包导入后全部跟随默认,结果都跑到一个提示层级或一个注入位置去了,你还得再手工调。导入增强以后,你可以更明确地决定:
- 缺失提示层级时,跟随默认;
- 统一补成「跟随注入位置」;
- 统一补到稳定区 / 当前状态区 / 动态区 / 输出协议区;
- 如果继续走旧逻辑,再统一补到角色定义前 / 后 / 聊天内注入。
这样旧包就不会只能「被动跟默认」。
一个最常见的三种导入场景
| 场景 | 适合 |
|---|---|
| 场景 1:导入旧包,跟随默认 | 你当前默认设置已经很合理,你希望快速导进来先用。 |
| 场景 2:导入旧包,统一补到某一层 | 这批词条大多是长期背景 → 补到稳定区;大多是当前状态 → 补到当前状态区;还想保持旧逻辑 → 补成「跟随注入位置」。 |
| 场景 3:导入新包,保留原有位置 | 这个包已经是你整理过的新格式,不想让系统再替你改。 |
什么叫「是否同时导入 settings」
这个选项也很重要。
- 勾选:表示包里的 settings 也一起导进来,比如
max_hits、默认提示层级、默认注入位置、默认深度、默认顺序、递归开关等,都可能跟着包一起进来。 - 不勾选:表示只导 entries,当前项目自己的 worldbook settings 不变。
提示
新手什么时候建议不导 settings?如果你只是想拿别人的词条内容来参考,但不想让对方的设置覆盖掉你现在的本地设置,那就建议不导 settings。
还是拿旧包举个完整例子
假设你拿到一个旧版听雨咖啡 worldbook 包。它里面有:听雨咖啡、雪音、伦敦念想,但没有提示层级、注入位置、深度、注入顺序。
这时候会发生什么?如果你导入时选「缺失提示层级时:跟随注入位置」「缺失注入位置时:统一补到角色定义后」,那么这些词条就会继续按旧逻辑走,并统一先落到角色定义后。这样至少不会全靠系统默认瞎猜。
导出有什么用
很多新手会低估导出。其实导出有两个非常重要的作用:
- 备份:你整理好的 worldbook,可以先导出存档。
- 验证:你可以导出后直接打开 JSON,看看字段在不在、提示层级有没有丢、注入位置有没有丢、深度有没有丢、注入顺序有没有丢。
所以导出不仅是备份,也是排错工具。
一个很实用的习惯
提示
每次你做完一轮比较大的 worldbook 整理后:
- 保存;
- 导出;
- 留一个备份。
这个习惯非常值。
这一章最后记住这句
重点
导入不是重点,导入后字段怎么补、怎么保留,才是重点。
下一步
下一章讲批量编辑怎么用——条目一多,就必须学会筛选、勾选、批量整理。