分享链接
聊天标题栏中的分享会创建链接,让其他人可以与角色交谈,例如:
- 朋友评判 AI 以你的风格写作的水平;
- 朋友与他自己的副本交谈。
链接的形式是 https://<你的主机>/s/<名称>。访客只能看到聊天:没有侧边栏、设置、笔记、媒体描述、提示词、token 用量或其他聊天。
选项
| 选项 | 默认 | |
|---|---|---|
| 谁可以打开 | 本机 | 编辑器中的 Wi‑Fi 和互联网开关(见下文) |
| 链接 | 随机 | 选择一个名称,例如 alex |
| 显示名称 | 角色名称 | 导出中的真实姓名不会显示 |
| PIN | 无 | 4–64 个字符,以 Argon2id 哈希存储。✨ 生成 6 位数字 |
| 对话 | 私密 | 私密:每位访客一个对话。共享房间:所有人在同一个对话中 |
| 访客可以阅读导出内容 | 无 | 无、最近 N 条消息,或全部 |
| 限制 | 50 位访客,每人 200 条回复 | 每条回复都会消耗你密钥的 token。0 = 无限制 |
| 访客可以让对方先说话 | 关闭 | 显示 💬 按钮:角色发送一条消息,而访客无需输入任何内容 |
| 访客可以重写回复 | 关闭 | 显示 ↻ 按钮:角色的上一条回复会被重新生成。两者都会消耗限制中的一条回复,并且在关闭时服务器会拒绝 |
| 过期 / 有效 | 从不 / 开 | 暂停或过期一个链接,而不删除它 |
| Telegram 群组 | 关闭 | 从 Telegram 回复 |
在分享对话框中,你可以阅读每个访客的对话,并结束某个对话以撤销它。每位访客都会显示他最后一次发送消息时所用的地址;结束对话时,同时屏蔽会把该地址排除在链接之外(起始页、新对话以及已打开的对话),直到你取消屏蔽。在共享网络中,一个地址可能对应多个人。地址与链接一起保存,仅保存在你的电脑上。
角色与谁交谈
访客不是你。当 Mia 打开你的链接时,角色知道Mia 正在写,知道链接来自你,并且知道历史和你的笔记是关于你和他们的,而不是关于 Mia:它会把她当作一个新人。没有名字的话,她就只是一位客人。
| 角色看到的内容 | |
|---|---|
| 私密链接 | 与访客的一次对话,使用他提供的名字(或“访客”) |
| 共享房间 | 群聊:每条消息都带有发送者的名字,人们可以随时加入 |
| 你的导出历史 | 你的消息使用你的名字,之后是访客的消息,确保两者绝不会混淆 |
系统提示词在每次对话中都是固定的,因此提供商会缓存它:访客的名字在对话开始时就确定了,而在房间中,名字会随消息一起传递。与角色或你同名的访客会变成例如“Alex(访客)”,房间中第二个“Ann”会变成“Ann 2”。
邀请
| 链接 | 打开的内容 |
|---|---|
/s/alex | 起始页 |
/s/alex#pin=2468 | 立即打开聊天。PIN 位于 # 之后,因此它永远不会发送到服务器或日志中 |
/s/alex#name=Greg&pin=2468 | 相同,但访客名称已填好(?name=Greg 也可以) |
链接的 QR 按钮会为每个可用的地址打开一个二维码,供手机扫描。保存后,复制带 PIN 的邀请会复制包含 PIN 的链接。
在其他设备上打开链接
在服务器上,链接直接使用服务器的地址。桌面应用(以及 127.0.0.1 上的 rooftop)只在你的电脑上运行,因此分享对话框和链接编辑器有两个开关。每个开关都会显示已启用、连接中或无法工作,编辑器会立即显示链接将使用的地址。
┌──────────── 你的电脑 ─────────────────┐
Wi‑Fi 上的手机 ────▶│ :8737 仅访客页面 │
│ │
任何人 ──▶ 名称.iroof.top ══ 一条出站 WebSocket ══▶ 应用 │
│ │
│ 127.0.0.1 所有者界面、设置和 API │
└───────────────────────────────────────┘| Wi‑Fi 和本地网络 | 互联网 | |
|---|---|---|
| 地址 | http://<你的 IP>:8737/s/<名称> | https://<名称>.iroof.top/s/<名称> |
| 谁 | 同一网络上的设备 | 应用运行期间的任何人 |
| 方式 | 只提供访客页面的第二个监听器 | 通往中继的一条出站 WebSocket;互联网上没有任何东西在监听 |
| 你的数据 | 保留在你的电脑上 | 保留在你的电脑上,但访客消息会经过中继 |
- Wi‑Fi 端口在重启之间保持不变,因此打印出来的二维码仍然有效。在 macOS 上,如果防火墙询问,请允许传入连接。
- 互联网名称由你选择并可以更改(地址旁边的更改)。中继只转发
/s/…、/api/s/…和页面资源,在两个方向上丢弃 Cookie,并在应用关闭时显示一个“离线”页面。 - 想用你自己的中继代替 iroof.top?参见中继服务器。
- 离线模式会关闭并锁定互联网开关;Wi‑Fi 仍然可用。中继能看到什么:离线与隐私。
保护
| 保护 | 限制 |
|---|---|
| 同一 IP 的错误 PIN | 5 次后:锁定 1 分钟,然后 2、4……最长 1 小时 |
| 同一链接上的错误 PIN,所有 IP | 15 分钟内 20 次:锁定 5 分钟,最长翻倍至 24 小时 |
| 每位访客的消息 | 每分钟 30 条,每分钟 10 条回复 |
| 新对话 | 每个 IP 每小时 20 个 |
计数器保存在内存中。6 位 PIN 无法在合理的时间内被猜中。在反向代理后面,请设置 ROOFTOP_TRUST_PROXY=true,以便计数器看到真实的客户端 IP。
访客会话使用 /s/<名称>/<令牌> 中一个随机的 26 个字符的令牌,它由浏览器记住,并通过 Referrer-Policy: no-referrer 防止泄露。访客只能加载他们有权查看的媒体。