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 ...

May 11, 2025 · 2 min · 350 words · 词元

将 Cloudflare Pages 迁移到 Workers

最近 Cloudflare 宣布 Workers Static Assets 进入“普遍可用”阶段,并在博客里建议新应用都使用 Workers 而非传统的 Pages1。 词元的博客一直都是托管在 Pages 上的,之前就想实现 UA 分流,例如 cURL 访问就返回纯文字版本,浏览器访问就返回网页版,但是在纯静态的情况下基本不可能实现2。既然 Cloudflare 把 Workers 吹上天了,那就来试试到底有多神奇吧 🔥 🤔 等等! Pages 是静态资源托管,访问次数和流量都是无限的;Workers 则需要执行用户脚本,免费版本每天限制调用 100,000 次。虽然看着很多,实际上也用不完,但是考虑每一个请求都需要计入,是不是有点浪费? 确实 😭 词元还有很多其他的 Workers,共享十万次请求,着实有点害怕(serverless 都能被 DDoS 到下线 😅)。但是考虑到 Workers 广阔的开发空间,以及 Cloudflare 的承诺“新功能都给 Workers”,词元决定玩一下,把博客转移到 Workers。 就算哪天发现不好用或者出事儿了,迁移回来也很方便嘛 😇 ⛅ Wrangler Wrangler 是 Cloudflare 提供的 Workers 开发工具,可以快速构建项目初始设置,还能在本地模拟运行一个 Workers 实例;总之就是我们必须要用。 Wrangler 基于(万恶的)Node.js 开发,所以您得先装个 Node.js 和 npm。然后,找一个风水宝地,执行: 1 npm create cloudflare@latest -- bug-barrel 嗯,词元决定将博客的名字还是改回原来的“桶装幺蛾子”,因为谷歌上“词元计数器”就算全文匹配都搜不到自己的博客 🤣 在接下来的几个选择中,我们分别选中“Hello World Example”“Worker only”和“JavaScript”,当然语言您可以选择自己的喜欢的,不过注意 Python 只支持 PSL 里的库。 ...

May 1, 2025 · 3 min · 432 words · 词元

零成本搭建 AI QQ 机器人

🌩️ 太长不读:用 Cloudflare Workers 搭建代理白嫖 Gemini,然后用 AstrBot 和 NapCat 接入 QQ,实现零(低)成本的 AI QQ 机器人。 🏛️ 首先要有 Gemini Google 是为数不多的开放免费大语言模型 API 的提供商,但是很可惜,与其他 Google 服务一样,在国内是无法直接访问的。考虑到低成本这个要求,我们使用 Cloudflare Workers 搭建一个代理,实现国内访问。 当然如果您有境外服务器,那更好,直接在 NGiNX 里用常规方法添加反向代理。您都有服务器了,就不需要词元教您了吧 😁 目前 Gemini 对 gemini-2.0-flash 提供了每天 1500 次免费请求,而 Cloudflare Workers 则有每天 1000 万次免费请求,对于个人用户,如果您不把机器人拉近好几个大群,肯定是绰绰有余的。 首先,您要有个 Google 账号,还有 Cloudflare 账号,都不需要绑定信用卡——相信您可以自己搞定。另外还得有个域名,在 NameSilo 上可以买个 .top,十几块一年,还能用支付宝。 然后,去 Google AI Studio,创建一个 token,复制备用。 Gemini 这边就结束了,接下来去 Cloudflare 创建一个 Worker。 然后,选择 Hello World 项目,创建一个空项目,随便起个名字。建立成功之后选择“编辑代码”,粘贴以下的 JS 代码。 ...

March 30, 2025 · 3 min · 509 words · 词元

用 Plymouth 替换开机日志

默认情况下,Arch Linux 开机会展示 Linux 内核和 systemd 的日志。尽管出现问题时用这些日志排查很有用,但是每次开机,都看到一堆文字滚动,夹杂着几个报错(没有内核签名啊,无法更新钥匙环啊),还是不大舒服。 Fedora 的开发者照着 Windows 和 macOS,搞了个 Plymouth:它可以像这几个操作系统一样,显示开机画面。正好词元之前换到了 systemd-boot,可以默认禁用菜单,开机过程更加简洁了;现在再关掉日志,看起来也更舒服些。 那今天,就来装个 Plymouth 玩玩。 👄 安装 Plymouth 由于 Plymouth 已经进入 freedesktop.org 的官方资源,安装非常简单: 1 sudo pacman -S plymouth 然后,为了让内核和 systemd 在启动时不要显示日志,需要修改一下内核参数。您如果使用 systemd-boot,可以修改启动条目 /boot/loader/entries/*.conf,在内核参数末尾添加: options ... splash quiet 若您还是会看见一些日志,那是因为 dmesg 显示了一些它认为“重要”的日志。添加或修改日志等级即可: options ... loglevel=3 0 是最严重的错误,而 7 是调试信息,3 基本上就是只显示报错。 您当然也可以复制一份条目,然后删除 splash 和 quiet 并填写 loglevel=7,添加参数 plymouth.enable=0 disablehooks=plymouth 禁用 Plymouth,作为调试启动参数。 您还需要将 Plymouth 添加到 mkinitcpio 的生成参数里,以便生成包含 Plymouth 的 initramfs。编辑 /etc/mkinitcpio.conf,找到以下行: ...

February 1, 2025 · 1 min · 130 words · 词元

用 systemd-boot 替换 GRUB

systemd-boot 是一个易于配置的 UEFI 启动引导管理器。相比于更加常见的 GNU GRUB,它有以下优缺点: 轻量灵活,功能和界面都很精简,配置文件很好写(GRUB 的配置文件甚至需要 grub-mkconfig 转译)。 是一个原生的 EFI 应用程序,只使用固件功能。这导致了下一条的功能缺失。 缺乏 GRUB 的一些功能,例如不支持主题、不支持文件系统读写(FAT 等 EFI 固件支持的除外);对于 BTRFS 用户来说,还不支持直接从 BTRFS 子卷启动(只能写内核参数)。 似乎有些同学认为 systemd-boot 界面比 GRUB 好看。 对词元来说,由于不需要 Windows 双启动,也不怎么使用 BTRFS 子卷启动的功能,systemd-boot 的功能足矣。因此,今天就来删掉 GRUB,安装 systemd-boot。 📦 安装 systemd-boot 在 Arch Linux 上,systemd-boot 是 systemd 的依赖,而后者又是 base 包组的依赖,因此您应当已经安装了 systemd-boot,可以通过 bootctl 配置。 首先,将 systemd-boot 安装到 /boot: 1 sudo bootctl install systemd-boot 默认您的 ESP 分区是 /boot、/boot/efi 或 /efi。 如果您的输出中包括以下警告: ...

January 31, 2025 · 2 min · 350 words · 词元

使用 acme.sh 获取泛域名证书

Caddy 虽好,但是要让它使用 Cloudflare API 处理 DNS 验证,还非得重新编译一次。而且,词元发现 Caddy 直到目前都没有充足的第三方文档(尽管其官方文档很好),对于一些特殊需求到底该怎么写配置还是不甚清楚。因此,词元决定换用另一个可以自动续期的 SSL 申请工具,综合一下 Caddy 的功能和 NGiNX 的性能和资料优势。 很明显,这个工具就是 acme.sh。 😁 这个长得很像网址的名称确实是一个网址,直接重定向到 GitHub 仓库。 📦 安装 为了不要污染用来日常操作的账号,也防止 sudo 权限被滥用,我们新建一个普通用户: 1 2 sudo useradd -m certbot sudo passwd certbot 🤖 Certbot:你礼貌吗? 然后,使用 acme.sh 的安装脚本安装。注意这里不需要 Root 权限,安装位置也在主目录下: 1 curl https://get.acme.sh | sh -s email=you@example.com # 改为您的邮件 目前 acme.sh 已默认从 Let’s Encrypt 转为使用 ZeroSSL,后者需要邮箱地址进行注册,所以如果您打算使用默认设置,您需要添加 email=you@example.com 这一部分。如果您打算使用 Let’s Encrypt,可以忽略这个设置。 🏅 申请证书 首先要激活一下在 .bashrc 中添加的 $PATH 位置: 1 . .bashrc 如果您打算使用 Let’s Encrypt,请执行: ...

January 26, 2025 · 1 min · 180 words · 词元

使用 SSH 公钥登录服务器并禁用密码

😠 太长不读:生成 SSH密钥,上传到服务器,然后禁用密码登录。(好像是废话) 🔒 生成 SSH 密钥 以下使用 $ 符号代表本机执行,> 符号代表服务器执行。 $ ssh-keygen # 旧版本需要添加 `-t ed25519` 参数 Generating public/private ed25519 key pair. Enter file in which to save the key (/home/YOUR_USER_NAME/.ssh/id_ed25519): # 可以自定义位置,也可以直接回车 Enter passphrase for "example" (empty for no passphrase): # 输入密码(不显示),不建议空密码 Enter same passphrase again: # 再输一遍 Your identification has been saved in id_ed25519 Your public key has been saved in id_ed25519.pub # 带有 .pub 的是公钥 The key fingerprint is: SHA256:SOME_STRANGE_STRING YOUR_USER_NAME@YOUR_HOST_NAME # 你的公钥指纹 The key's randomart image is: # 根据公钥生成的随机图像 +--[ED25519 256]--+ | SOME | | STRANGE | | IMAGE | | | | | | | | | | | | | +----[SHA256]-----+ $ ls .ssh id_ed25519 id_ed25519 # 可能还有其他文件 ⬆️ 上传到服务器 首先确保你当前可以使用密码登录一个非 root 的账号。 ...

December 15, 2024 · 2 min · 230 words · 词元

搭建自己的代理服务器

😡 太长不读版:使用 VLESS + WebSocket + TLS 方案、Cloudflare CDN 保护、Cloudflare WARP 解锁服务,在 RackNerd 的 10.99/yr 起廉价服务器上搭建一个安全、隐私、不易封的代理服务器。无广告,很详细。 本文如未特殊提及,货币单位均为美元。好吧,其实是会被 KaTeX 识别成数学公式…… 各位想必都已经混迹互联网十余载,对于这门技术有所耳闻,甚至自己购买过机场的订阅,在外面的世界已经遨游过一番了。今天词元就讲一个老生常谈的问题:老是觉得那些机场主都不可靠,我能不能自己搭一个? 首先在文章开始之前,国际惯例,对于几个常见误解进行声明: 词元没有收一分钱;相反,还因为购买服务器和域名花了 30 多,本文请放心食用; 搭建代理服务器是一个比较复杂的过程,您应当有最基本的 Linux 使用能力,对网络相关知识有一定了解; 无论是自建的代理还是机场,总有被封或跑路的一天,您的钱若打了水漂,词元不负责。 12 月 28 日更新:删去了大段大段没啥用的安全性分析。 👌 我知道了,开始吧 准备好了?让我们先看看大概要做什么。 购买 RackNerd 服务器; 购买 Namesilo 域名并用 Cloudflare 托管; 服务器初步设置,对于建站比较通用; 搭建代理服务器,此时您已经可以使用代理了; (可选)使用 Cloudflare 的 CDN 和 WARP 服务,对服务器前后流量进行优化; (可选)安全性和速度提升(0x06 节)。 词元趁着双十一购买了服务器和域名,总价 27.86(¥200.87,按照支付宝和 Stripe 的汇率),如果您不幸地在没什么活动的时候看到这篇文章,也可以选择到 RackNerd 社区去找找优惠,下面会说到。如果没有什么意外(不可能),搭建时间会在 30 到 40 分钟。 💵 花钱 其实词元一直都想哪次出国旅游,把台式机带着,找个角落连上网线和电源,就这么免费享受家宽加上超高性能。当然是瞎想了。 首先我们来到 RackNerd。活动期间会有首页横幅,点击进入即可。RackNerd 的老板据说是华人,除了北美常见节日有活动,双十一、春节等等国内节日也有,并且优点是续费可以原价。如果有可能的话,就在双十一前后买,这样到期之后重新购买,相当于免费换一个 IP。 ...

November 17, 2024 · 4 min · 826 words · 词元