DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

AirPineApplea /

AirPineApplea/feiyu-chat-companion

Verified

给 DeepSeek Harness 的桌面桌宠:一只住在屏幕上的鲸鱼娘,会自己开口、能右键问一句。一句话 0.1 分。

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@505ba446

feiyu-chat-companion · 肥鱼陪聊

一只永远待在桌面上的桌宠。她不属于任何窗口,能拖、会眨眼、头顶弹气泡说话;看见你停在某个页面十秒,会自己开口说一句。右键能问她一句话。

独立实现,不依赖 dsh-pet。


前置条件

项 要求 说明
系统 Windows 10 / 11 用了 Win32 layered window,别的平台跑不了
DSH 0.2.x(桌面版) 插件用 dsh.bundle.patch 挂载
Python DSH 自带的那份 不用另装,Host 会去 resources/runtime/primary-runtime/dependencies/python 找
Python 包 Pillow、numpy、tkinter DSH 自带,不用管
Python 包 uiautomation 要手动装,见下。不装也能跑,只是读不到 B站 BV 号

装 uiautomation(B站 特化要用)

用 DSH 自带的 Python 装,别用系统 Python:

& "C:\Users\<你>\AppData\Local\Programs\DeepSeek Harness\resources\runtime\primary-runtime\dependencies\python\python.exe" -m pip install uiautomation

不装会怎样:桌宠照常工作,但只能拿到窗口标题,读不到地址栏,也就没有 BV 号——看 B站 时它只能凭标题猜。


安装

git clone <本仓库>
dsh plugin --profile desktop add "link:D:\你的路径\feiyu-chat-companion"

装完重启 DSH。 Host 是服务端代码,启动期加载。

侧栏会多出一个「肥鱼陪聊」,排在「肥鱼日记」后面。


她会做什么

能力 说明
待在桌面上 置顶、不进任务栏、不抢焦点。全屏独占地盘盖不上去(系统限制)
拖动 按住拖,撞到屏幕边缘贴住,不会拖丢
眨眼 随机 2.5~6.5 秒眨一次
说话 头顶气泡,宽度自适应,顶到天花板翻到脚下
自己找话说 你停在某个窗口 10 秒,她会说一句
问一句 右键 → 问她一句 → 打字回车,答案回到气泡里
念出来 装了语音插件时,她的话可以真的出声(见下面的联动)
记住位置 拖到哪,下次还在哪

设置

侧栏「肥鱼陪聊」面板里:

项 可选 说明
启动 / 关掉 — 关掉是真退出进程,不会自己回来
显示 露着 / 藏着 藏着是隐藏窗口,进程还在
说话 会出声 / 已暂停 暂停后不弹气泡,但话不会积压
归位 — 挪回右下角
换一条短会话 — 丢掉她现在的记忆,建一条新的(见「她有自己的会话」)
说话频率 低 / 中 / 高 低:15 秒一句,同页 60 秒可再说
中:2 分钟,同页 5 分钟
高:10 分钟,同页 1 小时
回话长度 短 / 中 / 长 短 ≤20 字、中 ≤45 字、长 ≤80 字
看什么 只看标题 / 标题 + B站内容 默认只看标题。选后者时,看 B站 视频会额外拿 BV 号去翻字幕和评论
朗读 会念出声 / 只冒气泡 只有装了语音插件才出现这一行,没装就整行不渲染

右键点她也能开同一个菜单(问她一句 / 归位 / 暂停说话 / 退出)。

设置存在 ~/.dsh/storages/feiyu-chat/settings.json,改完即时生效(Host 每 2 秒读一次)。


问她一句

右键她,菜单第一项是「问她一句」。弹一个小输入框,打字,回车。Esc 取消。

  • 提交后气泡先冒一个「…」,二十秒内答不出来会说「想太久,我放弃了」。
  • 答案在气泡里停 14 秒,朗读开着的话同时念出来。
  • 问完就关,不留聊天记录。想再问就再点一次——这样最省。

一次问答 = 她那条短会话多一轮,价钱和她说一句话一样。


她怎么知道你在看什么

桌宠(每秒)   GetForegroundWindow + GetWindowText  →  foreground.json
              标题变了才去读地址栏(UIA,0.7 秒,后台线程)
              B站 视频页 → 提取 BV 号一起写进去

Host(每 2 秒)读 foreground.json
              停够 10 秒?冷却过了?这窗口刚说过没?
              → 送进她自己那条短会话

她自己        用 pet_say 说一句

桌宠           读 say.json → 弹气泡

只看窗口标题,不读页面正文。唯一的例外是 B站 视频页——有了 BV 号,模型可以自己去拉字幕和评论。

不说话的窗口:DSH 自己、Program Manager、无标题、设置页。


她有自己的会话

这一点最重要:她说的话不挂在你的对话上。

以前的坑是:桌宠每说一句,都要把你那条几十万 token 的会话整个重算一遍,一句三分钱。现在她第一次要开口时会自己开一条空会话(~/.dsh/feiyu-chat-voice),从零开始,只装「看着窗口说一句」这点活。

  • 攒够 30 句自动换一条新的,免得它自己长回去。旧的那条留在磁盘上,不会再更新。
  • 侧栏会多出一个 feiyu-chat-voice 分组,那是她的会话。点进去能看到她背着你都嘀咕了什么。
  • 面板上的「换一条短会话」可以随时手动丢掉重来。

花多少钱

实测数据,模型 deepseek-flash,推理档位 off,回话长度开「长」(最贵的一档):

场景 token 花费
刚开的新会话说第一句 10,529 0.53 分(含第一次写缓存)
之后每句(稳态) 1.2 万~3.2 万 0.10~0.14 分
上下文 3.2 万 32,483 0.135 分
一条会话跑满 30 句 — 约 4 分
一天说 60 句(两条会话) — 约 8 分,不到一毛

0.53 分只能用来算第一句。 它包含第一次写缓存的钱,之后每句只有 0.1 分左右。拿首句单价乘句数会把总价高估四倍。

两个反直觉的地方:

  • 上下文涨,价钱涨得很慢。 从 1.2 万涨到 3.2 万(+154%),价钱只从 0.10 分涨到 0.135 分(+35%)。因为新长出来的那段是对话历史,缓存命中后便宜得多。
  • 贵不贵不看「读了多少内容」。 她去看字幕、翻评论,那点 token 只占千分之一。真正决定价格的是回话长度——输出 token 比输入贵好几倍,而且永远不缓存。

对比一下:同一句话如果挂在一条 128 万 token 的主会话上,是 3 分。差六倍,全部来自「不用背你聊过的话」。


和别的插件联动

肥鱼日记(feiyu-memory)

装了,她就有记忆和人格;不装,她就是一只没有记忆的桌宠。 就这么简单。

  • 肥鱼日记监听 agent/created,给每个新会话挂一段个人设定。她那条短会话也是这么被挂上的,所以她说起话来是「那条鱼」,不是通用助手。
  • 这不是依赖关系。feiyu-chat-companion 的 package.json 里没有 feiyu-memory,两边的 inject 也不重叠。桌宠只用 DSH 自带的 tools、webServer、connection、agents 四个口子。
  • 你把肥鱼日记停掉:桌宠照跑、照说话、照收钱,只是语气变成一台普通的 AI。

语音(@memef1f1y/dsh-plugin-tts)

装了,「念出来」那一节才出现。

  • 探测方式:看它的客户端有没有把 window.__dshTtsSettings 挂上。没有就当它不在,整行不渲染(不是灰按钮——灰色会让人以为坏了)。
  • 音色、引擎、语速全部跟随语音插件自己的面板:Edge TTS / RVC / Index-TTS2 / CosyVoice / Google Cloud 都跟着走。
  • 声音是在网页里放的。桌宠是独立的 Win32 窗口,没有播放器,所以—— 网页关掉,她照样在桌面冒气泡,只是没声音。
  • 浏览器可能拦自动播放:第一次没声,先在页面上随便点一下。

已知限制

  • 只在 Windows 上跑,而且只测过 Windows 11 + DSH 0.2.1-rc.2
  • 全屏独占的游戏盖不住:那种模式下任何窗口都在下面
  • DSH 刚重启后需要一次会话活动:重启后第一个 agent 出现之前,攒着的话发不出去(两分钟内有效)
  • 声音只在网页开着的时侯有:见上面的语音联动
  • B站 特化只认 bilibili.com/video/BVxxxx,直播页没有 BV 号
  • 她看窗口只看标题,不读正文(B站 视频页除外,读的是公开的字幕和评论)

数据在哪

~/.dsh/storages/feiyu-chat/
├── state.json        窗口位置、静音状态
├── settings.json     频率档、回话长度、看什么、朗读
├── control.json      Host → 桌宠的遥控指令
├── say.json          Host → 桌宠的「要说的话」
├── ask.json          输入框 → Host 的「问一句」
├── foreground.json   桌宠 → Host 的「前台是什么」
└── debug.json        诊断留痕(卡住的时候看它)

Host → 桌宠走文件,不走 HTTP:桌宠每 60ms 看一眼 mtime,变了就播。这样两边解耦,别的插件也能往 say.json 写一句话让她开口。

HTTP 路由前缀是 /feiyu-chat(/state、/config、/voice),需要 DSH 的会话凭证,从浏览器里调用即可。


许可

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit 505ba4469b5c

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout