具体效果如,下图所示。也是非常的有趣啊。
鲁迪乌斯
-
使用deepssk做出的BakeHub自动发帖工具,证明爱群主 -
主包、主包。不要跟风,把登录过期时间设计这么短。好不好@诗的结尾 好~······························
-
主包、主包。不要跟风,把登录过期时间设计这么短。好不好主包、主包。不要跟风,把登录过期时间设计这么短。好不好
影响我操作 -
SillyTavern:把 AI 对话变成角色、世界与长期故事@左伶笙 这当然是群主做的、太佬了
-
SillyTavern:把 AI 对话变成角色、世界与长期故事SillyTavern:把 AI 对话变成角色、世界与长期故事
如果你已经用过普通 AI 聊天工具,大概熟悉这样的流程:打开页面、输入问题、得到答案,然后开始下一轮对话。
SillyTavern 想做的事情更进一步。
它不只是给大模型套上一层聊天框,而是把角色设定、人物关系、世界背景、长期剧情、提示词、语音、图片和扩展能力组织到同一个界面里。你可以创建一个有性格、有经历、有表达习惯的角色,也可以搭建一整个故事世界,让多个角色在同一场景中持续互动。
对于喜欢 AI 角色扮演、互动小说、创意写作和模型调试的人来说,SillyTavern 是目前最值得了解的开源 LLM 前端之一。官方仓库:github.com/SillyTavern/SillyTavern 官方文档:docs.sillytavern.app

SillyTavern 到底是什么SillyTavern,简称 ST,是一个安装在本地电脑或自有服务器上的开源用户界面。它可以连接文本生成大模型、图像生成引擎和语音模型,为用户提供统一的 AI 交互工作台。
官方给它的定位非常直接:LLM Frontend for Power Users.
也就是“面向深度用户的 LLM 前端”。
这里有一个必须先说明的区别:SillyTavern 本身不是大模型,也不会凭空生成内容。 它负责管理界面、角色、提示词、上下文和扩展功能,真正的文本生成仍然来自你连接的模型服务。
它可以接入 OpenAI、OpenRouter、Claude、Mistral、NovelAI、KoboldAI/KoboldCpp、Text Generation WebUI、TabbyAPI、AI Horde 等多种后端,也可以连接部署在自己电脑上的本地模型。
这种前后端分离的设计带来了很大的自由度:界面和角色数据由自己管理,模型可以按需求更换,不必把全部体验绑定在单一平台上。为什么它比普通聊天页面更有吸引力
1. 角色不再只是一段临时提示词
在普通聊天工具里,我们经常需要反复告诉模型:“你是谁”“你应该怎样说话”“故事发生在哪里”。
SillyTavern 将这些内容整理成角色卡。角色卡可以包含:- 角色姓名、头像和人物介绍;
- 性格、语言风格和行为边界;
- 故事开场和示例对话;
- 与用户或其他角色的关系;
- 创作者补充的隐藏设定。
选择角色后就可以直接开始对话,不必每次重新输入整套设定。角色卡还能导入、导出和备份,适合长期创作和多人分享。
2. 用“世界书”管理庞大的背景设定
当故事涉及城市、组织、魔法体系、历史事件或大量人物关系时,把所有背景一次性塞进提示词既浪费上下文,也容易干扰模型。
SillyTavern 的 World Info 通常被中文用户称为“世界书”。它可以根据对话中出现的关键词,动态把相关设定加入上下文。
比如对话提到“银月城”,系统才加载这座城市的地理、势力和历史;提到某个组织时,再补充组织设定。这样既能保持世界观一致,也能更有效地使用模型上下文。3. 支持多人角色群聊
一个角色适合一对一交流,多个角色则能构成真正的场景。
在群聊中,不同角色可以拥有各自的角色卡、表达方式和关系设定。它适合桌面角色扮演、互动剧本、故事推演、虚拟团队讨论,也适合测试同一个模型对多角色上下文的处理能力。4. 模型可以随时更换
SillyTavern 的价值不只在“能接很多 API”,还在于它把角色与模型相对分离。
同一张角色卡可以连接不同模型进行测试。你可以比较不同模型的语言风格、上下文理解、创意能力、速度与成本,再为不同场景选择最合适的后端。
这对于模型爱好者、提示词研究者和内容创作者尤其有用。5. 不止文字,还能加入图片和语音
通过内置能力和扩展,SillyTavern 可以连接 Automatic1111、ComfyUI 等图像生成服务,还支持 TTS、语音识别、角色表情、Live2D、VRM、翻译、摘要、网页搜索和聊天向量化等功能。
这些模块不是简单堆叠功能。合理组合后,文字对话可以变成带立绘、配音、场景图和角色表情的互动体验。6. 高度可调的提示词与界面
普通聊天产品往往只提供少量参数。SillyTavern 面向的则是希望掌控细节的用户:提示词顺序、上下文组成、生成参数、消息格式、角色行为和界面主题都可以进一步调整。
新手可以直接使用默认配置,熟悉之后再逐步深入,不需要第一天就理解所有参数。7. 数据掌握在自己的部署环境中
角色、聊天记录、世界书和大部分配置会保存在本机或自有服务器的数据目录中,便于备份和迁移。
但“本地部署”不等于所有数据都不离开设备。如果连接的是第三方模型 API,对话内容仍会发送给相应服务商处理。对隐私敏感时,应阅读模型提供商的政策,或连接自己部署的本地模型。哪些人适合使用 SillyTavern
SillyTavern 特别适合以下用户:
- 希望获得长期、有设定的 AI 角色对话体验;
- 喜欢互动小说、世界观设计或跑团;
- 需要管理角色卡、人物关系与大量背景资料;
- 想在统一界面中比较不同大模型;
- 使用本地模型,希望拥有功能完整的前端;
- 研究提示词、上下文结构和模型行为;
- 希望把文本、图片、语音和角色表现组合起来。
如果你只想偶尔问一个简单问题,普通聊天页面可能更直接。如果你希望塑造角色、管理世界、保留长期内容并不断扩展玩法,SillyTavern 的优势才会真正体现出来。
从安装到第一次对话
SillyTavern 的基本使用流程可以概括为五步:
- 安装或打开 SillyTavern。
- 创建自己的 Persona,也就是你在对话中的身份。
- 在 API Connections 中连接模型服务。
- 选择或导入一张角色卡。
- 发送第一条消息,开始对话。
第一步:连接模型 API
打开顶部的 API Connections,根据自己使用的服务选择 API 类型和来源,填写 API Key、接口地址和模型名称,然后点击连接。
API Key 相当于模型账户的密码。不要出现在截图、角色卡、公开配置、Git 仓库或博客文章中。部分商业模型会按 Token 计费,连接前应先确认价格和额度。第二步:设置 Persona
Persona 代表“对话中的你”。它可以只是一个名字,也可以包含身份、性格、经历和与角色的关系。
同一个角色面对不同 Persona 时,故事可以呈现完全不同的发展方向。第三步:选择角色
可以使用自带示例角色,也可以创建或导入角色卡。第一次体验时,不必一开始就堆叠大量设定。先用清晰的人物背景、性格和开场白测试效果,再逐步完善。
第四步:发送消息
输入内容后,SillyTavern 会根据角色卡、Persona、世界书、聊天历史和当前提示词组织请求,再交给模型生成回复。
如果回复不符合预期,可以重新生成、编辑消息、调整提示词或切换模型,而不必放弃整个对话。使用 Docker 快速部署
官方文档推荐使用 Docker Compose 和 GitHub Container Registry 中的预构建镜像。下面是一份适合个人部署的精简示例。
创建目录:mkdir -p /opt/sillytavern/{config,data,plugins,extensions} cd /opt/sillytavern创建
docker-compose.yml:services: sillytavern: image: ghcr.io/sillytavern/sillytavern:latest container_name: sillytavern restart: unless-stopped ports: - "127.0.0.1:8000:8000" volumes: - ./config:/home/node/app/config:rw - ./data:/home/node/app/data:rw - ./plugins:/home/node/app/plugins:rw - ./extensions:/home/node/app/public/scripts/extensions/third-party:rw
启动服务:
docker compose pull docker compose up -d docker compose ps docker compose logs --tail=100 sillytavern
在服务器本机访问:
http://127.0.0.1:8000
官方 Docker 文档特别提醒:不要在没有额外安全措施的情况下把 SillyTavern 直接暴露到公网。
示例只把端口绑定到127.0.0.1。如果需要远程访问,建议选择以下方案之一:- 通过 WireGuard、Tailscale 等 VPN 访问;
- 使用 SSH 端口转发;
- 使用 HTTPS 反向代理,并配置身份认证;
- 使用 SillyTavern 的多用户或 SSO 能力并做好权限控制。
公开服务还需要限制上传、插件安装和管理入口,并定期备份
config、data、plugins和extensions目录。
完整官方安装说明:Docker Installation使用前需要知道的三件事
1. 它不会赠送商业模型额度
SillyTavern 是前端。使用 OpenAI、OpenRouter、Claude 等商业服务时,仍需要相应账户、API Key 和可用额度。
2. 最终效果取决于模型和配置
角色卡很重要,但模型能力、上下文长度、采样参数和提示词结构同样会影响回复。更复杂的配置不一定产生更好的效果,稳定清晰通常比参数堆叠更有价值。
3. 扩展需要谨慎安装
第三方扩展和服务器插件能够显著增强功能,也可能执行额外代码。只安装来源可信、维护活跃且确实需要的项目,并在升级前做好备份。
常见问题
SillyTavern 是免费的吗?
SillyTavern 本身是开源软件,采用 AGPL-3.0 许可证。模型 API、云服务器、图片生成或语音服务可能产生额外费用。
一定需要高性能显卡吗?
不一定。官方说明 SillyTavern 前端只需要能够运行 Node.js 20 或更高版本的设备。如果连接云端 API,前端本身对硬件要求很低。只有在本机运行大模型、图像或语音推理时,显卡和内存需求才会明显增加。
可以在手机上使用吗?
可以。SillyTavern 提供适配移动设备的界面,也有 Android Termux 安装文档。更省事的方式是在自己的服务器或电脑上运行,再通过安全的内网、VPN 或 HTTPS 入口访问。
可以接入本地模型吗?
可以。它支持多种本地推理后端。SillyTavern 负责界面和上下文,本地推理程序负责真正生成文本。
聊天内容是否完全私密?
角色和聊天记录可以保存在自己的设备或服务器上,但发送给第三方 API 的内容仍会离开本地环境。是否完全本地取决于所使用的模型后端。
结语
SillyTavern 最有价值的地方,不是让聊天窗口变得更复杂,而是让用户真正拥有组织 AI 体验的能力。
角色不再是一段随时会被遗忘的提示词,世界观不再被塞进一条超长消息,模型也不再和某个固定平台绑定。你可以保存角色、构建世界、切换模型、加入图片与语音,并把整个创作过程留在自己掌控的环境里。
如果普通 AI 聊天已经无法满足你对角色一致性、长期剧情和可定制性的要求,SillyTavern 值得亲自体验。
项目入口:SillyTavern GitHub 使用文档:SillyTavern Documentation 快速开始:Quick Start Docker 部署:Docker Installation -
有啥,简单。好玩的开源项目吗最好,无脑一点的。但是要好玩
-
教你如何搭建属于自己的机场,Docker Compose 部署 sing-box + Hysteria2使用 Docker Compose 部署 sing-box + Hysteria2
本文介绍 sing-box 的作用,并以 Hysteria2 服务端为例,给出一套可维护的 Docker Compose 部署与客户端使用方法。文中的域名、密码和路径均为示例,请替换后再使用。
一、项目地址与官方资料
开源仓库:SagerNet/sing-box
官方文档:sing-box.sagernet.org
Docker 部署文档:Docker - sing-box
Hysteria2 服务端配置:Hysteria2 Inbound
Hysteria2 客户端配置:Hysteria2 Outbound
官方图形客户端:Graphical Clients
sing-box 官方将其定义为“The universal proxy platform”,即通用代理平台。项目采用 Go 开发,主体按 GPL-3.0-or-later 发布。
二、sing-box 有什么作用
sing-box 是一个可同时充当代理服务端和客户端的网络代理核心。它通过 JSON 配置文件组合入站、出站、DNS 和路由规则,支持 Hysteria2、Shadowsocks、Trojan、VLESS、TUIC、WireGuard 等多种协议。
典型用途包括:
在自己的服务器和设备之间建立加密代理通道;
根据域名、IP、端口或规则集进行分流;
在 Android、iOS、macOS、Windows 和 Linux 上使用统一配置;
作为其他网关或代理软件的底层网络核心。
本文使用的 Hysteria2 基于 QUIC,主要承载在 UDP 上。在高延迟或存在一定丢包的网络中,它通常比传统 TCP 代理更容易保持吞吐量,但它并不能突破服务器带宽上限,也不能解决所有线路质量问题。
请仅在法律和服务条款允许的范围内使用。
三、本文部署结构
客户端
|
| Hysteria2 + TLS + UDP/8443
v
云服务器公网 IP
|
v
Docker(host 网络)
|
v
sing-box hysteria2 inbound
|
v
direct outbound -> 目标网站
使用 network_mode: host 后,容器直接监听宿主机 UDP 端口,不需要在 Compose 中编写 ports 映射。Hysteria2 是 QUIC/UDP 服务,所以防火墙必须放行 UDP,而不是只放行同端口的 TCP。
四、服务器准备
建议准备:
一台具有公网 IPv4 或 IPv6 的 Linux 服务器;
Ubuntu 22.04 或更新版本;
一个解析到服务器公网 IP 的域名,例如 hy2.example.com;
Docker Engine 与 Docker Compose Plugin;
云厂商安全组和系统防火墙均允许目标 UDP 端口。- 安装 Docker
下面以 Ubuntu 为例。若服务器已经安装 Docker,可跳过这一节。
sudo apt-get update
sudo apt-get install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg
-o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" |
sudo tee /etc/apt/sources.list.d/docker.list >/dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io
docker-buildx-plugin docker-compose-plugin
sudo docker version
sudo docker compose version - 配置域名和防火墙
将 hy2.example.com 的 A 记录指向服务器公网 IPv4。若使用 IPv6,再添加 AAAA 记录。
使用 UFW 时可以这样放行:
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 8443/udp
sudo ufw status
80/tcp 用于 Certbot 申请和续期证书。如果服务器上已有 Nginx 或 Caddy,应改用与现有 Web 服务兼容的 ACME 验证方式。云厂商安全组也需要单独放行 8443/udp。 - 申请可信 TLS 证书
sudo apt-get update
sudo apt-get install -y certbot
sudo certbot certonly --standalone
-d hy2.example.com
--agree-tos
--email admin@example.com
--non-interactive
证书通常位于:
/etc/letsencrypt/live/hy2.example.com/fullchain.pem
/etc/letsencrypt/live/hy2.example.com/privkey.pem
生产环境推荐使用受信任 CA 签发的证书。自签名证书也能工作,但客户端必须安全地取得并信任该证书;不建议长期使用“跳过证书验证”。
五、创建服务端配置
创建部署目录:
sudo install -d -m 700 /opt/sing-box-hy2
cd /opt/sing-box-hy2
生成两个彼此独立的随机密码:
openssl rand -base64 32
openssl rand -base64 32
第一个作为用户认证密码,第二个作为 Salamander 混淆密码。不要把密码提交到 Git 仓库,也不要直接放进公开博客。
创建 /opt/sing-box-hy2/config.json:
{
"log": {
"level": "info",
"timestamp": true
},
"inbounds": [
{
"type": "hysteria2",
"tag": "hy2-in",
"listen": "::",
"listen_port": 8443,
"up_mbps": 100,
"down_mbps": 300,
"obfs": {
"type": "salamander",
"password": "请替换为混淆密码"
},
"users": [
{
"name": "user1",
"password": "请替换为认证密码"
}
],
"tls": {
"enabled": true,
"server_name": "hy2.example.com",
"alpn": [
"h3"
],
"certificate_path": "/etc/letsencrypt/live/hy2.example.com/fullchain.pem",
"key_path": "/etc/letsencrypt/live/hy2.example.com/privkey.pem"
}
}
],
"outbounds": [
{
"type": "direct",
"tag": "direct"
}
]
}
up_mbps 和 down_mbps 是 Hysteria2 拥塞控制使用的最大带宽参数,单位为 Mbps。应按照线路的实际可用带宽设置,不是填写得越大越好。服务端和客户端需要使用合理、匹配的带宽值。
限制配置文件权限:
sudo chmod 600 /opt/sing-box-hy2/config.json
六、创建 Docker Compose 文件
创建 /opt/sing-box-hy2/docker-compose.yml:
services:
sing-box-hy2:
image: ghcr.io/sagernet/sing-box:latest
container_name: sing-box-hy2
restart: unless-stopped
network_mode: host
volumes:- ./config.json:/etc/sing-box/config.json:ro
- /etc/letsencrypt:/etc/letsencrypt:ro
command: -D /var/lib/sing-box -C /etc/sing-box run
logging:
driver: json-file
options:
max-size: 10m
max-file: "3"
官方文档使用 ghcr.io/sagernet/sing-box 镜像。生产环境更稳妥的做法是先验证版本,再把 latest 改为经过测试的具体版本标签,避免上游更新后出现不兼容变化。
七、检查并启动服务
先让 sing-box 检查配置语法:
cd /opt/sing-box-hy2
sudo docker compose run --rm sing-box-hy2
-C /etc/sing-box check
确认没有错误后启动:
sudo docker compose pull
sudo docker compose up -d
sudo docker compose ps
sudo docker compose logs --tail=100 sing-box-hy2
检查 UDP 端口:
sudo ss -lunp | grep ':8443'
Hysteria2 使用 UDP,不能用浏览器、curl 或普通 TCP 端口检测来判断它是否正常。最可靠的验证方式是查看服务日志并使用配置正确的 Hysteria2 客户端实际连接。
八、客户端怎么配置
官方图形客户端包括:
Android:sing-box for Android
iOS、macOS、Apple tvOS:sing-box for Apple platforms
Windows、Linux:sing-box for Desktop
在图形客户端中新建 Hysteria2 节点时,各字段与服务端的对应关系如下:
客户端字段示例必须与服务端一致Server / 地址hy2.example.com是Port / 端口8443是Password / 认证密码服务端 users[].password是Obfs typesalamander是Obfs password服务端 obfs.password是TLS开启是Server name / SNIhy2.example.com必须匹配证书ALPNh3建议一致Allow insecure关闭生产环境应关闭
保存节点后,选择该配置并开启系统代理或 TUN/VPN 模式。只创建节点但没有启用系统代理或 VPN 模式时,系统流量不会自动经过该节点。
使用 sing-box JSON 客户端
下面是一份适合命令行或桌面端导入的最小客户端示例。它在本机 127.0.0.1:2080 提供 HTTP/SOCKS 混合代理:
{
"log": {
"level": "info",
"timestamp": true
},
"inbounds": [
{
"type": "mixed",
"tag": "mixed-in",
"listen": "127.0.0.1",
"listen_port": 2080
}
],
"outbounds": [
{
"type": "hysteria2",
"tag": "hy2-out",
"server": "hy2.example.com",
"server_port": 8443,
"up_mbps": 20,
"down_mbps": 100,
"obfs": {
"type": "salamander",
"password": "请替换为混淆密码"
},
"password": "请替换为认证密码",
"tls": {
"enabled": true,
"server_name": "hy2.example.com",
"alpn": [
"h3"
]
}
}
],
"route": {
"final": "hy2-out",
"auto_detect_interface": true
}
}
启动客户端核心后,把浏览器或操作系统代理设置为:
地址:127.0.0.1
端口:2080
类型:HTTP 或 SOCKS5
如果服务端使用自签名证书
更安全的做法是通过可信渠道把服务端的公开证书 cert.pem 传给客户端,并在客户端 TLS 配置中加入:
{
"enabled": true,
"server_name": "证书中的域名",
"certificate_path": "/客户端上的安全路径/cert.pem",
"alpn": [
"h3"
]
}
insecure: true 会接受任意服务器证书,容易受到中间人攻击,只适合短时间排障,不应作为正式配置。
九、日常维护
查看状态和日志:
cd /opt/sing-box-hy2
sudo docker compose ps
sudo docker compose logs --tail=200 sing-box-hy2
sudo docker stats sing-box-hy2
修改配置后,先检查再重启:
sudo docker compose run --rm sing-box-hy2
-C /etc/sing-box check
sudo docker compose restart sing-box-hy2
更新镜像:
sudo docker compose pull
sudo docker compose up -d
sudo docker image prune
十、常见问题
- 客户端一直超时
重点检查云安全组和 UFW 是否放行 8443/udp,以及服务端是否真的监听 UDP 端口。只开放 8443/tcp 没有作用。 - 出现证书验证失败
检查客户端 server_name 是否与证书域名一致、域名是否解析到正确 IP、证书是否过期。自签名证书还需要客户端显式信任对应证书。 - 日志提示认证失败
客户端的认证密码必须与服务端 users[].password 完全一致。用户名只是服务端用于区分用户,sing-box 的 Hysteria2 认证核心字段是密码。 - 开启 Salamander 后无法连接
客户端和服务端的 obfs.type、obfs.password 必须同时一致。排查时可以在两端同时暂时移除 obfs,不能只改一端。 - 节点连接成功但应用没有流量
确认图形客户端已启用系统代理或 TUN/VPN 模式。若只使用本地 mixed 入站,还需要把应用代理指向 127.0.0.1:2080。
总结
sing-box 是一个通用代理平台,Hysteria2 只是它支持的协议之一。部署成功的关键点并不多:服务端开放正确的 UDP 端口、两端认证与混淆参数一致、TLS 域名匹配,并在客户端真正启用系统代理或 TUN/VPN 模式。生产环境还应固定经过验证的镜像版本、限制日志大小、保护配置权限,并建立证书续期后的重启机制。
- 安装 Docker
-
兄弟们,有谁打通过支付通道有没有,好的易支付,官方的个人搞不了