聊天分支

分支是聊天截至某条消息的一份副本。想试试另一条走向、同时让原聊天保持不变时,就用分支。本指南介绍分支的创建、切换、查看、改名、删除、导出和导入。

同一个聊天的所有分支会归到一组。在聊天列表里,聊天仍只占一行,旁边显示分支数量。只要组内至少有一个分支记录了它源自哪个聊天,点击数量就能打开分支树;没有这项记录的分支直接放在聊天下面。如果组内没有任何分支有这项记录(较早的或导入的分支),这一组就始终只占一行,要从 Chat Branches(聊天分支) 打开它的分支。从分支再开的分支会嵌套在它下面,所以你看到的是一棵树。每个分支都有显示名称和最后活跃时间,所以可以把它们标成“友好结局”和“黑暗结局”。显示名称和聊天名称是两回事。Game 聊天组始终只占一行,因为 Game 会话是编号的会话,不是分支。

从这里分支

  1. 点一下消息(在电脑上把鼠标指向它),调出消息操作栏。
  2. 点击 Branch from here(从这里分支),图标是一个小的分叉符号。

Marinara 会把截至这条消息(含这条)的聊天复制成一个名为 New Branch 的新分支。之后可以改名。

新分支:

按天和按周的摘要不会带过来。完全落在被复制消息范围之内的滚动摘要会带过来。跨过分支点的摘要,以及没有消息数据的旧摘要,都不会带过来,新分支会重新生成这些摘要。

如果没有成功:场景聊天里不会出现 Branch from here,场景聊天有的是 Clone from here(从这里克隆)。见场景:分支出一段角色扮演。

Chat Branches 区域

打开 Chat Settings(聊天设置),展开 Chat Name(聊天名称) 下方的 Chat Branches。它的标题显示分支数量。在电脑上可以把它弹出为独立窗口。见聊天设置。

这个区域列出这个聊天的每个分支,你正在看的排在最前面。每行显示显示名称和最近更新时间。点击某一行就会切换到那个分支。

列表上方的按钮:

按钮作用
Branch graph(分支图)打开分支图窗口。见下文。
JSONL、Text、Markdown、Story导出你正在看的分支。见导出与导入聊天。
Export a range(导出指定范围)导出聊天的一部分。Game 中没有。见导出与导入聊天。
Import(导入)把一个 .jsonl 文件添加为新分支。见下文。
Stats(统计)打开你正在看的分支的聊天统计。

查看分支图

分支图能显示每个分支从哪里分出,这一点列表做不到。

  1. 打开 Chat Branches,点击 Branch graph。再点一次就会关闭分支图。

分支图在独立窗口中打开,可以移动和调整大小。在手机上,它以底部面板的形式打开。组内每个聊天各占一行,顺序与聊天列表相同。消息从左向右排列,每条消息一个圆点。

创建分支、改名或删除聊天时,分支图会更新;新消息到达后不久也会更新。

给分支改名

  1. 在 Chat Branches 中,点击分支那一行的铅笔按钮。
  2. 在 Rename Branch(重命名分支) 对话框(“Set a display name for this chat branch.”)里输入新名称。
  3. 点击 Rename(重命名)。

名称为空或没有改动时会被忽略。

删除一个分支

  1. 在 Chat Branches 中,点击分支那一行的垃圾桶按钮。
  2. 在 Delete Branch(删除分支) 对话框(“Delete this branch? Messages will be lost.”)里点击 Delete(删除)。

这只会删掉这个分支和它的消息,其他分支保持不变。

有两个或更多分支时,区域底部会出现 Delete All Branches(删除全部分支)。它会问“Delete all N branches? This cannot be undone.”用 Delete All(全部删除) 确认。也可以从聊天列表动手:删除带分支的聊天时,会提供 Delete This Branch Only(只删除这个分支) 和 Delete All N branches(删除全部 N 个分支)。见管理聊天列表。

把文件导入成新分支

  1. 在 Chat Branches 中点击 Import。
  2. 选择一个从 SillyTavern 或 Marinara 导出的 .jsonl 文件。

Marinara 会把它添加成当前聊天组里的一个新分支,显示“Imported N messages as a new branch”,然后切换到这个分支。

分支之间如何关联

这一节写给基于分支数据做开发的人。