# 多用户模式

多用户模式允许多个人使用一个 SillyTavern 服务器。每个用户都有自己的设置、扩展和数据。用户账户也可以受密码保护。

# 配置

要启用和使用多用户模式,请编辑 config.yaml 文件:

# 启用多用户模式
enableUserAccounts: true
# 启用谨慎登录模式:在登录屏幕上隐藏用户列表
enableDiscreetLogin: true
  1. 当禁用用户账户设置时,使用 default-user 后备管理员账户来存储用户数据。
  2. 当禁用谨慎登录设置时,登录屏幕上会显示活跃用户列表。如果启用,用户必须手动输入其用户名。

# 用户名

用户名是用户的唯一标识符。它只能包含小写字母、数字和破折号。

用户数据目录的路径使用以下模式:%DATA_ROOT%/%USER_HANDLE%

有效用户名的示例:

  • default-user
  • juan555
  • flux-the-cat
  • cool-guy1337

# 角色

  • 管理员 - 可以管理(创建、删除、修改)其他用户。可以为所有用户安装扩展。
  • 用户 - 不能管理其他用户。只能为自己安装扩展。

除了具有管理员面板访问权限外,两种用户角色在功能上是相同的,可以不受任何限制地使用完整的 SillyTavern 功能范围。用户权限的实现 TBD。

所有用户账户首先创建为普通用户,然后可以根据需要提升为管理员。

# 登录屏幕

在那里您可以选择要使用的用户账户。有两种样式,取决于 enableDiscreetLogin 配置值。

当您只有一个活跃用户且它不受密码保护时,登录屏幕被绕过且不显示。

# 用户资料

您可以使用顶部菜单栏中"用户设置"面板下的"账户"按钮访问账户自助管理菜单。

  1. 显示名称 - 在登录屏幕中使用,可以更改。与角色无关,并且对于 AI API 不可见 - 您仍然可以使用任意数量的角色。
  2. 个人资料图片 - 在登录屏幕中使用。您可以使用自定义图片、默认角色图片(如果设置),否则使用最后使用的角色图片。
  3. 密码 - 锁图标反映账户保护状态(打开的锁 = 无密码)。可以使用"更改密码"按钮设置、更改或删除密码。
  4. 设置快照 - 访问和查看您的 settings.json 文件的备份,具有创建或恢复快照的能力。
  5. 下载备份 - 下载您的用户数据文件夹的存档。
  6. 重置设置 - 重置出厂默认设置,同时保留其他数据(角色、聊天)不变。

# 密码恢复

  1. 可以从登录屏幕恢复密码。您需要访问服务器控制台来获取一次性恢复代码(由 4 位数字组成)。
  2. 或者,您可以使用 SillyTavern 服务器中的实用程序脚本来通过提供用户名重置密码。
用法:node recover.js [账户] (密码)
示例:node recover.js admin SecurePassword

# 内容脚手架

要为用户添加自定义内容,您可以使用内容脚手架功能。此功能允许您定义一组文件,这些文件将在服务器启动时复制到每个用户的数据目录中。

您必须在 /default/scaffold 目录中创建一个 index.json 文件才能使此功能工作。语法与默认内容相同。所有文件路径应相对于 /default/scaffold 目录,您可以使用子目录来组织文件。

脚手架文件在默认文件之前复制,这意味着它们将覆盖任何具有相同文件名的默认文件(预设/设置/等)。

# 可识别的内容类型

类型
settings.json 'settings'
角色卡 'character'
角色精灵图 'sprites'
背景图像 'background'
世界信息文件 'world'
角色头像 'avatar'
UI 主题 'theme'
ComfyUI 工作流 'workflow'
KoboldAI Classic 预设 'kobold_preset'
聊天完成预设 'openai_preset'
NovelAI 预设 'novel_preset'
文本完成预设 'textgen_preset'
指令模式模板 'instruct'
上下文格式化模板 'context'
MovingUI 预设 'moving_ui'
快速回复集 'quick_replies'
系统提示模板 'sysprompt'
推理格式化模板 'reasoning'

# 示例 (/default/scaffold/index.json)

[
    {
        "filename": "themes/Midnight.json",
        "type": "theme"
    },
    {
        "filename": "backgrounds/city.png",
        "type": "background"
    },
    {
        "filename": "characters/Charlie.png",
        "type": "character"
    }
]