# dsh-prompt-enhancer

> DSH 插件，在输入框旁提供 ✨ 一键改写与 🎤 语音转写，按 5 种模式与多模型链独立调用 LLM 重写草稿，并支持一键重启异常服务。

## Metadata

- Author: [@Fishsb](https://github.com/Fishsb)
- Repo: <https://github.com/Fishsb/dsh-prompt-enhancer.git>
- GitHub: [Fishsb/dsh-prompt-enhancer](https://github.com/Fishsb/dsh-prompt-enhancer)
- Stars: 34
- Language: JavaScript
- Topics: `deepseek`, `deepseek-harness`, `dsh-plugin`, `plugin`, `prompt-engineering`
- Forks: 2
- Open Issues: 3
- Last push: 2026-08-20T04:06:44.000Z
- Added: 2026-08-20T00:00:00.000Z

## Install

```bash
dsh plugin --profile web add github:Fishsb/dsh-prompt-enhancer
```

## Wiki

## 一句话定位
DSH 插件，在输入框旁添加 ✨ 一键改写按钮与 🎤 语音输入按钮，把草稿按所选模式与多模型链独立调用 LLM 重写；附带 DSH 异常时的一键重启链路。

## 核心能力
- 在 DSH Web 输入框的工具行提供 ✨ 按钮：点击触发独立 LLM 调用，原文被替换为增强版本；不满意可一键撤销，增强中可取消，斜杠命令保留前缀只优化正文
- 提供 5 种优化模式：基础（直发）、轻量（本地规则分析）、标准（规则 + 工作区与会话检索）、专家（LLM 分析 + 全量检索）、一键发布（检索同类项目 + 九章开发规格生成）
- 内置多模型链：按配置顺序逐一尝试，失败自动切换下一条，支持自定义添加、删除、改序、单独开关思考模式与行内连通性测试
- 提供 🎤 语音输入：录音 → 识别（云端 Qwen3-ASR / OpenAI 兼容 / 本地离线 SenseVoice）→ 可选去口水词规整 → 填入草稿；说完停顿 1.2 秒自动停止（VAD 静音检测），音频仅内存处理不落盘
- 提供 DSH 异常一键重启：网页打不开时，可生成桌面快捷方式（Windows 鲸鱼图标）双击重启，或直接命令行调用；自动识别服务模式（nssm / sc）还是前台模式
- 多语言：按钮与文案跟随 DSH 界面语言（中文 / English）

## 技术实现
- **语言**: JavaScript (CommonJS)
- **关键依赖**: `@deepseek-ai/dsh-client-runtime`（客户端运行时）+ `@deepseek-ai/dsh-client-locale`（国际化）+ `react`（UI 组件）+ `node:https`（出网与云端 ASR）
- **架构模式**: 双半部（host + client）Cordis 注入；host 端通过 `cordis.patch.yml` 把插件 ID 接入 profile 层栈，客户端依赖 `inputActions.setDraft` 契约实现输入框改写；服务注册通过 `ctx.provide` 提供 enhance / models / update / diagnostics / plugins / config 六大服务
- **入口文件**: `lib/index.cjs`（host 入口，`build-host.mjs` 由 `src/host/app.js` 汇总）+ `lib/client.cjs`（client 入口，由 `src/client/skeleton.js` 汇总）

## 适用场景
在不熟悉措辞技巧时，把粗糙想法快速改写为结构化、要素完整的提示词；或在 DSH Web 出现异常（端口未监听、网页打不开）时，从命令行或桌面快捷方式恢复服务。日常用编辑器、写作、调试提示词的用户，以及将 DSH 部署在 Windows Server / 桌面版需要远程维护的用户会从这两个能力直接受益。

## 前置依赖与兼容性
| 依赖 | 最低版本 | 说明 |
|---|---|---|
| DSH | ^0.1.0-rc.6 | 通过 `peerDependencies` 声明，搭配 `@deepseek-ai/dsh-client-runtime` 与 `@deepseek-ai/dsh-client-locale` 注入客户端；`dsh.client.platform` 固定为 `web`，仅 web profile 扫描 |
| Node.js | >= 22.0.0 | CI workflow 使用 `node-version: 22`；`engines` 未显式声明 |
| 客户端契约 | 注入 `inputActions.setDraft` | 官方 web client 已满足；第三方客户端若实现同一契约即可加载，能力集不同时语音输入自动降级：仅 `setDraft` 但无插入能力 → 识别结果追加到草稿末尾；完全不注入 → 🎤 禁用并提示 |
| 平台 | macOS / Windows / Linux | Windows 走 `sc / nssm` 服务管理；Linux 走 `systemctl`；macOS 走 `launchctl`；不支持的平台降级为手动重启提示 |
| 原生模块 | 无 | 仅使用 Node.js 内置 `node:https` / `node:http` / `node:fs` / `node:path` / `node:child_process` / `node:os` / `node:url`；本地 ASR 引擎（sherpa-onnx）部署在 `$DSH_HOME/dsh-prompt-enhancer-asr/` 独立进程，不进入插件主包 |

## 安装方式
```bash
dsh plugin --profile web add github:Fishsb/dsh-prompt-enhancer
```

## 配置项
| 配置 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| 优化模式 | 枚举 | 基础 / 轻量 / 标准 / 专家 / 一键发布 | 基础 |
| 记忆开关 | 布尔 | 开启后发送前多轮优化的迭代累积为记忆链代入下一轮；发送即清空 | 关闭 |
| 模型链 | 列表 | 按顺序尝试的多模型条目（provider + model + 思考强度），可增删改序 | 官方默认两个模型（deepseek-v4-flash / deepseek-v4-pro） |
| 自定义模型 | 列表 | 用户额外添加的模型条目，名称 + 模型 ID + 思考强度 | 空 |
| 思考模式 | 布尔 | 是否启用该模型的链上推理（影响耗时与配额） | 关闭 |
| 上下文预算 | 数字 | 该模式可注入多少参考量（0 = 不注入；越大范围越广） | 基础 0 / 轻量 2000 / 标准 4000 / 专家 4000 / 一键发布 4000 |
| 超时时间 | 数字 | 单次 LLM 调用最长等待时间（0 = 无限制） | 基础/轻量/标准 30000，智能/发布 60000 |
| 输出 Token 上限 | 数字 | 单次响应最大 Token 数（0 = provider 默认） | 基础/轻量/标准 2000，智能/发布 4000 |
| 输出字符上限 | 数字 | 响应收集的字符上限（0 = 不截断） | 基础/轻量/标准 8000，智能/发布 16000 |
| 模板选择 | 枚举 | 该模式使用的模板：默认（只重述） / 增量（保守补充缺失大逻辑） / 自定义：<名称> | 默认 |
| 自定义模板 | 列表 | 该模式多条自定义模板（每条 ≤4000 字符，每模式 ≤10 条） | 空 |
| 语音识别引擎 | 枚举 | 云端（Qwen3-ASR / OpenAI 兼容） / 本地（SenseVoice 离线） | 云端 |
| 语音识别语言 | 枚举 | 自动 / 中文 / English / 日本語 / 한국어 / 粤语 | 自动 |
| 静音自动停 | 布尔 | 说完话停顿 1.2 秒自动停止录音 | 开启 |
| 规整（去口水词） | 布尔 | 识别后是否调用 LLM 去除「嗯/啊/那个」等语气词 | 关闭 |
| 规整模型来源 | 枚举 | 跟随模型配置（用增强链中的某条） / 自定义（独立 OpenAI 兼容） | 跟随模型配置 |
| 端口重启服务名 | 字符串 | Windows 服务模式下 sc 命令的服务名 | dsh-web |
| 端口重启 profile | 字符串 | 重启后使用的 DSH profile | web |

## 常见问题

**Q: 安装后输入框里没有出现 ✨ 按钮怎么办？**

A: 确认是用 `dsh web` profile 安装（命令带 `--profile web`），安装后必须重启 `dsh web`（仅刷新浏览器不会重新装载宿主页与客户端模块）。`package.json` 里 `dsh.client.platform` 固定为 `web`，只有 web profile 会扫描这个 bundle。

**Q: 没有配置任何模型时点 ✨ 会发生什么？**

A: 插件不会自动套用任何兜底模型，host 会返回 `NO_MODEL` 错误码并在按钮下方显示「未配置模型，请在设置中添加模型」。首次安装会继承基座当前模型与官方 DeepSeek 默认两个模型（deepseek-v4-flash / deepseek-v4-pro），可自行删除或调整。

**Q: 5 种优化模式（基础/轻量/标准/专家/一键发布）有什么区别？**

A: 基础 = 直发改写、不读上下文、最快；轻量 = 本地规则分析、缺失项保守提示、不注入外部上下文；标准 = 规则理解 + 工作区文件与会话事件检索、零额外 LLM 成本；专家 = LLM 任务分析 + 全量检索（文档/代码/会话）注入、上下文理解最准；一键发布 = 检索同类项目 + 工作区参考生成九章开发规格，支持多轮细化。

**Q: 记忆开关是什么？开启后会不会把聊天内容长期保存在客户端？**

A: 记忆仅在发送前一轮「优化 → 修改 → 再优化」之间累积为最多 4 轮的链（仅内存中的 `memoryRounds`），下一轮代入历史并感知修改方向；消息一旦发送，记忆链立刻清空。关闭记忆时完全停止读写；本地或云端均不持久化记忆内容。

**Q: 网页打不开时怎么用「一键重启」恢复 DSH？**

A: 插件设置「模型与插件 → 端口重启 → 桌面」可一键生成带鲸鱼图标的「重启DSH」桌面快捷方式（仅 Windows），双击即在命令行窗口重启；不生成快捷方式也能用，直接执行 `node "...\AppData\Local\dsh-prompt-enhancer\executor\0.1.11\lib\updater-host.cjs" --cli restart --service dsh-web --profile web` 即可。

**Q: 语音输入支持哪些识别引擎？本地引擎要不要额外下载模型？**

A: 默认提供云端（Qwen3-ASR / OpenAI 兼容 `/audio/transcriptions`）与本地（sherpa-onnx + SenseVoice，离线、不上传）双引擎；插件安装包不携带/不默认下载模型，本地引擎需在「模型配置 → 🎙 语音识别 → 引擎选本地 → 本地模型区点下载模型」自行下载（SenseVoice 228MB / Paraformer 137MB），下载完成后自动热加载。

**Q: 卸载后还在 DSH 设置里看到插件页面怎么办？**

A: 卸载后必须重启一次 DSH 才能从运行中完全卸载；如果重启后仍残留，进入 DSH 安装目录手动删除 `$DSH_HOME/dsh-prompt-enhancer` 与 `dsh-prompt-enhancer.config.json` 即可。

**Q: 桌面版（DSH Desktop）每次重启设置都丢失是什么问题？**

A: 该问题已在 v3.2.4 修复（GitHub Issue #1）。DSH Desktop 启动时动态分配端口，浏览器 localStorage 按 Origin 隔离，每次重启被误判为「首次安装」覆盖用户配置。修复后配置改为磁盘存储（`$DSH_HOME/dsh-prompt-enhancer.config.json`），动态端口切换后自动恢复。

## 上手难度
进阶 — 需要理解 DSH Web profile 安装流程、模型链配置、上下文预算与各模式差异，以及 DSH 服务管理（Windows / Linux / macOS 三套）。默认配置下可直接使用，但精细调优需进入「模型与插件」设置页。

## 已知问题与限制
- 第三方客户端未实现 `inputActions.setDraft` 契约时，✨ 按钮不显示；🎤 语音输入自动降级（无插入能力 → 追加到草稿末尾；完全不注入 → 🎤 禁用并提示）
- 优化模式的「撤回」按钮仅在当次结果应用后短时间内可点击；用户修改草稿后再点 ✨，「撤回」变为「继续优化」（基于上一轮基础继续）
- 一键重启仅在 Windows 上支持「桌面快捷方式（鲸鱼图标）」生成；macOS / Linux 需手动执行 CLI 命令
- 本地 ASR 引擎的 SenseVoice（228MB）/ Paraformer（137MB）模型由用户在设置页主动下载，不随插件安装附带；首次使用本地引擎需手动下载
- M2/M3 架构重构进行中：`src/host/config.js` 注释 `TODO(M3): register config schema and migration` 显示完整 Schemastery 迁移尚未完成，目前由 `config-schema.js` 轻量校验兜底
- 插件打包体积较大（`lib/client.cjs` ~350KB、`lib/shortcut-icon.cjs` ~43KB），安装包会同步下载鲸鱼图标资源
- 客户端协议版本固定为 `protocolVersion: 1`，与旧版本（≤2.8.3）不兼容；执行器版本由 `EXECUTOR_VERSION` + 内容哈希管理，代码变更自动重建
- macOS 与 Linux 平台的一键服务化（nssm 等价物）路径当前未启用，仅 Windows 提供「nssm 服务化」一键引导；其他平台端口重启走前台进程模式

---

This document is auto-generated by [deepseek-plugin.org](https://deepseek-plugin.org). HTML page: [dsh-prompt-enhancer](https://deepseek-plugin.org/plugins/Fishsb/dsh-prompt-enhancer)
Wiki generated by AI (model: `MiniMax-M3`)
