# 群组聊天

### 回复顺序策略

决定群组聊天中的角色如何被选择进行回复。

### 手动

您可以从菜单中或使用 `/trigger` 命令手动选择要回复的角色。被选中的群组成员将是唯一回复的角色。用户消息不会自动触发任何回复。在用户输入为空的情况下触发生成将随机选择一个未静音的群组成员进行回复。

#### 自然顺序

尝试模拟真实人类对话的流程。算法如下：

1. 从聊天中的最后一条消息中提取群组成员名字的提及。

    只有完整的词才会被识别为提及！如果您的角色名字是"御坂美琴"，他们只会对"御坂"或"美琴"做出回应，但永远不会对"御"、"炮姐"等做出回应。
    
    除非启用了"允许自我回应"设置，否则角色不会对自己消息中提到的名字做出回应！

2. 角色根据"健谈程度"因素被激活。

    健谈程度定义了在没有被提及时角色说话的频率。在角色编辑器的"高级定义"屏幕中调整此值。滑块值在线性范围内从 **0% / 害羞**（角色除非被提及否则不说话）到 **100% / 健谈**（角色总是回复）。新角色的默认值是 50% 几率。

3. 随机选择一个角色。

    如果在前面的步骤中没有角色被激活，则随机选择一个发言者，忽略所有其他条件。

#### 列表顺序

角色根据它们在群组成员列表中的顺序被选择。不适用其他规则。

### 群组生成处理模式

此设置决定如何处理群组聊天成员的角色信息。无论选择什么，群组聊天历史始终在所有成员之间共享。

#### 切换角色卡片

默认模式。每次生成消息时，只有当前发言者的角色卡片信息会包含在上下文中。

#### 合并角色卡片

所有群组成员的信息按照他们在列表中的顺序合并成一个联合提示词。这在不希望改变大块上下文的情况下很有帮助，例如使用 llama.cpp 提示词缓存时。

此模式有两个子模式（您必须选择其中一个）：

* 包含静音 - 静音的角色将始终包含在联合提示词中。
* 排除静音 - 如果静音的角色不是当前发言者，则不会被包含。

以下字段会被合并：

1. 描述
2. 场景（如果没有为聊天覆盖）
3. 个性
4. 示例消息
5. 角色注释 / 深度提示词

**重要！** 请注意，由于典型角色卡片的结构方式，使用此模式可能导致意外行为，包括但不限于：角色对自己感到困惑、个性合并、特征不确定等。

#### 合并前缀和后缀

当选择"合并角色卡片"时，角色的所有相应字段都会被合并在一起。这意味着在结果提示词中，所有角色描述将被合并成一大块文本。如果您希望这些字段被分开，您可以定义前缀和/或后缀。

这些选项支持普通宏，并且还会将 \{\{char\}\} 替换为相关角色的名字，将 \<FIELDNAME\> 替换为部分的名称（例如：描述、个性、场景等）。

### 其他群组聊天菜单选项

#### 静音角色

群组聊天菜单中角色头像旁边的划掉的对话气泡图标可以禁用或启用特定角色在聊天中的回复。

#### 强制发言

群组聊天菜单中角色头像旁边的对话气泡图标将只触发特定角色的回复，绕过回复顺序策略。即使群组成员被静音，它也会生效。

#### 自动模式

当启用自动模式时，群组聊天将遵循回复顺序并在没有用户交互的情况下触发消息生成。当最后一个被选中的角色发送其消息后，下一个自动模式回合将在 5 秒延迟后触发。当用户开始在发送消息文本区域中输入时，自动模式将被禁用，但已经排队的生成不会自动停止。

#### 允许自我回应

当选择自然顺序时，如果由于在自己的消息中提到自己而被触发，将允许每个回合最后一条消息的角色连续回复。对列表顺序没有影响。

#### 群组聊天场景覆盖

所有群组成员将使用输入的场景文本，而不是他们角色卡片中指定的内容。分支聊天从其父聊天继承场景覆盖，之后可以单独更改。

#### 查看角色定义

点击群组聊天菜单中头像旁边的角色卡片图标将快速导航到常规角色定义屏幕。在这里所做的任何更改都将保存到卡片本身。

要返回群组聊天，点击群组名称标题链接。

#### 成员管理

您可以在群组聊天中添加、删除、静音或重新排序任何现有角色。默认情况下，新成员会被添加到群组成员列表的顶部，然后可以使用箭头图标重新排序。

#### 群组聊天弹出窗口

通过点击"当前成员"字段旁边的图标可以激活群组聊天菜单弹出窗口。这会创建群组聊天菜单的弹出窗口。通过从用户设置启用 MovingUI，此菜单可以调整大小并拖动到界面内的任何位置，功能与常规群组聊天菜单相同。
