插入#

与预设的关系#

世界书条目除了设置怎么激活, 还需要设置插入位置. 我仅建议你使用角色定义之前角色定义之后D⚙️D👤D🤖, 另外几个选项通常不会给你带来额外好处:

../../../../_images/%E5%8F%AF%E8%83%BD%E7%9A%84%E6%8F%92%E5%85%A5%E4%BD%8D%E7%BD%AE.png

可能的插入位置#

酒馆在确认需要激活的世界书条目后, 即会根据插入位置将它们插入到预设中: (预设可能给这些条目改了名字)

../../../../_images/%E9%A2%84%E8%AE%BE%E5%AF%B9%E5%BA%94%E4%BD%8D%E7%BD%AE.png

预设对应设置#

如上图所示,

  • 角色定义之前角色定义之后 分别与 World Info (before)World Info (after) 对应.

  • 深度条目 (D⚙️D👤D🤖) 按照你在条目中填写的深度插入到聊天记录对应深度中:

    D3
    倒数第三条消息
    D2
    倒数第二条消息(一般我们发送用户输入来请求生成,则这里一般是最后一次 AI 回复)
    D1
    最后一条消息(一般我们发送用户输入来请求生成,则这里就是最后一次用户输入)
    D0
    

模型更愿意注意更顶部和更底部的提示词. 也就是说, 条目在不同插入位置的效果很大程度上取决于预设如何排列这些位置: 预设完全可以把 "角色定义之前" 放到 "角色定义之后" 的下面, 甚至放到预设最底部!

当然这就不是我们写世界书的需要考虑的了, 一般我们可以认为预设对提示词自上而下的排列顺序是: (仅给你一个概念)

随机内容防止预设被标记
模型伪身份定义
少量自定义设定
World Info (before) - 角色定义之前
???
World Info (after) - 角色定义之后
???
Chat History - 聊天记录
思维链、字数等大多数自定义设定
底部破限

显然, 随着玩家游玩的楼层越来越高, 聊天记录部分的提示词 token 数会远多于其他部分, 因此你可以粗略地将预设从聊天记录划分为上下两部分, 则:

角色定义之前角色定义之后

角色定义之前更靠近顶部, 因此效力比角色定义之后更强.

深度条目 (D⚙️D👤D🤖)

倒数第二条消息、D1、最后一条消息、D0 更靠近底部, 因此效力比之前的某楼层更强; 而 (我的推测) AI 的任务就是创作剧情, 因此放在剧情中的深度条目效力比 角色定义之前角色定义之后 更强.

这并不意味着你应该滥用 D0/D1 条目. 如果你在深度插入过多内容, 则会变成:

最后一条 AI 输出 (3000 token 左右)
D1 (6000 token!!!😱)
最后一条用户输入 (50 token 左右)
D0 (3000 token!!!😱)

……AI 的注意力全被你的要求占据, 连剧情都不能连贯理解了; 此外, 想象一下, 剧情中角色性格已经发生变化, 可你将最初的角色设定放在了 D0……

这也是为什么我非常抵制很多卡不经考虑就将世界规则、特殊输出格式、变量更新规则 (甚至可能是直接搬用别人的规则, 没有任何改动) 放在 D0/D1 条目中.
请考虑学习利用 AI 的 recall 机制 (见下面提示中的部分写法) 和手写 mvu 变量卡教程

提示

基于模型更愿意注意更顶部和更底部提示词的原理, 你可以发现:

  • 一些预设会在底部设置了 "输出格式强调" 条目, 让你如果掉格式了去把掉的格式填写进去.

  • Nova Lite 预设会用正则去除用户输入, 而新建一个底部条目Nova⭐重申输入📌, 其中填写酒馆宏 {{lastUserMessage}}. 这个酒馆宏在发送时即被替换成最后一条用户输入, 从而将用户输入置于底部.

  • 戏剧之王预设在卡掉思维链的条目🔒卡原生思维链part3中会重申要求 AI 输出 <thinking>.

  • 可点击的选择框在 D4 时编写了 400~700 token 左右的选择框格式和要求提示词, 但在 D0 时用 60 token 强调输出.

条目插入到同一预设位置的顺序#

假设我们有两个条目都要插入到 D0, 那它们谁在上面谁在下面? 此处将教你 (没必要地) 如何确定条目插入顺序.

消息身份#

对于深度条目 (D⚙️D👤D🤖) 而言, 如果它们插入到同一深度, 则从上到下总是:

D🤖: 所有 AI 条目
D👤: 所有用户条目
D⚙️: 所有系统条目

角色定义之前角色定义之后条目的身份是由预设中的 World Info (before)World Info (after) 决定的, 因此不存在消息身份上的顺序区分.

顺序#

在经过消息身份区分后, 如果两个同插入位置条目还没有决定出顺序, 则会根据顺序来区分, 顺序越大插入越靠下.

不同世界书的条目可能按顺序值混合在一起. 也就是说, 如果你有几个需要连起来的条目, 你最好挑一个随机数 (999 太常用了!) 作为顺序值来排布.

../../../../_images/%E9%A1%BA%E5%BA%8F.png

创建时间#

如果两个条目经过以上所有步骤后仍然无法决定出顺序, 则会根据条目创建时间来区分, 创建时间越早插入越靠下.

不要依赖这个顺序, 如果有需求请自己调整条目的顺序值; 写这个单纯是有人经常问.

警告

注意是条目创建顺序而非 uid 顺序, 两者并不等同.

如果你有打开世界书文件观察过, 那么我可以更准确地说: 将会根据世界书文件中条目列出的顺序来决定插入顺序, 越早列出的插入越靠下.