dsh-select-assist:Windows 系统级划词,用 DSH 解释、总结、翻译与朗读

前言

在 DeepSeek Harness(DSH)里查资料、写提示词时,经常要在浏览器、IDE、文档或聊天窗口里选中一段字再问模型。把文字复制进侧栏对话能问清楚,却会打断当前任务,还可能把剪贴板搅乱。第三方划词工具有的依赖浏览器浮层、有的常驻额外进程,和 DSH 自己的模型与主题也不一定能对齐。

下面介绍社区插件 划词助手(包名 dsh-select-assist,维护者 germyGao)。它在 Windows 上提供系统级划词:在任意应用里选中文字即可弹出菜单,用 Harness 做解释、总结、翻译或朗读,结果落在可拖动、可缩放的置顶原生浮窗里;默认尽量通过 UI Automation 取词,不污染当前 DSH 对话。插件归类为 客户端,在 SkillHub 目录 可查看条目;源码与说明见 GitHub(MIT,当前包版本 0.9.0)。SkillHub 与 DeepSeek / 幻方无官方从属关系,目录是社区生态的一部分。

这是什么

dsh-select-assist 是面向 DSH 的 bundle 插件:Cordis 侧注册 API 与设置页,另有一个 伴生进程(Node + DSH 自带的 koffi FFI)负责全局鼠标手势、UI Automation 取词,以及 Win32 分层窗口 + GDI+ 自绘的菜单与回答面板。构建产物已入库,从 GitHub 安装无需本地编译;运行时 无额外运行时依赖,不启动浏览器进程。

项目基于 fyisgod/dsh-selection-tools(MIT)扩展,增加了总结、直连引擎、朗读与四段划词菜单,并修复了菜单偶发不弹、回答窗位置固定等问题。

核心功能

系统级划词与四段菜单

在任意 Windows 应用里拖选或双击选词后,以选区右下角为锚点、在第四象限弹出横向菜单:解释 / 总结 / 翻译 / 朗读。点击后打开置顶悬浮窗,流式显示回答(解释、总结、翻译走模型;朗读用 Windows SAPI,读的是选中原文)。

菜单默认 3.6 秒 超时,也可按 Esc 或点别处收起;同一份选区只弹一次菜单,收起后旧选区仍留在页面上也不会重复弹出,只有重新划词才会再出菜单。回答窗口与菜单独立:只有标题栏关闭才会消失,新划词不会自动关掉已有回答窗。

取词、上下文与剪贴板策略

手势落下时,主路径用 UI Automation 一次读取「选中文本 + 选区所在段落」,用于自动带上下文(类似「划词解释带段落」的体验);点菜单项时才把选区与上下文交给模型。全程 尽量不碰剪贴板——菜单在选手势结束即弹出,不再依赖「先 Ctrl+C 取到词才弹菜单」。

仅在 UIA 读不到选区、或需要核实是否真有选中文字等场景,才可能注入一次 Ctrl+C 作兜底,并尽量还原用户原剪贴板;用户正按 Ctrl+C、或取词期间用户自行复制时,插件不写入剪贴板。环境变量 DSH_SELECTION_CONFIRM=0 可关闭部分确认性剪贴板注入。控制台窗口默认跳过取词(避免 Ctrl+C 被当成中断)。

总结、翻译与浮窗交互

总结:先一句核心结论,再列要点;原文有章节、列表等结构时尽量保留层次。翻译:词/短语走词典式输出(最佳翻译、音标、其他译法等);句子/段落先整段译文,必要时附关键术语说明。规则与默认翻译语言等可在设置页修改。

回答窗标题栏(从右往左)提供关闭、复制回答、朗读原文;窗体可拖动,四边四角可缩放。系统级浮层用 GDI+ 自绘 markdown-lite;DSH 页面内划词则走 shell.overlay 保底路径,用官方 Markdown 渲染,系统级不可用时自动让位。

两种回答引擎

在「设置 → 划词工具」里可切换 engine:

模式 行为 取舍
direct(默认) 插件经宿主 llm 服务流式调模型,不建 DSH 会话 延迟低、真流式;无系统提示与工具,划词不进侧栏,不能点进追问
agent 经 ctx.agents 跑完整 agent 回合,每次划词为新会话,跑完不归档,可进侧栏「未分组」追问 首字需等整轮;具备完整会话与工具能力

朗读语速、音量及解释/总结/翻译所用模型与推理等级等同页配置,写入 DSH_HOME/dsh-select-assist.json,改完立即生效。

安装与启用

官方推荐从 GitHub 一行安装(须使用资料中的完整命令):

dsh plugin --profile web add "github:germyGao/dsh-select-assist"

本地已有仓库目录时,可在该目录执行 dsh plugin --profile web add .。安装完成后 重启 dsh web(或重启承载它的桌面端),bundle 在启动时合成。

卸载与更新:

dsh plugin --profile web remove dsh-select-assist
dsh plugin --profile web update

自检伴生进程与 API 是否就绪:

curl http://127.0.0.1:3080/api/dsh-select-assist/ping
curl http://127.0.0.1:3080/api/dsh-select-assist/system/status

system/status 中 companion.state 应为 running。仅改伴生进程/浮层相关代码时,可通过 POST /api/dsh-select-assist/system/restart 重启伴生进程,而不必重启整个 DSH(详见仓库 README)。

典型用法

  1. 确认 DSH 已用上述命令装好插件并重启 dsh web。
  2. 在记事本、浏览器或 IDE 中拖选或双击选中一段文字,等待右下角四段菜单出现。
  3. 点 解释、总结 或 翻译,在置顶浮窗中查看流式结果;需要追问时在设置里改用 agent 引擎,再到侧栏打开对应会话。
  4. 点 朗读 听原文;需要改目标语言或提示词时,打开 DSH 设置 → 划词工具 调整规则与模型。
  5. 若只在 DSH 窗口内划词,系统级能力关闭或未装 koffi 时,同一套菜单会由页内 overlay 接管。

适用场景与注意

适合在 Windows 上长期用 DSH 模型处理阅读场景:快速查词、读长文要点、翻译段落,且希望结果浮在当前应用之上、少动剪贴板与侧栏对话。插件以 当前 dsh 进程权限 运行,伴生进程监听全局鼠标并调用 UIA;安装前建议阅读源码与 MIT 许可证,自行评估企业环境与敏感应用是否允许此类能力。

平台:仅 Windows(README 徽章与说明均标明 platform-Windows)。分类:客户端插件,需 --profile web 安装路径与 DSH Web/桌面端配合。

部分应用(如部分 WPS Qt 版)对 UIA 支持不完整,可能更多走剪贴板兜底或上下文降级为仅选区;Chromium 系应用首次 UIA 读取可能需短延迟重试。这些行为在仓库「它做什么」「能力面」中有逐项说明,排障时可结合 /api/dsh-select-assist/system/status 中的 lastCapture、lastResolve。

结尾

dsh-select-assist 把 DSH 的解释、总结、翻译和朗读接到 Windows 全局选区上:原生置顶浮窗、UI Automation 主路径取词与段落上下文、可选直连或 agent 引擎,并保留页内划词保底。若要在本机试用,从目录页或 GitHub 按官方命令安装并重启 dsh web 即可。

  • 目录页:https://www.skillhub.cn/plugins/germyGao/dsh-select-assist
  • GitHub:https://github.com/germyGao/dsh-select-assist
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye