dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
dsh plugin: polish/complete/expand your prompt before sending with a dedicated prompt-engineering agent. Rewrite, multi-round rewriting, undo. Zero-build client, persists across harness restarts.
A dsh plugin that polishes, completes and expands your prompt before you send it, using a dedicated prompt-engineering agent. Supports rewrite, multi-round rewriting and undo. Loads automatically when the harness starts — no per-session setup.
在输入命令之前,调用一个专门的「提示词工程专家」agent,对你的原始草稿进行补全、消歧、扩写、结构化,使其符合提示词工程规范、效力更高。插件随 harness 启动自动加载并持久生效,无需每次手动启用。
window.__ModuleLoader__ bundle,无需任何构建工具链┌───────────────────────────── 浏览器 ─────────────────────────────┐
│ sidebar.footer.action 「✨ 润色」按钮(上)、「📋 日志」按钮(下) │
│ conversation.input.dock 优化面板(版本历史/撤回/重写/应用) │
│ sidebar.footer.action 「📋 日志」按钮 │
│ shell.overlay 日志浮层 │
│ │ fetch (同源) │
└─────────┼────────────────────────────────────────────────────────┘
▼
┌───────────────────────────── Host ──────────────────────────────┐
│ POST /pp-api/polish 调用 llm.stream 跑「提示词优化专家」agent │
│ 模型路由:agentDefaultModel 当前默认选择 │
│ (如 opencode-go / deepseek-v4-flash) │
│ POST /pp-api/config 保存/读取自定义 API 配置(OpenAI 兼容) │
│ GET /pp-api/config 返回当前配置(apiKey 脱敏) │
│ GET /pp-api/logs 返回日志缓冲 + 健康诊断 │
└──────────────────────────────────────────────────────────────────┘
index.js):普通 Cordis 插件,通过 webServer.register 暴露两个同源 HTTP 接口(避开 /api 前缀);llm.stream 调用支持多轮迭代(每轮基于上一轮结果),带 120s 超时保护。client.js):手写 window.__ModuleLoader__.load({ id, factory }) 格式的浏览器 bundle(与 dsh 产品级 client 插件同构),通过 package.json 的 dsh.client 声明被 dsh-client-modules 扫描并 serve(/plugins/prompt-polish/client.js),无需构建。dsh.bundle 声明(cordis.patch.yml),dsh plugin add 后自动注册为 profile 组合中的一行,harness 启动即挂载;区别于动态 Cordis 插件,重启后依然存在。dsh --profile web)≥ 0.1.1-rc.2插件自带 dsh.bundle 声明(cordis.patch.yml),dsh plugin add 会自动安装并把 host 半注册进 profile 组合,无需手动编辑任何配置文件:
dsh plugin --profile web add github:JOJO666888888/prompt-polish
安装完成后重启 dsh 并刷新浏览器即可:
dsh --profile web)完成后:侧边栏底部出现「✨ 润色」和「📋 日志」两个按钮(润色在上)。
原理:
dsh plugin add把参数转发给 pnpm(github:user/repo是 pnpm 原生 spec),pnpm 拉取仓库并装进 profile 的node_modules;随后 dsh 检测到本包声明了dsh.bundle.patch,自动把它加入dsh.profile.bundles层栈。下次启动时,profile 加载本包的cordis.patch.yml插入 host 插件行(/pp-api/*路由 + 提示词 agent),同时本包的dsh.client声明让浏览器半(client.js)被自动编排进启动图。
开发时直接用本地路径,改完代码 dsh plugin --profile web add ~/prompt-polish 即可热更新(也可指向 .,dsh 会锚定到调用目录):
dsh plugin --profile web add ~/prompt-polish
# 或在仓库目录内:
dsh plugin --profile web add .
# 已加入 profile 的 bundle 层栈(看到 prompt-polish 即成功)
node -p "require(process.env.HOME+'/.dsh/profiles/web/package.json').dsh.profile.bundles"
# 或查看 profile 依赖来源
grep prompt-polish ~/.dsh/profiles/web/package.json
# 接口自检(把端口换成你 dsh web 实际监听的端口)
curl -s http://127.0.0.1:3080/pp-api/config
点击侧边栏底部 「📋 日志」(或优化面板头部的 📋 按钮)打开日志面板:
有两种方式配置自定义 API:
方式一:dsh 设置面板(推荐)
打开侧边栏的 ⚙️ 设置 → 左侧导航找到 「✨ 提示词优化」 分区,直接配置 API 参数。配置保存在 ~/.dsh/plugins/prompt-polish.json,保存后立即生效,无需重启。
设置面板内提供快速预设按钮(OpenAI / DeepSeek / Ollama / vLLM / LM Studio 等),一键填入对应的 API 地址和模型名。
方式二:润色面板内快捷设置
点击优化面板头部的 「⚙️ 设置」 按钮,可在润色时快速修改配置(同样引导至设置面板)。
配置字段说明:
| 字段 | 说明 | 示例 |
|---|---|---|
| 启用 | 开关:启用自定义 API / 回退到 dsh 内置路由 | ✅ 已启用自定义 API |
| API 地址 | OpenAI 兼容 API 的 base URL(自动拼接 /chat/completions) | https://api.openai.com/v1 |
| API Key | Bearer Token 认证密钥(Ollama 等本地服务可留空) | sk-... |
| 模型名称 | 模型 ID | gpt-4o、deepseek-chat、llama3.1 |
| 最大 Tokens | 输出上限 | 8192 |
常见 API 配置示例:
| 服务 | API 地址 | 模型名称 |
|---|---|---|
| OpenAI | https://api.openai.com/v1 | gpt-4o / gpt-4o-mini |
| DeepSeek | https://api.deepseek.com/v1 | deepseek-chat / deepseek-reasoner |
| Azure OpenAI | https://{resource}.openai.azure.com/openai/deployments/{deployment} | {deployment-name} |
| Ollama (本地) | http://localhost:11434/v1 | llama3.1 / qwen2.5 |
| vLLM (本地) | http://localhost:8000/v1 | {model-id} |
| LM Studio | http://localhost:1234/v1 | {loaded-model} |
操作按钮:
~/.dsh/plugins/prompt-polish.json,立即生效,无需重启配置文件路径:
~/.dsh/plugins/prompt-polish.json未启用自定义 API 时,插件自动回退到 dsh 内置模型路由(
agentDefaultModel),完全向后兼容。
常见问题:
| 现象 | 原因 / 处理 |
|---|---|
| 没有「✨ 润色」按钮 | 未刷新浏览器(Ctrl+Shift+R);或未加入 bundle 层栈(运行 dsh plugin --profile web add github:JOJO666888888/prompt-polish 后重启 dsh) |
| 按钮置灰不可点 | 输入框为空 |
| 点击后无反应 | 打开日志面板查看错误;确认 /pp-api/polish 接口可访问(见下) |
| 提示「无法解析可用的模型路由」 | dsh 未配置默认模型,在 Models 设置页选择模型后重试;或启用自定义 API 配置 |
| 自定义 API 报错 HTTP 401/403 | API Key 不正确,检查设置面板中的密钥 |
| 自定义 API 报错 HTTP 404 | API 地址或模型名称不正确,确认 base URL 和 model ID |
| 自定义 API 连接超时 | 检查 API 地址是否可达、网络代理设置、防火墙 |
接口自检(把 :3080 换成你 dsh web 实际监听的端口,可用 dsh --profile web --help 或 webserver 配置查看):
curl -X POST http://127.0.0.1:3080/pp-api/polish -H "content-type: application/json" -d "{}"
# 期望返回 500 + {"error":"prompt-polish: 输入文本为空"}(说明接口已注册)
curl http://127.0.0.1:3080/pp-api/logs
# 期望返回 {"logs":[...],"health":{...}}
curl http://127.0.0.1:3080/pp-api/config
# 期望返回 {"customApi":{"enabled":false,"baseUrl":"https://api.openai.com/v1","apiKey":"","hasApiKey":false,"model":"gpt-4o","maxTokens":8192}}
dsh plugin --profile web remove prompt-polish
这会从 profile 依赖和 dsh.profile.bundles 层栈中一并移除(dsh 自动 reconcile),重启 dsh 即彻底卸载。自定义 API 配置残留在 ~/.dsh/plugins/prompt-polish.json,需要时可手动删除。
插件优先使用 agentDefaultModel(dsh 的默认模型选择,即 Models 设置页/$DSH_HOME/settings.yaml 中 agent-default-model 配置);若不可用则回退到第一个已注册 provider 的首个模型。每次请求读取,无需重启。
本项目与 DeepSeek 官方无关联,是 dsh 生态的社区插件。