Bundle
dsh-ua-headers
自定义所选模型调用时的 User-Agent 与额外请求头,并在设置页提供控制面板。
- Source
- fplj-fplj
- installs
- 1 installs
- License
- MIT
- Updated
- Updated 18 days ago
Readme
# dsh-ua-headers
一个 DSH 插件:自定义所选模型调用时的 User-Agent,并加入自定义请求头;设置页里提供控制面板。
## 功能
- **自定义 UA**:匹配到的模型请求会替换 `User-Agent`;留空则保留 DSH 默认 UA。
- **加入请求头**:以 JSON 对象配置任意 HTTP 请求头(如 `X-Trace-Id`、`Authorization-Override` 等),会合并进模型请求。
- **按模型匹配**:支持 `*` 全部模型、精确模型 ID、`deepseek-*` 前缀匹配、`*pro` 后缀匹配。
- **自动检测供应商与模型**:设置页会通过 `ctx.llm` 检测当前已注册供应商及其可用模型,勾选即可,无需手输模型 ID。
- **设置页控制面板**:在 Web 设置面板中新增“UA 与请求头”页面,可视化编辑并保存。
- 配置持久化到 `$DSH_HOME/storages/dsh-ua-headers.json`。
## 安装
### 从 GitHub 安装(源码)
```bash
dsh plugin --profile web add github:fplj-fplj/dsh-ua-headers
```
### 从 npm 安装(推荐 / 可被 DSH Market 收录)
```bash
dsh plugin --profile web add dsh-ua-headers
```
安装后重启 DSH Desktop / Web 服务。插件清单已通过 `cordis.patch.yml` 插入,无需手动改 `cordis.yml`。
## DSH Market
本插件已发布到 npm,并提交到 [DSH 1024Store](https://github.com/imsai-sh/awesome-deepseek-harness-plugins) / [deepseek1024.com](https://deepseek1024.com/)。在 DSH 设置 → 插件市场中搜索 **dsh-ua-headers** 即可找到。
## 使用
1. 打开 DSH 设置(左下角齿轮)。
2. 进入「UA 与请求头」页面。
3. 打开“启用自定义 UA 与请求头”。
4. 填写 User-Agent;留空则不改写 DSH 默认 UA。
5. 设置模型匹配:
- 勾选「全部模型」使用 `*`;
- 或直接从「当前已有供应商与模型」列表中勾选实际模型;
- 也可以手动输入规则,例如 `deepseek-v4-pro, deepseek-v4-flash` 或 `deepseek-*`。
6. 填写请求头 JSON,例如:
```json
{
"X-Trace-Id": "my-trace-id",
"X-Request-Source": "dsh"
}
```
7. 保存。下一次匹配的模型调用即生效。
## 说明
- 插件在 Host 进程 patch `globalThis.fetch`,拦截 OpenAI 兼容的 `/chat/completions`(及 `/responses`)POST 请求,读取请求体中的 `model` 字段并与配置匹配。
- 只有匹配到的模型请求会改写 UA / 合并请求头,其他 HTTP 请求不受影响。
- 自定义请求头会覆盖同名请求头;未出现过的请求头会新增。
- 请求头名称必须是合法 HTTP token,值不能包含换行或 NUL。
Install
dsh plugin --profile web add github:fplj-fplj/dsh-ua-headers
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-ua-headers from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.