📘世界书
type
Post
status
Published
date
Jul 2, 2021
slug
example-4
summary
如果您的Notion数据库已经修改了内容,发现网站内容还是旧的,说明绑定NotionPageID失败了,请重新检查Vercel后台是否正确配置好ID,并尝试重新部署。
tags
健康
推荐
category
酒馆使用
icon
password
功能简介
世界书 (Lorebooks) 旨在为你的角色卡提供更为完整的背景信息。
它的功能类似于【词典】或【百科】:
比如你正在玩一张海绵宝宝的角色卡,你发送一段话:“海绵宝宝出发去蟹堡王工作。”这时claude可能无法理解“蟹堡王”是什么。而如果你有以下世界书: 这时,你发送的话中的“蟹堡王”三个字会触发世界书,claude就能够理解蟹堡王是一家快餐店。
世界书的最基本使用方式是【触发】,即以关键词 (Keywords) 触发内容 (Content)。
基础操作
你可以下载别人的世界书(类脑Discord频道),也可以创建自己的世界书。仅通过本节内容,你就能学会世界书最基本的操作方法。
如果你已经会导入、绑定、创建等基础操作,请跳转至进阶使用继续阅读。
导入导出
本条目是指手动导入世界书,导入角色卡自带世界书的情况参见下文的自带绑定的角色世界书。
- 在导入之前,先确认你下载的世界书的格式。世界书和破限一样,后缀是.json。
- 打开酒馆,点击页面并导入json文件。
- 导入成功后,下滑页面,就可以看到作者所创建的世界书了。点击左侧的小箭头,可以打开查看每一条目的详细信息。一般来说,新手下载世界书后无需进行修改。
重命名和删除
如果你下载的世界书是中文命名的,那么导入酒馆后会转换成一串字符。数字和英文则不会发生变化。因此有时我们需要重命名世界书。如果不需要该世界书,则可以删除。
设置世界书
我们手动下载的世界书分为两类,【全局世界书】和【角色世界书】。
全局世界书:对你的所有角色卡都起效,例如武器大全、服装大全等。角色世界书:只对它绑定的角色卡起效,例如海绵宝宝的故事背景。
- 设置全局世界书
- 设置角色世界书
角色世界书需要绑定角色卡,步骤不同于全局世界书。我们首先切换到角色卡界面:
点击OK,我们会看到角色卡界面的小地球变绿了,这说明世界书和角色卡绑定成功了🎉。再次点击绿色小地球,酒馆会跳转到世界书页面。
- 自带绑定的角色世界书
有一些角色卡是自带绑定的,我们导入卡后,点击角色卡,就会收到一条提示,点击Yes即可。然后该卡会自动创建相应的世界书并自动绑定。
- 世界书跟随角色卡导出
如果你希望把带世界书的角色卡分享给其他人玩,那么先确保你的角色卡界面的小地球是绿色状态,然后直接导出角色卡即可。
- 解除绑定世界书
要解除角色世界书的绑定,我们需要点击小地球下方的“更多…”选项框。
创建世界书
更多时候,我们无法找到满意的世界书,这时就需要自己创建世界书或创建条目了。
- 来到世界书页面,点击“🌏New”图标,创建新世界书,并为你的世界书命名。
- 创建成功后,点击工具栏中的➕,创建新条目。其他图标的作用会稍后介绍。
- 点击左侧小箭头打开条目明细。
- 填写关键词和内容。注意,如果你希望多个关键词都指向一个内容,那么你需要用英文半角“,”将这些关键词隔开。(不明白什么是半角的去百度)
- 其他图标。这些图标不是特别常用。
至此,世界书的基础操作已经介绍完毕了!!!
然而——虽然世界书有助于剧情的补充和引导,但不一定保证你所设定的内容一定生成在角色的回复中。为了加强世界书的作用,以下是一些进阶的玩法。
进阶使用
上下文的概念
在进阶教程之前,上下文 (Context) 是你必须知道的重要概念。你可以把上下文理解为“记忆”。我们通常说 Claude 的记忆是100k 25k,就是指 Claude 的上下文容量为25k tokens。过多的 tokens 会被清出上下文,也就是我们常说的“记不住了”。
为了解释上下文,首先要说明 prompt 的概念。
- 提示 (Prompt)
我相信有的朋友并不知道 prompt 的概念。虽然 prompt 应该翻译为提示,不过我们一般仍称其为 prompt。prompt 的作用是让 AI 按照用户输入的提示去输出内容。简而言之,基本上用户输入 AI 的任何信息都属于 prompt。
那么“用户输入 AI 的任何信息”包括什么呢?如果你使用 Claude 模型,那么在“预设”界面,你就可以看到它列出了默认的 prompts:
蓝色部分 prompt:
这一部分 prompt 是与角色扮演直接相关的。你可以在聊天过程中直观地感受,甚至修改这类 prompt。
红色部分 prompt:
这一部分 prompt 是与角色扮演间接相关的。虽然你多数时候无法在聊天过程中感受到这些 prompt,但是它们绝对地影响着聊天,如文笔、输出长度、是否允许色色、是否道歉等。
我不会在此过多地介绍这些 prompt。这里你需要记住的是:这些 prompt 是有上下顺序的。它们之间的顺序排布并不是随意的。
- Prompt 在上下文中的顺序
通常,预设(或称破限)作者都会有一套经其测试的、证明好用的 prompt 顺序,并不一定总是上图的顺序。如果你并没有研究预设的打算,那么你只需要熟悉蓝色 prompt 的顺序即可,它们遵循以下规律:
顺序越靠下的 prompt,对你当前对话发挥的影响就越强!
由于本篇并不介绍破限,因此下文只介绍蓝色部分的 prompt。
让我用草图来告诉你它们是如何运作的。你可以先把上下文想象成一个容器:
好,那么显而易见,随着你的聊天记录越来越多,就会有越来越多的内容被推出上下文。但是!SillyTavern 可以让一些重要内容不被推出去,于是就有了永久 prompt 和临时 prompt 之分:
永久 prompt:无论对话多长,也不会被推出上下文。
临时 prompt:对话长到一定程度后,就会被推出上下文。
(以下是不同 prompt 的属性表)
世界书(设置为常数:稍后会解释该功能) | ㅤ | 永久 |
用户描述 | ㅤ | 永久 |
角色描述 | ㅤ | 永久 |
性格总结 | ㅤ | 永久 |
场景 | ㅤ | 永久 |
对话示例(除非被设置为永久) | ㅤ | 临时 |
聊天记录 | 第一条消息 | 临时 |
ㅤ | 用户和角色的对话 | 临时 |
ㅤ | 作者注释 | 永久 |
通常我们不会写用户描述、性格总结和场景,或者不会在其中写太多内容。对话示例和绝大多数聊天记录,按照其属性,在长时间聊天后会被推出上下文。
作者注释:
这是一项把指定 prompt 插入聊天记录中指定位置的功能。插入深度为几,就把作者注释插入你和角色聊天的第几条消息之上(包含你刚发的消息、角色回复的消息、你发的消息)。
所以,聊天越来越长以后,不考虑用户描述、性格总结和场景的话,通常真正的上下文图大概长这样:
好,现在相信你已经对 prompt 的顺序有了初步的概念。鉴于本篇只是世界书教程,我仅在此点明:
Claude cookie 的上下文为 25k tokens,因此当聊天记录越来越长以后,你会发现无论是世界书,还是角色描述,都被挤在上下文的顶端,对你当前对话发挥的作用微乎其微。那么如果你希望某世界书条目发挥强效时,该怎么办呢?请继续阅读下文。
条目参数
点击条目左侧小箭头,可以看到很多参数和选项。为了便于区别,我个人把这些区域的设置称为“条目参数”。
这里有几个我们上文未介绍的功能:插入位置 (Position)、插入深度 (Depth)、插入顺序 (Order)、概率 (Trigger %)、🟢状态 (Status)、逻辑 (Logic)、筛选角色 (Filter to Characters),以及排除角色 (Character Exclusion)。前五个功能较为常用。
- 插入位置 (Position)
点击选项框,你会发现有五个选项(见下表)。如果你理解了上下文的概念,这些选项便非常容易理解。
名称 | 说明 | 发挥作用 | 备注 |
角色定义之前 | 将条目内容插入角色描述上方。 | 最弱 | 无 |
角色定义之后 | 将条目内容插入角色描述下方。 | 稍强于“角色定义之前”,但仍然很弱。 | 无 |
作者注释之前 | 将条目内容插入作者注释上方。 | 较强 | 跟随作者注释变动 |
作者注释之后 | 将条目内容插入作者注释下方。 | 极强。如果同时修改作者注释的插入深度,可以使世界书发挥最强作用。 | 跟随作者注释变动 |
@D | 按插入深度插入。 | 可变 | 无 |
在@D中
- ⚙️ 作为系统角色消息
- 👤 作为用户角色消息
- 🤖 作为助理角色消息
注意:
上图描绘的仅是聊天记录很长时的情况。而在任何新对话开始时(聊天记录很短时),角色描述、角色描述前后的世界书、第一条消息,这三者对你的当前对话有着重要的影响,这种影响会像滚雪球一样在你的整个聊天过程中持续发挥作用。所以不要一股脑儿把所有世界书都放到作者注释前后。
- 插入深度 (Depth)
在“插入位置”处选择“@D”后,“插入深度”下方就会出现一个文本框。你可以填入自定义数值。数值的意思同作者注释一样,指插入第 X 条消息的上方。
- 插入顺序 (Order)
在插入位置相同的情况下,多个条目的内容同时被触发时,插入顺序数值越大的条目,会被插入越靠下的位置,对当前对话的影响效力越强。如果你不进行排序,那么这些条目会按照创建时间排序,这非常不便于管理。
举例来说,上图中的四个条目若同时被触发,在上下文中的顺序就是这样的:
注意若插入位置不同,则优先遵循插入位置:
上图中的七个条目若同时被触发,在上下文中的顺序就是这样的:
我该如何决定条目之间的顺序?
首先记住插入越靠下的位置,对当前对话的影响效力越强。作为一个创作者,你一定希望 AI 能牢记你给的所有信息,然而这是不现实的。以下是一些建议:
- 把你的世界书条目按重要性排序,越重要、越希望 AI 牢记的内容放在越靠下的位置。
- 一些对角色行动影响较小的世界背景,可以放在角色描述之前。
- 状态栏和状态栏规则放在靠下的位置。如果你的角色在聊天过程中会忘记状态栏,可以尝试把世界书的状态栏条目往下移。
- 概率 (Trigger %)
触发世界书的概率。比如设为50,那么每次输入关键词时,只有50%的概率使内容得到触发。(——理论上确实是这样,然而实际上,经常有一种“大概率触发小概率事件”的体验。所以该功能似乎并不完善。)
- 状态 (Status)
点击🟢选项框,会发现有三个选项,以下是对它们功能的说明。
🟢 | 普通 | 正常地以关键词触发内容。 |
🔵 | 常数 | 不需要输入关键词,每次对话都会触发该条目内容,插入上下文。 |
❌ | 禁用 | 该条目无法被触发。 |
小贴士:
还记得我在上面说过,世界书设置为常数以后,就变成永久 prompt 了吗?此时,若搭配插入深度使用,就可以使世界书发挥和作者注释相同的作用了!
- 其他条目参数
- 逻辑 (Logic)
- 选择 AND:只有对话中同时含有
星球(或故乡)和小T(或兔子)时,内容才会被触发。 - 选择 NOT:只有对话中含有
星球(或故乡),且不含小T(或兔子)时,内容才会被触发。 - 大多数时候,右框不填写内容。
学过逻辑学或电路的同学对此一定不陌生:AND即与门,逗号即或门,NOT即非门。
在这个示例中:
- 筛选角色 (Filter to Characters)
该功能极少使用。它主要适用于“全局世界书”+“群组聊天”的情况。
假设在群组聊天中,有一个信息是只有小 T 知道的,别人都不知道,那么就把小 T 加入到该条目的筛选角色中。群组中的其他人无法触发此条目。
- 排除角色 (Character Exclusion)
同上,该功能亦极少使用。点击右边方框可以切换到“排除角色”模式。
假设在群组聊天中,有一个信息是只有小 T 不知道的,别人都知道,那么就把小 T 加入到该条目的排除角色中。群组中的只有小 T 无法触发此条目。
总体参数
点击 Activation Setting,可以看到很多参数和选项。为了便于区别,我个人把这个区域的设置称为“总体参数”。
- 角色背景插入策略
一些情况下,我们在聊天时需要同时使用全局世界书与角色世界书。如果你希望两者对你当前对话的影响程度不同,那么你可能就需要选择采取下面的其中一种策略:
- 均匀排序
经我测试,这一功能非常乱,请尽量不要使用。在测试中,我发现越早创建的条目会被放在靠下的位置,而同时全局世界书会被整体放在角色世界书之下。
- 角色背景优先
角色世界书条目会放在全局世界书下面,它们内部再按照创建时间顺序排列。
- 全局背景优先
角色世界书条目会放在全局世界书下面,它们内部再按照创建时间顺序排列。
然而,插入顺序和插入位置的优先级是绝对大于该插入策略的,即,不管你在总体参数中怎么改“角色背景插入策略”,真正输出 prompt 仍旧看插入顺序和插入位置。【插入顺序100的角色世界书条目】无论如何都在【插入顺序99的全局世界书】之下。所以我完全不推荐使用“角色背景插入策略”功能。
- 扫描深度 (Scan Depth)
事实上,并不只有你发出的消息能触发世界书,聊天记录一样可以。聊天记录包括你发出的消息,以及角色回复的消息。
将扫描深度设为1,那么“你新发出的一条消息”+“角色最近回复的一条消息”中,如果含有关键词,就能够触发世界书。
将“角色最近的回复”和“你新发出的消息”视为“一对”消息,扫描深度1则能扫描一对,扫描深度2则能扫描两对……以此类推,最大可以扫描十对消息——即20条聊天记录。
扫描深度通常设置为1或2。如果你玩/写的是冒险类的卡,可能会需要更高的扫描深度。(虽然滑块还能继续拉高,但酒馆作者自述最多十对,有待验证。)
- 递归扫描 (Recursive scanning)
这应该是总体参数中最有用的一个功能。它的原理很简单:
简而言之,递归扫描可以让你的世界书激活世界书。
可以直接用 SillyTavern 官方提供的例子:
在开启递归扫描的情况下,世界书条目 #1内容中的“鲁弗斯”一词就会触发世界书条目 #2中的内容。关闭递归扫描则不会触发。
- 字数限制
以下三个参数是关于用两种方式来限制世界书能使用的最大 tokens 的,不太常用。但萌新有时候会不知道如何解决相关报错,因此我在这里还是简单说明一下:
- 上下文百分比 (Content %):限制世界书条目 tokens 占上下文上限的百分比。
- 预算上限 (Budget Cap):限制世界书条目于某个具体 tokens 数值内。设置为0则不生效。
- 溢出警报 (Alert on overflow):开关。超出 tokens 限制,就会发出报错。
如果你出现了某个报错,说“超出预算”,那就把上下文百分比调高一些。
达到预算后会发生的事:
所有条目按照一定的优先级次序被触发,优先级低的会被挤出预算。预算之外的条目,即使发出了关键词,也不会触发条目内容。已知的一些规则:
- 🔵常数条目优先于🟢普通条目。
- “插入顺序”数值高的条目优先于数值低的条目。
- 直接提及关键词的条目优先于递归扫描的条目。
- 其他总体参数
- 区分大小写 (Case-sensitive keys):开启后,对话中的单词和世界书中的关键词大小写必须一致,才能触发。比如 Rose(人名)和 rose(玫瑰)。主要针对英文。
- 匹配整个单词 (Match whole words):开启后,只有相同的完整单词才能触发。比如对话中的 hotdog 无法触发关键词为 dog 的世界书。主要针对英文。
- 最小激活次数 (Min Activations)
在上文中,有一种扫描消息条数的扫描方式:扫描深度。而最小激活次数提供了另外一种扫描方式:直接扫描关键词。你设置了次数后,该功能会从你的最新一条消息开始,从下往上扫描聊天记录,扫描到指定次数的(任意)关键词才会停下。但该功能并不好用。由于可能在某条消息内多次出现某关键词,导致次数耗尽,因此极少使用。次数也受“最大深度”和“预算上限”的限制。设置为0则关闭该功能。
- 最大深度 (Max Depth):决定“最小激活次数”能扫描的最大深度。深度规则同“扫描深度”。
搭配正则表达式
该功能,简而言之,是以“好感度系统”为目的的一种玩法。比如,某角色对玩家的好感度达到几后,会表现出不同的性格,或者传达出更亲密的信息。实际上,任何“分阶段”的玩法都可以采用这个功能。详看👇
结束语
进一步了解:
- 上述 prompt 并非构成上下文的全部。有一些 prompt 是你在酒馆里看不到的,包括特殊字符串、括号命令框“[ ]”等。如果你想精通上下文和写破限,你肯定需要点开 clewd 的 log.txt 文件进一步学习。
- 破限 prompt:更准确地说,Claude 的上下文并不简单遵循“越往下影响越大”的规律。点击查看:Cluade-2.1 200k 压力测试。包括破限在内的所有 prompt,在上下文最前后0.9%(差不多900 tokens)以内的 prompt 发挥的影响最强,几乎100%不会被模型忘记。如果你的主提示(Main Prompt)很短,你也可以把角色描述和重要世界书信息放在顶端。——感谢@用户4837 的补充。
基本上看到这里,你就会明白世界书的本质并不仅仅用于提供世界背景信息。抛开那些技术问题,我想最后点明的是,把世界书当作一种可以灵活调整顺序的多功能 prompt,将大大提升你的角色卡的可玩性。世界书不仅可以补充角色背景、世界背景,甚至可以作为(RPG等)游戏模式的指令,一切取决于你的想象力……以及 AI 的算力。
那么,开始你的世界书写作之旅吧!
Prev
常见问题
Next
Loading...