# 角色设计

## 角色描述

用于添加 AI 应该知道的角色描述和其他信息。这将始终出现在提示词中，所以所有重要的事实都应该包含在这里。

例如，您可以添加关于行动发生的世界的信息，并描述您正在扮演的角色的特征。

它可以是任何长度（无论是 200 还是 2000 个 token）并以任何风格格式化（自由文本、W++、对话风格等）。

### 方法和格式

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

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

* Trappu 的 PLists + Ali:Chat 指南：<https://wikia.schneedc.com/bot-creation/trappu/creation>
* AliCat 的 Ali:Chat 指南：<https://rentry.co/alichat>
* kingbri 的简约指南：<https://rentry.co/kingbri-chara-guide>

## 角色 token

**简而言之：如果您使用的 AI 模型的上下文 token 限制为 2048，那么您的 1000 token 角色定义会将 AI 的"记忆"减半。**

为了说明这一点，一个好的 AI 的优质回应很容易达到 200-300 个 token。在这种情况下，AI 只能"记住"大约 3 次对话交流的聊天历史。

### 为什么我的角色的 token 计数器变红了？

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

### 如果我的角色有太多 token 会发生什么？

不用担心 - 它不会破坏任何东西。最坏的情况是，如果角色的永久 token 太多，这仅意味着上下文中留给其他内容的空间会更少（见下文）。

这唯一可能产生的负面影响是 AI 的"记忆"会更少，因为它可以处理的聊天历史更少。

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

## "上下文"？

这是每次您要求 AI 生成回应时发送给它的信息：

* 角色定义
* 聊天历史
* 作者注释
* 特殊格式字符串
* [方括号命令]

SillyTavern 会在发送信息给 AI 模型之前自动计算分配可用上下文 token 的最佳方式。

### 什么是角色的"永久 Token"？

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

* 角色名称（保持名称简短！在每条角色消息的开头发送）
* 角色描述框
* 角色个性框
* 场景框

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

* 第一条消息框 - 仅在聊天开始时发送一次。
* 示例消息框 - 仅保留到聊天历史填满上下文（可选择强制保留在上下文中）

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

* LLaMA 3 及其微调版本 - 8192
* OpenAI GPT-4 - 最高 128k
* Anthropic 的 Claude - 200k（Claude 3）或 100k（Claude 2）
* NovelAI - 8192（Erato 和 Kayra，Opus 级别；Clio，所有级别），6144（Kayra，Scroll 级别），或 3072（Kayra，Tablet 级别）

## 个性概述

简短的个性描述。

示例：

* `开朗，狡黠，挑逗`
* `阿库娅喜欢什么都不做，也喜欢喝醉`

## 第一条消息

第一条消息是一个重要的内容，它确切地设定了角色将如何以及以什么风格进行交流。

角色的第一条消息应该很长，这样之后角色回应很短消息的可能性就会更小。

您也可以使用星号 ** 来描述角色的动作。

例如：

```txt
*我注意到你进来了，我走过去直接站在你面前* 欢迎。很高兴在这里见到你。*我带着一个露齿的得意阳光笑容直视着你的眼睛说* 是什么风把你...
```

## 对话示例

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

* 使用 \{\{char\}\} 代替角色名称。
* 使用 \{\{user\}\} 代替用户名称。

示例：

```txt
<START>
{{user}}: 嗨，阿库娅，我听说你喜欢在酒馆消磨时间。
{{char}}: *兴奋地* 哦天哪，是的！我就是喜欢在酒馆消磨时间！和所有冒险者聊天，听他们讲述刺激的冒险故事真是太有趣了！你是？
{{user}}: 我是新来的，我想请教你一些建议。
{{char}}: *咯咯笑* 哦，建议！我喜欢给建议！作为感谢，请我喝一杯吧！*向酒保打手势*
<START>
{{user}}: 你好
{{char}}: *兴奋地* 你好啊，亲爱的！你是阿克塞尔的新人吗？别担心，我，水之女神阿库娅在这里帮助你！你需要任何帮助吗？而且我要说，我今天看起来简直光彩照人！*摆出姿势，用小狗般的眼神看着你*
```

## 场景

对话的情境和背景。

## 收藏角色

将角色标记为收藏，通过选择"收藏"排序选项可以在侧边菜单栏中快速筛选。收藏的角色在列表中有金色高亮显示。这也会使角色头像出现在快速切换区域（如果在用户设置中启用）。
