dsh-pet-watch
Verifieddsh-pet-watch · v0.3.2 · MIT · Web UI
桌宠陪看:定时截屏,让视觉模型点评你正在看的画面,投喂给 dsh-pet 的气泡。Pet watch-along for DSH: screen sampling + a vision model + dsh-pet's bubble.
Install
dsh plugin add dsh-pet-watch Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
Tags
Creators
Readme
dsh-pet-watch · 桌宠陪看
给 dsh-pet 加一双眼睛:定时截屏 → 视觉模型点评 → 从桌宠气泡里说出来。
你看视频、打游戏、写代码的时候,它会跟着说一句。不是聊天机器人,是个会看屏幕的伴儿。
前置要求:必须先装
dsh-pet。本插件只负责"看"和"说",气泡是 dsh-pet 画的。
安装
dsh plugin --profile desktop add dsh-pet-watch
装上后重启一次 DSH。设置里会出现「桌宠陪看」一页。
依赖
- dsh-pet ≥ 0.3.7
- Python ≥ 3.10,且要有 Pillow:
插件会优先用 DSH 自带的 Python,找不到再退到 PATH。python -m pip install pillow
验证装好了
curl http://127.0.0.1:<你的 GUI 端口>/dsh-pet-watch/health
# {"ok":true}
ok:false 会带原因,多半是 dsh-pet 没装或版本不兼容。
设置项
| 字段 | 默认 | 说明 |
|---|---|---|
| 启用陪看 | 开 | 总开关 |
| 采样间隔 | 12–15 秒 | 越小越跟得上,也越费钱 |
| 动作避让 | 25 秒 | 你在 dsh-pet 里点播动作后,它暂停不打扰 |
| 开口概率 | 45% | 没抽中的那轮直接跳过,不截屏也不调模型 |
| 最长沉默 | 60 秒 | 防冷场的强制上限 |
| 场景动作 | 开 | 识别到场景后播一段对应动作 |
| 记忆句数 | 5 | 记住最近说过/看到过的几句,防重复 |
| 目标桌宠 | main | dsh-pet 里的 pets[].id |
| 风格提示词 | 空 | 留空用内置人设 |
| 截图长边 | 1280 px | 越小越省 token |
| 看图模型 | deepseek-flash | 必须支持图片输入 |
设置页顶部会显示每小时花费估算(区间,因为推理长度会浮动)。默认配置大约 2–4 分钱/小时。
它是怎么工作的
每 N 秒
├─ 截全屏 → 缩到长边 1280 → JPEG
├─ 发给视觉模型,要它返回:
│ {scene, comment, intensity, gist}
│ scene = 你在干什么(playing / watching-game / coding …)
│ comment = 那句吐槽
│ intensity = 这一帧有多值得说(0-10)
│ gist = 这一帧在发生什么(留给下一轮,串起前后文)
├─ 按开口概率决定说不说
└─ POST 到 dsh-pet 的 /broadcast → 气泡
几个设计取舍:
- 截图是唯一的内容来源,不做网页抓取、不搜索。
intensity会反过来调节下一轮的开口概率:画面热闹时更愿意说,安静时自己闭嘴。- 动作避让:dsh-pet 每次说话都会强制播一段碎碎念动画,会顶掉你点的动作,所以点播后暂停一段时间。
- 记忆只活在进程里:重启 DSH 就清空,不做跨会话记忆。
已知限制
- 依赖 dsh-pet 的私有接口。
/dsh-pet-7340/broadcast不是公开 API,dsh-pet 升级可能改掉。插件会做健康检查并在设置页提示,但无法自动适配。 - 截全屏,包括你屏幕上的其他窗口。含敏感内容时请关掉。
- 切到别的应用后它仍然在看,会点评你当前界面(这是特性,不是 bug)。
- 推理模型偶发空回复,已内置重试;极少数情况下那一轮会静默跳过。
开发
git clone <repo>
cd dsh-pet-watch
# 本地安装(link,改代码后重装即生效)
dsh plugin --profile desktop add "$(pwd)"
改 index.js / client.js 后需要重启 DSH;改 watch_loop.py 只需在设置页点一次保存(会重启子进程)。
许可
MIT。图标与文案原创。