常见问题
答案都写在这只狗的实际行为上,不写「敬请期待」。涉及隐私的那几条, 完整的说法在隐私策略里;涉及模型的部分在它的头脑里。
它怎么运行
它联网吗?
不联网。而且这不是一句承诺,是它被造出来的方式:程序里不含任何网络功能, 依赖表里也没有任何网络库——只有 serde、rand、rayon、chrono、flate2、image、eframe 和几个 Windows 系统接口。
所以它不只是「我们不发送」,而是没有一条可以把数据送出去的通道。
要注册账号吗?收费吗?
没有账号,不需要登录,没有云端,没有「订阅」。下下来是一个 exe,双击就有一只狗。
这个项目里没有价格与许可声明——所以这里不替你写一个。具体以你获得它的那个渠道为准。
有广告、遥测或崩溃上报吗?
都没有。没有使用统计,没有埋点,没有崩溃上报,没有广告,也没有任何第三方 SDK。
它没有可以上报的通道,所以这件事上没有可商量的余地。
它能看见我的屏幕吗?
只看一件事:它站在桌面上的时候(挂件态),会读自己背后 8 个点的像素颜色, 算一下这块背景是亮还是暗,好换接触阴影的颜色——不然白瓷色的狗放在浅色壁纸上会看不见。
不截图,看不到别的窗口里是什么,只在挂件态读,结果是「亮或暗」一个数,不写进磁盘。 做过节流:最快每 250 毫秒一次,位置不动时每秒一次。
你的数据
我说的话去哪儿了?
只写进 exe 同级的 maltese_state.json:你的设置、和它的对话、 它记住的几个词、小狗在桌面上的位置。旁边还有一份 .bak,文件万一坏了能自动回退。
排障日志 maltese.log 里写的是屏幕尺寸、DPI、窗口位置、模型加载耗时这类信息—— 不写你说的话,也不写它记住的词。写满一份会自动滚成 .log.1,只留最近两份。
它记得我说过什么?记多久?
最多 3 条,20 分钟有效期,说出口就抹掉。侧栏常驻一行 记得 累 · 吃饭, 你能一直看见它手里攥着什么。
这不是档案,是「同一次陪伴之内」。再长就变成档案,再短则重启一次就全忘光。 「忘掉这些」在设置里,随时可以清。
装上之后
第一次打开为什么停了一下?
内置的检查点压缩后 48.4 MB,解压开是一份 126.9 MB 的 JSON,要解析并建出权重—— 实测不到 1 秒(两次跑下来 941 ms 与 958 ms)。它在后台线程里做, 所以界面会先出来,状态点那时写着「正在加载模型」。
加载完状态点变成「模型已就绪」,发送键才可用。之后模型在内存里,不用再等。
Windows 说它不安全,拦住了
它是签过名的,但那是自签名——自签名挡不住 SmartScreen 和智能应用控制,那两者要的是云信誉或 CA 签发的证书。 所以你会看到「未知发布者」,第一次运行可能弹一个蓝框。
- 蓝框:点「更多信息 → 仍要运行」。它没有网络功能,也就没有办法把任何东西送出去。
- 智能应用控制:这一档更严,未签名的 GUI 子系统程序会被直接拦掉(作者本机实测 6/6)。 要么在「Windows 安全中心 → 应用和浏览器控制 → 智能应用控制」里关掉它, 要么从源码自己构建一份 console 子系统的版本。
想核对拿到的东西:右键 exe → 属性 → 数字签名;下载页也列了 SHA-256。
能装到 Mac、Linux 或手机上吗?
不能。它是 Windows 10 / 11 64 位专属。
它要直接落在一个 Windows 桌面上:无边框透明窗口、不占任务栏、置顶、系统托盘、读壁纸明暗、 系统级音效——这些不是换个平台就能凑合的东西。它没有网页版,也没有手机版。
支持触屏吗?
点得动,但没为触屏优化。界面里的目标尺寸是按桌面指针定的(心情胶囊 32px、右键菜单圆点 28px、开关 23px), 不是移动端那套 44px 的规矩——它本来就不是给手指用的东西。
键盘倒是完整的:挂件态下 Tab 聚焦小狗、方向键微调位置(Shift 加速)、Enter 说话、Esc 关闭。
能同时开两只狗吗?
不能。它用一个命名互斥体守着,第二个实例会直接退出(返回码 1)。
这不是偷懒:两只狗会抢着写同一份存档,最后谁的对话都不完整。
模型与源码
它能换别的模型吗?
能。把检查点丢进 exe 同级的 models/,它就会出现在左栏「模型」下拉里。 读不出来的那个不会被「认下来」——界面上的失败不该变成持久状态里的一句谎。
但词表要对得上:内置那份是 17,829 字。换一个词表小得多的检查点会明显吃力。 细节在它的头脑。
它说话怪怪的,是坏了吗?
没坏。内置那份是字符级续写模型,它经常不是在回答你,而是在接着你的话往下写。 项目里量过三份检查点、二十五组采样配置,没有一组是对话。
想让它稳一点:maltese.exe --no-model——不加载模型,回复走内置台词表, 用「意图 → 记忆 → 心情」三层结构回话。这是现在更稳的那条路, 在首页那一栏可以先试。
源码在哪?我能自己构建一份吗?
能,而且欢迎——项目里有完整测试(202 条单元 + 5 条集成), cargo build --release 就能出一份你自己的 exe。
但有一个前提:模型不在仓库里。 models/ 整个被 git 忽略,而 src/lib.rs 用 include_bytes! 把它编进 exe——所以不放模型是构建不过的。
另外一条纪律:跑测试用 cargo test --release,别只跑 --lib——有一条逐字指纹守卫挂在另一个 target 上, 漏掉它会让一条守卫红了都没人知道。