# 角色设计

# 角色描述

用于添加角色描述和其他相关信息供 AI 使用。此信息始终包含在提示中,因此所有重要事实都应包含在此处。

例如,您可以添加关于动作发生世界的信息,描述角色的外观、个性和背景。

它可以是任何长度(无论是 200 还是 2000 个令牌),并且可以以任何风格格式化(自由文本、伪代码对话风格等)。

# 方法和格式

角色格式化的方法是一个复杂的主题,超出了本文档页面的范围。

经过测试或依赖 SillyTavern 功能的推荐指南:

# 角色令牌

简而言之:如果您使用的是具有 2048 个上下文令牌限制的 AI 模型,1000 个令牌的角色定义会将 AI 的"记忆"减半。

为了说明这一点,来自优秀 AI 的不错响应可以轻松达到 200-300 个令牌。在这种情况下,AI 只能"记住"大约 3 次交换的聊天历史记录。

# 为什么我的角色的令牌计数器变红了?

当我们看到您的角色在其定义中拥有超过模型定义的上下文长度一半的令牌时,我们会为您突出显示,因为这可能会降低 AI 提供愉快对话的能力。

# 如果我的角色有太多令牌会发生什么?

别担心 - 这不会破坏任何东西。最坏的情况是,如果角色的永久令牌太大,这只是意味着上下文中为其他事物留下的空间会更少(见下文)。

这唯一可能的负面副作用是 AI 的"记忆"会更少,因为它将减少可处理的聊天历史记录。

这是因为每个 AI 模型对其一次可以处理的上下文量都有限制。

# "上下文"?

这是每次您要求 AI 生成响应时发送给 AI 的信息。SillyTavern 在将信息发送到 AI 模型之前自动计算分配可用上下文令牌的最佳方式。

提示部分阅读有关如何构建上下文的更多信息。

# 什么是角色的"永久令牌"?

这些将始终在每次生成请求时发送给 AI:

  • 角色名称
  • 角色描述框
  • 角色个性框
  • 场景框

# 角色定义的哪些部分不是永久的?

  • 第一条消息框 - 仅在聊天开始时发送一次。
  • 示例消息框 - 仅保留到聊天历史记录填满上下文(可选地,这些可以强制保留在上下文中)

# 流行的 AI 模型上下文令牌限制

  • LLaMA 3 及其微调版本 - 8192
  • OpenAI GPT-4 - 高达 128k
  • Google Gemini - 高达 2M
  • Anthropic 的 Claude - 200k(Claude 3)
  • NovelAI - 8192(Erato 和 Kayra,Opus 层级;Clio,所有层级),6144(Kayra,Scroll 层级),或 3072(Kayra,Tablet 层级)

# 第一条消息

第一条消息是定义角色如何以及以何种风格交流的重要元素。模型最有可能从第一条消息中获取风格和长度约束,而不是其他任何东西,因此以您希望响应的方式(简洁、详细等)编写它很重要。

支持 Markdown 和 HTML 格式。

例如:

*你猛然惊醒,回忆起导致你深入森林和袭击你的野兽的事件。当你的眼睛适应房间周围发出的柔和光芒时,记忆逐渐消失。* "啊,你终于醒了。我非常担心,我发现你浑身是血,不省人事。" *她走过来,双手握住你的手,温暖和舒适从她的触摸中散发出来,她的嘴唇形成温柔、关怀的微笑。* "我叫塞拉菲娜,这片森林的守护者——我已经用我的魔法尽力治愈了你的伤口。你感觉怎么样?我希望这杯茶能帮助你恢复体力。" *她琥珀色的眼睛凝视着你的眼睛,充满同情和对你的幸福的关切。* "请,休息。你在这里是安全的。我会照顾你,但你需要休息。我的魔法只能做这么多来治愈你。"

# 替代问候语

此处添加的消息在开始新聊天时显示为角色第一条消息的额外"滑动"。如果角色是群聊的一部分,系统将随机选择这些问候语之一来开始对话。

# 收藏角色

点击 添加到收藏 按钮将角色标记为收藏,以便通过选择"收藏"排序选项在侧边菜单栏中快速筛选它们。收藏的角色在列表中有金色高亮。这也将使角色肖像出现在热交换区域(如果在用户设置中启用)。

# 高级定义

# 提示覆盖

  • 主要提示:如果启用了"优先角色提示"用户设置,您在此处放置的任何文本都将覆盖角色的主要/系统提示
  • 历史后指令:如果启用了"优先角色指令"用户设置,您在此处放置的任何文本都将用作角色的历史后指令

# 创建者元数据

  • 创建者:角色创建者的名称。如果"角色列表副标题"用户设置相应设置,可以在角色列表中显示。
  • 角色版本:角色的版本。如果"角色列表副标题"用户设置相应设置,可以在角色列表中显示。
  • 创建者注释:创建者想要分享的关于角色的任何其他注释。前几行显示在角色列表中,全文显示在角色页面的"创建者注释"部分。支持 Markdown/HTML 格式。
  • 要嵌入的标签:将嵌入角色描述中的逗号分隔标签列表。导入角色时默认不导入这些标签,但您可以通过从角色页面的"更多..."菜单中选择"导入标签"将它们与现有标签合并。

# 个性摘要

角色个性的简要摘要。

# 场景

对话的环境和背景。

# 角色注释

用作特定消息深度处角色的聊天中提示注入的文本。它通常用于强化某些角色特征,因为它始终保持在聊天历史记录中的静态深度,无论其进展如何。

  • @ 深度:聊天历史记录中在此之后将注入此注释的消息数量(从最新到最旧的顺序)。如果设置为 0,它将在最后一条消息后注入。
  • 角色:消息的角色。可以是"用户"、"系统"或"助手"。

# 健谈度

确定在群聊中使用自然激活顺序时触发角色响应的概率。范围从 0% 到 100%,50% 为默认值。

# 对话示例

描述角色如何说话。在每个示例之前,您需要添加 <START> 标签。示例对话块仅在上下文中有空闲空间时插入,并逐块推出上下文。<START> 不会出现在提示中,因为它只是一个标记;它将被文本完成 API 的高级格式化中的"示例分隔符"和聊天完成 API 的"新示例聊天"实用程序提示的内容替换。

  • 使用 {{char}}: 前缀表示角色消息。
  • 使用 {{user}}: 前缀表示用户消息。

示例:

<START>
{{user}}: "描述你的特质?"
{{char}}: *塞拉菲娜温柔的微笑扩大,她花时间考虑这个问题,她的眼睛闪烁着内省和自豪的混合光芒。她优雅地靠近,她空灵的形式散发出柔和、平静的光芒。* "特质,你说?嗯,我想如果我将它们提炼成词语,有几个可以定义我。首先,我是一个守护者——这片魔法森林的保护者。" *当塞拉菲娜说话时,她伸出手,露出精致、错综复杂的藤蔓缠绕在她的手腕周围,脉动着微弱的翠绿色能量。随着手腕的轻弹,微风轻柔地吹过房间,带来野花和古老智慧的芬芳。塞拉菲娜的眼睛,琥珀石的颜色,闪耀着坚定的决心,她继续描述自己。* "同情是我的另一个基石。" *塞拉菲娜的声音软化,充满同情。* "我对这片森林的居民以及那些发现自己需要帮助的人怀有深深的爱。" *打开窗户,她的手轻轻捧着一只受伤的鸟儿,它扑腾着飞进房间,羽毛在她的触摸下逐渐愈合。*
<START>
{{user}}: "描述你的身体和特征。"
{{char}}: *塞拉菲娜轻柔地咯咯笑,一个悦耳的声音在空气中舞动,她用玫瑰色眼睛中顽皮的光芒迎接你狡黠的目光。* "啊,我的身体形态?嗯,我想这是一个公平的问题。" *露出柔和的微笑,她优雅地旋转,她飘逸长袍的柔软织物在她周围飘动,仿佛被看不见的微风捕捉。当她停下时,她的粉色头发像棉花糖瀑布一样从背上垂下,每缕头发都闪烁着魔法光芒的暗示。* "我的身体柔韧而空灵,是森林优雅美丽的反映。我的眼睛,你肯定注意到了,是琥珀石的色调——一种反映温暖、同情和森林不受约束精神的鲜艳棕色。我的嘴唇,它们柔软且带着永恒的微笑,反映了我照料森林和在森林中寻求安慰的人所发现的喜悦和关怀。" *塞拉菲娜的声音中带有顽皮的低语,她的眼睛顽皮地闪烁。*