1.12.0 迁移指南

SillyTavern 1.12.0(代号“Neo Server”更新)包含若干关键变更,可能会影响你使用 SillyTavern 的方式。

本指南将帮助你为这次更新做好准备,并提供一些进一步的指引。

数据存储更新

1.12.0 改变了 SillyTavern 处理用户数据的方式。

此前,所有持久化数据都与前端部分一起存放在 /public 目录中,这既会造成混乱和潜在故障点,也使容器化和系统级应用安装变得相当棘手。

改动了什么?

/public 中所有持久化信息(如设置和聊天记录,完整列表见下文)都被移动到了一个路径可配置的独立目录中,使其具备可移植性,并与 Web 服务器本身相互独立。当出于兼容性目的需要时(例如托管扩展、全尺寸角色卡、用户上传的图片等),系统已设置智能重定向,可自动从数据目录中托管用户文件。

设置数据根目录

你可以通过 config.yaml,或使用 --dataRoot 控制台参数启动服务器,来为数据根目录提供一个绝对路径或相对路径(相对于 ST 仓库目录)。

YAML 示例

# -- DATA CONFIGURATION --
# Root directory for user data storage
dataRoot: C:\Users\Harry\Documents\ST-Data

控制台示例

node server.js --dataRoot="/Users/harry/ST-Data"
# OR
npm run start -- --dataRoot="/Users/harry/ST-Data"

默认的数据根目录路径为 ./data,即 SillyTavern 仓库中的 data 目录。

迁移

重要! 开始之前

  1. 仅当你想把 dataRoot 从默认位置移动时才需要操作,否则跳过本部分。 在拉取更新后首次运行服务器_之前_设置数据根目录。运行 npm install 以便 config.yaml 填入新值,或者传递控制台参数。
  2. 所有数据都将迁移到 default-user 账户中。详见下文的用户

非容器化(裸机)安装

你无需做任何事!当你启动 ST 服务器、并且它检测到旧的存储格式(通过检查 /public/characters 目录是否存在)时,自动迁移会为你处理好一切。

在移动任何文件之前,系统会在 /backups/_migration/YYYY-MM-DD(解析为当前日期)目录中创建一个自动备份;但在运行迁移之前,手动做一次完整备份始终是好习惯。

容器化(Docker)安装

迁移 Docker 卷中的数据稍显棘手,但相当直接。虽然仓库中提供的 docker-compose.yml 已更新以反映这些变更,但你可能需要调整自定义工作流/部署。

步骤 1。 创建一个新卷,并将其挂载到容器内的“/home/node/app/data”路径。不要删除 config 卷。

volumes:
    - "./config:/home/node/app/config"
    - "./data:/home/node/app/data"

步骤 2。config 卷中除 config.yaml 文件之外的所有内容移动到 data 卷的 default-user 子目录中。

步骤 3。 重新构建容器并启动。

需要迁移哪些内容?

以下文件和目录需要进行数据迁移。假设使用默认配置,下表提供了迁移前后的路径对照。

迁移前 迁移后
/secrets.json /data/default-user/secrets.json
/thumbnails /data/default-user/thumbnails
/vectors /data/default-user/vectors
/public/settings.json /data/default-user/settings.json
/public/stats.json /data/default-user/stats.json
/public/assets /data/default-user/assets
/public/backgrounds /data/default-user/backgrounds
/public/characters /data/default-user/characters
/public/chats /data/default-user/chats
/public/context /data/default-user/context
/public/scripts/extensions/third-party /data/default-user/extensions
/public/group chats /data/default-user/group chats
/public/groups /data/default-user/groups
/public/instruct /data/default-user/instruct
/public/KoboldAI Settings /data/default-user/KoboldAI Settings
/public/movingUI /data/default-user/movingUI
/public/NovelAI Settings /data/default-user/NovelAI Settings
/public/OpenAI Settings /data/default-user/OpenAI Settings
/public/QuickReplies /data/default-user/QuickReplies
/public/TextGen Settings /data/default-user/TextGen Settings
/public/themes /data/default-user/themes
/public/worlds /data/default-user/worlds
/default/content/content.log /data/default-user/content.log

用户

1.12.0 新增了一项(完全可选的)能力,可以在同一台服务器上创建多用户环境,允许多个用户使用各自完全隔离的 SillyTavern 实例,甚至可以同时使用。用户账户还可以通过密码保护,从而提供额外一层隐私保护。

更多信息请参阅 用户 文档。