⚠️ 警告

此页面包含不适合未成年人或公共场合查看的内容。请三思而后行。

词元很少写这种东西的 😝

一张角色卡的封面图

SillyTavern 部署指南

真的不是词元喜欢搞涩涩 😵 实在是相关讨论1,有专门的论坛2,有开源客户端和大量贡献者3,甚至在抢真人涩涩的生意4……

引用 Linus Torvalds 在他的自传 Just for Fun 中一句话,作为证据:

[alt.sex is] Not my particular favorite. Although I did check it out once or twice to see what the fuss was about, I was pretty much your typical under-sexed nerd, more eager to play with my floating point processor than to keep abreast of the latest reports from the sexuality front—newly discovered lovemaking positions or reports from heavy petters or whatever else it was that so many people were talking about on alt.sex.5

词元为了保护心灵脆弱的未成年人和您的社会人设安全,还单独写了一个模糊警告,加了 NSFW 标签,您要是还没开始看就脸红心跳了,现在还能关掉 😁

🤔 先了解一些术语

当然词元也不专业,这则博客也只覆盖到一个普通用户的使用过程。这里的术语肯定不全,甚至有错误;还望大佬评论区指正。

  • 酒馆:即 SillyTavern,一个用于角色扮演的 LLM 客户端。本质上和 Cherry Studio 这种客户端差不多,但是功能上更丰富、更专业,门槛较高。
  • 类脑旅程:姊妹社区,是最大的中文酒馆交流平台,以 Discord 服务器的形式存在。6
  • 角色卡:酒馆既然是角色扮演,就需要预设的角色描述。一般来说是通过一张图片存储7,包括:
    • 世界卡:定义世界观,也就是特定名词的解释。例如,词元自称总是用名字,就可以定义“词元”就是“我”的意思。
    • 正则表达式:尽管作者会通过提示词规范模型的输出,但有时候还会有点儿问题,可以用正则表达式来清理不需要的内容,提升体验。
    • 前端脚本等:酒馆允许角色卡自定义界面,作者会将 CSS、JS 等写进角色卡。
  • 越狱破限:一般模型提供商会对输出内容做限制,尤其是色情和暴力内容;这怎么行呢 😁 因此会通过提示词设计、逆向工程,尝试越过模型限制,输出本来禁止的内容。

本文中提到的术语主要就是这些,其他都是与正常 AI 应用通用的。

📦 安装 SillyTavern

您可以在 VPS、自己的电脑或者内网服务器上安装,这里只讲最方便、跨平台的 Docker 方案。以下需要您有一点 Linux 和 Docker 操作基础。

首先,安装 Podman8

1
sudo apt install podman podman-compose podman-docker # podman-docker 用于兼容 Docker 命令

然后找一个地方创建目录,放酒馆的文件,词元选择在 /containers/sillytavern9

1
2
sudo mkdir /containers/sillytavern
cd /containers/sillytavern

然后写个 Podman Compose 配置。Compose 实质上就是把容器的启动参数用更优雅的方式写成配置文件,命名为 podman-compose.yml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
services:
  sillytavern:
    container_name: sillytavern
    image: ghcr-pull.ygxz.in/sillytavern/sillytavern:latest
    environment:
      - NODE_ENV=production
      - FORCE_COLOR=1
    ports:
      - "8000:8000"
    volumes:
      - "./config:/home/node/app/config"
      - "./data:/home/node/app/data"
      - "./plugins:/home/node/app/plugins"
      - "./extensions:/home/node/app/public/scripts/extensions/third-party"
    restart: always

其中镜像部分为了方便拉取(原版在 GHCR),添加了一个镜像,如果不需要,可以改回 ghcr.io/sillytavern/sillytavern

完成后,先启动一下容器,生成配置文件:

1
sudo podman-compose -f podman-compose.yml up -d

ls 检查目录下已经生成 config/config.yml 之后,修改这个文件:

  • listen 设置为 true
  • whitelistMode 设置为 false
  • basicAuthUser 里设置用户名和密码。

这么做是为了将 SillyTavern 的 WebUI 向公网开放,便于访问。还是那句话,VPS 别这么搞。

然后重启:

1
sudo podman restart sillytavern

访问 http://[SERVER_IP]:8000 并输入您设置的用户名和密码即可看到界面。这时候您也可以在 SSH 打开 sudo podman logs -f sillytavern 看实时日志,便于排查问题。

SillyTavern 的首页

🪓 配置 SillyTavern

SillyTavern 的界面很复杂而且没什么文字提示。词元这里只将最基本的操作。

🤖 首先连 API

既然是 AI 工具,您首先需要一个 API。如果您不打算花钱,那请按照 AI QQ 机器人那一则博客获取一个 Gemini API 并搭建一个反向代理。操作不再赘述。

然后点击工具栏上“API Connections”的图标,设置 API:

配置 API

这张图没截到的部分还有一个 API Key 区域,和“Proxy Password”部分一样都填 API Key!可能是 ST 开发者认为反向代理已经自带 API Key,只需要填入代理的密码;实际上按之前的 Workers 还是需要自行输入密钥的。

记得点“Connect”连接,再点“Test Message”测试一下。

🧨 破限

在工具栏的“AI Response Configuration”里,你可以选择内置的破限提示词,也可以到类脑上去下一个现成的,一般后者效果更好。

类脑 Discord 破限词下载图示

获得一个 JSON 文件,然后导入 ST,记得要点击保存,否则就白导入了:

ST 导入破限词

🪪 角色卡、世界书、正则表达式10

一般来说比较好的角色卡会打包世界书和正则表达式。这里就不说怎么单独绑定了,我们直接到旅程去下载现成的玩玩就好。Discord 帖子里一般楼主会说明哪张图片是卡,下载然后导入 ST 即可。

ST 导入角色卡

🧙 开始!

回到对话界面,视角色卡的设计,有些是全部由 AI 叙事,一直点左下角三条横线的“Continue”即可;有些需要用户对话,这个您当然是会的。

🎆 下课!

词元玩了一会儿,感觉就是:

韦小宝听了一会,甚感无聊。

又看到好像 Google AI Studio 的 API 如果输出太多限制内容,会受到人工干预以至封号。词元才对话几句,API 那边基于正则的筛选器就报 PROHIBITED 了 😨 算了还是别搞了……


  1. 博客主题的问题,可能看不清;但是这是四个链接。 ↩︎

  2. 例如类脑,其 Discord 服务器人数高达 80,000。 ↩︎

  3. SillyTavern,即常说的“酒馆”。 ↩︎

  4. AI ‘dream girls’ are coming for porn stars’ jobs ↩︎

  5. 这段话是在谈早年 Linux 的消息频道 comp.os.linux,注册后迅速升到了活跃度前几名。alt.sex 是当时的第一名,听名字也知道这是一个关于性的频道。 ↩︎

  6. 眼下类脑社区开放注册,可以点击邀请链接去看看;社区里也有教程,但是比较零散。 ↩︎

  7. PNG 格式有一个“元数据”区域,用于存储拍摄时间之类的;酒馆将角色描述存储在这里,同时显示图片的数据仍然正常,因此看起来就是一张正常的图片。 ↩︎

  8. Podman 和 Docker 几乎完全兼容,而且前者在大部分 Linux 发行版有打包,所以选择 Podman。 ↩︎

  9. 词元打算用 root 来运行 Podman;实际上这是一个安全风险,如果您在 VPS 上部署,请千万要改用 rootless 模式,使用方法请您自己搜一搜。 ↩︎

  10. 这一部分词元也没完全搞懂。词元的的原则是不会就不瞎说,所以简略说明。 ↩︎

Banner