前言¶
在 DSH Web 会话里,如果想针对助手回复中的某句话继续追问,常见做法是手动复制、粘贴到新消息里。这样做容易丢失上下文,也不方便让模型明确知道你要回应的是哪一段。
dsh-annotation-patched 是 DSH Web「选中引用」插件的本地增强版。它允许用户选中助手消息中的文字,点击「引用」生成引用块;发送时引用块会随消息一起发出,模型按编号逐条回应,回应中带有可悬停展开的引用标记。
下面介绍它的定位、功能、安装方式和使用注意。
这是什么¶
dsh-annotation-patched 由 DDDFXYqiming 维护,是一个面向 DSH Web 的浏览器端插件,采用 MIT 许可证。
它解决的问题比较具体:把 DSH Web 中助手消息里的选中内容转成可发送的引用块,并在模型回复里按编号逐条对应。仓库标题与安装路径使用 dsh-annotation-patched;package.json 中的包名写作 @dsh-external/dsh-annotation-patched。本文按 GitHub 仓库名介绍。
核心功能¶
引用助手消息¶
在 DSH Web 中选中助手消息里的文字,点击「引用」,可以补一句说明,也可以直接留空,然后回车发送。引用块会拼进消息一起发出。
发送后,模型会按编号逐条回应每条引用,回应中带有可悬停展开的引用标记。
这个插件采用单按钮制:工具栏只保留「引用」按钮,引用需要显式点击按钮确认。复制、双击读词这类操作不会自动变成引用。
旧引用清理¶
发送确认制会清理旧引用。拼稿前会剥离草稿中残留的旧引用块,避免旧引用重复带入新消息。
自动引用在回车发送和点击发送按钮时都会触发。
多行输入标签同步¶
多行输入时,「引用 ×N」标签会随输入框位置持续同步,不会停留在旧坐标上。
本地补丁重放¶
仓库提供补丁重放工具,可按 patches/manifest.json 清单重放本地增强补丁。
升级基座时可以运行:
node scripts/apply-patches.mjs --fetch <上游commit> --out client.js
这一步会基于清单重放补丁,生成新的 client.js。
运行依赖¶
插件声明 Web 端客户端注入,并声明以下 peerDependencies:
@deepseek-ai/dsh-client-runtime ^0.1.0-rc.6
@deepseek-ai/dsh-client-ui-conversation ^0.1.0-rc.6
engines 要求:
node >=20
安装与启用¶
从 GitHub 安装¶
使用 DSH Web 插件安装命令:
dsh plugin --profile web add github:DDDFXYqiming/dsh-annotation-patched
这条命令用于把插件安装到 web profile 下。
本地开发¶
本地开发时也可以直接使用仓库目录:
dsh plugin --profile web add <本目录>
这条命令适合在本地修改 client.js 或其他插件文件时直接使用。
修改后刷新¶
这是浏览器端插件,修改 client.js 后需要 Ctrl+F5 强刷,或者换浏览器生效。
如果通过 pnpm 更新,可能会覆盖 node_modules 里的副本,此时需要以本目录为源重新 link。
典型用法¶
1、选中助手消息中的文字,点「引用」。
2、可以补一句说明,也可以留空。
3、按回车发送,或点击发送按钮。
4、引用块拼进消息发出。
5、模型按编号逐条回应,回应里带有可悬停展开的引用标记。
本地开发时,完成修改后记得强刷浏览器,再验证引用块和模型回应是否符合预期。
适用场景与注意¶
适合以下场景:
- 需要在 DSH Web 中对助手消息中的某句话做针对性追问。
- 希望把选中内容转成引用块,而不是手动复制粘贴。
- 在本地维护 DSH Web 插件,并希望重放本地增强补丁。
需要注意:
- 只支持选中助手消息,不处理用户自己发送的消息。
- 强依赖 DSH Web 的 DOM 结构,DSH UI 升级可能让插件失效。
- 修改
client.js后需要Ctrl+F5强刷或换浏览器生效。 pnpm更新会覆盖node_modules里的副本,须以本目录为源重新 link。- 插件以当前
dsh进程权限运行,安装前应检查源码与许可证。 - 本插件采用 MIT 许可证,并保留上游版权声明。
链接¶
- 社区目录页:https://www.skillhub.cn/plugins/DDDFXYqiming/dsh-annotation-patched
- GitHub 仓库:https://github.com/DDDFXYqiming/dsh-annotation-patched