第 11 章

导入与导出怎么理解

导入不是重点,导入后字段怎么补、怎么保留才是重点——为什么旧包能导、为什么旧包会跟默认、为什么新包能保留原样。

本章重点

本章重点:导入不是重点,导入后字段怎么补、怎么保留才是重点。

信息

这一章讲的是:为什么旧包也能导、为什么导入后有时会跟随默认、为什么新版包会保留自己的位置和深度、导入增强到底帮你解决了什么问题。

先一句话理解导入和导出

  • 导入:把外部 Worldbook 包读进当前项目。
  • 导出:把当前项目里的 Worldbook 另存出去。

看起来很简单,但真正难点不在「能不能导」,而在:导入后,字段怎么兼容,旧包怎么补齐,新包怎么保留

为什么旧版 worldbook 也能导入

因为旧版 worldbook 虽然没有你现在这些新字段(提示层级、注入位置、聊天深度、注入顺序、递归相关字段),但它依然有最基础的 worldbook 结构:标题、主关键词、内容、是否启用,以及一些基础匹配设置。

所以系统可以先把旧结构读进来,再决定缺失的新字段怎么补。

为什么导入旧包后,有时会「跟随默认」

这是新手非常容易误以为是 bug 的地方。其实很多时候不是 bug,而是这条规则:如果旧包本来就没有新字段,系统就需要给它补默认值。

例子

比如一条旧词条没有写提示层级、注入位置,那导入后,它就可能会跟着你当前设置页里的默认提示层级和默认注入位置走。

这不等于出错,它只是说明:这条旧词条本来没有这个字段,系统必须想办法补一个值进去。

新版 worldbook 为什么能保留原样

因为新版包本来就已经写了这些字段(提示层级、注入位置、聊天深度、注入顺序、其他新结构字段),那导入时就不需要猜,系统直接读它原来的值就行。

提示

这个地方可以这样记:

  • 旧包:缺什么,系统补什么;
  • 新包:有什么,就保留什么。

导入增强到底解决了什么问题

导入增强不是为了「不兼容旧包」,而是为了:继续兼容旧包的同时,让「怎么补缺失字段」这件事更可控。

以前常见情况是:旧包导入后全部跟随默认,结果都跑到一个提示层级或一个注入位置去了,你还得再手工调。导入增强以后,你可以更明确地决定:

  • 缺失提示层级时,跟随默认;
  • 统一补成「跟随注入位置」;
  • 统一补到稳定区 / 当前状态区 / 动态区 / 输出协议区;
  • 如果继续走旧逻辑,再统一补到角色定义前 / 后 / 聊天内注入。

这样旧包就不会只能「被动跟默认」。

一个最常见的三种导入场景

场景适合
场景 1:导入旧包,跟随默认你当前默认设置已经很合理,你希望快速导进来先用。
场景 2:导入旧包,统一补到某一层这批词条大多是长期背景 → 补到稳定区;大多是当前状态 → 补到当前状态区;还想保持旧逻辑 → 补成「跟随注入位置」。
场景 3:导入新包,保留原有位置这个包已经是你整理过的新格式,不想让系统再替你改。

什么叫「是否同时导入 settings」

这个选项也很重要。

  • 勾选:表示包里的 settings 也一起导进来,比如 max_hits、默认提示层级、默认注入位置、默认深度、默认顺序、递归开关等,都可能跟着包一起进来。
  • 不勾选:表示只导 entries,当前项目自己的 worldbook settings 不变。

提示

新手什么时候建议不导 settings?如果你只是想拿别人的词条内容来参考,但不想让对方的设置覆盖掉你现在的本地设置,那就建议不导 settings。

还是拿旧包举个完整例子

假设你拿到一个旧版听雨咖啡 worldbook 包。它里面有:听雨咖啡、雪音、伦敦念想,但没有提示层级、注入位置、深度、注入顺序。

这时候会发生什么?如果你导入时选「缺失提示层级时:跟随注入位置」「缺失注入位置时:统一补到角色定义后」,那么这些词条就会继续按旧逻辑走,并统一先落到角色定义后。这样至少不会全靠系统默认瞎猜。

导出有什么用

很多新手会低估导出。其实导出有两个非常重要的作用:

  1. 备份:你整理好的 worldbook,可以先导出存档。
  2. 验证:你可以导出后直接打开 JSON,看看字段在不在、提示层级有没有丢、注入位置有没有丢、深度有没有丢、注入顺序有没有丢。

所以导出不仅是备份,也是排错工具

一个很实用的习惯

提示

每次你做完一轮比较大的 worldbook 整理后:

  1. 保存;
  2. 导出;
  3. 留一个备份。

这个习惯非常值。

这一章最后记住这句

重点

导入不是重点,导入后字段怎么补、怎么保留,才是重点。

下一步

下一章讲批量编辑怎么用——条目一多,就必须学会筛选、勾选、批量整理。