compact-region(局部压缩)
English | 中文
在 DSH 对话中选择一段连续的显轮次,将其总结为检查点卡片。应用后,卡片保留在对话上下文中,被替换的原文仍保存在会话日志里,但不再作为普通对话内容显示或继续占用模型上下文。
使用方法
- 在 DSH 中打开要整理的对话,并确保会话已选择可用模型。
- 在某个普通轮次旁边点击 ⤵ 压缩,从该轮开始进入选择模式。
- 点击对话中的轮次或压缩卡片来选择范围。选择必须连续;点击范围边缘之外的轮次会把中间轮次一并选中。点击已选项可取消选择。
- 点击选择面板上的 压缩。插件会用当前会话模型生成摘要,并显示可编辑的预览。
- 检查并修改摘要,然后选择:
- 应用:用检查点卡片替换选定范围;
- 重新生成:重新请求摘要;
- 取消:放弃本次操作,不修改会话。
选择模式中按 Esc 或点击 取消可退出。压缩完成后,卡片可以展开查看摘要;点击 查看对话记录 可在右侧面板中浏览被替换的原始内容。
选择规则
- 只能选择当前对话中连续的显轮次,包括普通轮次和检查点卡片。
- 可以只选一个普通轮次;不能只选一个检查点卡片。若要再次压缩检查点,请把它与相邻轮次一起选中。
- 当前仍在运行的轮次不能被压缩;请等待它结束后再操作。
- 选择范围和摘要都基于当前对话上下文。应用前请核对摘要,尤其是重要事实、文件路径、命令和待办事项。
安装与启用
本插件以 DSH 组合包(bundle)方式分发:package.json 里的 dsh.bundle.patch 指向 cordis.patch.yml,dsh.client 声明 Web 客户端入口。因此需要用 DSH 的插件管理器安装,而不是手动复制文件。
要求:
- DSH 自带插件管理器(侧边栏有「插件」页),并支持 Web Client 插件;
- 本插件在 DSH 0.2.x 上开发与测试,其他版本未验证。若安装后 DSH 报版本不兼容,请附上 DSH 版本提 Issue。
方式一:在 Web 界面安装(推荐)
- 打开 DSH,点击左侧边栏的 插件。
- 在安装输入框里填入下面任一地址:
- GitHub 仓库:
https://github.com/Asdika-36086/compact-region - 本地目录:把仓库克隆或下载到本机后,填该目录的绝对路径,例如
D:\plugins\compact-region
- GitHub 仓库:
- 确认安装,等待依赖安装完成。
- 在插件列表里确认
compact-region已启用。
安装完成后,若界面没有立即出现压缩按钮,重启一次 DSH。
方式二:命令行
不同 DSH 版本的命令可能不同,先确认你的 CLI 支持插件安装:
dsh plugin --help
若其中列出了 install,再执行:
dsh plugin install https://github.com/Asdika-36086/compact-region
否则请使用上面的 Web 界面方式。
验证是否装上
打开任意对话,把鼠标移到某个普通轮次上,轮次旁边应出现 ⤵ 压缩 按钮。没有出现时,先检查「插件」页里它是否处于启用状态。
语言
插件显示的文字、以及发给模型的指令,都来自语言包。随插件发布中文和 English,在「插件 → 局部压缩」的卡片上切换。
想加一种:把一个 JSON 放进 <DSH 主目录>/compact-region/langs/。文件名去掉 .json 就是这门语言的 id,也是它在面板里的名字。
内容照着 lib/langs/en.json 抄:prompt 段是发给模型的指令,ui 段是界面上的字。只写想改的部分即可,缺的自动用英文补上。文件格式不对时,面板会把它标成不可用并给出原因。
数据与注意事项
- 应用检查点不会从会话日志中删除原始事件;它会追加一条替换检查点,并让被选区间不再进入后续模型上下文。
- 生成摘要时,插件会把截至所选范围结束位置的可见对话上下文发送给当前会话使用的模型,末尾附上摘要指令。请按你使用模型服务的隐私与数据政策评估对话内容。
- 被替换的原文可通过卡片的存档入口查看。
- 当前隐藏层通过客户端 DOM 样式隐藏内容,可能影响滚动高度及分页定位;如果卡片位置或滚动表现异常,可重新打开对话检查。
- 未激活的旧会话可读取轮次信息和存档;生成摘要与应用检查点要求会话处于激活状态。
已知限制
- 插件以完整显轮次/连续 surface 区间为选择单位,不提供任意消息级别的切割。
- 隐藏内容依赖客户端渲染层,不改变持久日志本身。
- 摘要由模型生成,不能保证完整或准确。应用前请人工审阅;需要时可编辑或重新生成。
开发与测试
需要安装 Node.js(支持 ES Modules;无需安装第三方测试依赖)。在插件目录运行:
npm test
测试使用 Node 内置的 node:assert 和合成会话事件,不会启动 DSH、调用模型或访问真实会话。测试覆盖轮次/检查点统计、存档数据及多层嵌套存档。Host/Client 集成或界面改动还需在隔离的 DSH 会话中手动验证;不要将真实对话、凭据或 API Key 放入测试夹具。
许可证
MIT,见 LICENSE。
No comments yet. Be the first to write one.