Skip to content
dsh.fish
Bundle

dsh-model-cascade

Model selection as a three-level cascading menu (Provider -> Series -> Full model) plus thinking-intensity (reasoning effort) selection for the composer model seat.

Source
jcleener
License
MIT
Updated
Updated 3 days ago

Readme

# dsh-model-cascade

> DSH(DeepSeek Harness)插件:把会话框(已有会话与新建会话共用)的模型选择从「按供应商分组的列表」变成**三级级联菜单**:
> **供应商 → 系列 → 完整模型名**,并在模型支持时可选**思考强度**。

## 功能

- **三级级联**:
  - 第一级 供应商 —— harness 实际配置的 API 路由组(如 DeepSeek / opencode-go / siliconflow / 火山引擎,取 `group.name`)
  - 第二级 系列 —— 模型 ID 最后一个 `/` 与之后第一个 `-` 之间的文本(如 `deepseek-ai/DeepSeek-V4-Pro` → `DeepSeek`)
  - 第三级 完整模型名 —— 完整模型 ID(如 `deepseek-ai/DeepSeek-V4-Pro`)
- **思考强度(推理等级)与模型分开选择**:点选第三级模型名即**直接选中该模型**并关闭菜单(是否支持思考强度都一样)。若所选模型在模型目录中暴露 `reasoning.efforts`(即支持选思考强度),可在菜单根部的「思考强度」快捷行**单独**调整当前模型的强度档位(默认 + 各档位),提交即携带 `reasoningEffort`。模型与思考强度不再需要在同一个级联步骤里先后选择。
- **原生融合**:注册在 `conversation.input.model` 单座(`priority: -1`),覆盖自带的二级列表;数据与提交复用 `ui-model-selection` 的 `modelDirectories` 服务(`session.models` / `session.selectModel`),选择状态、连接重置处理、composer 阻塞行为与自带保持一致
- **菜单底部固定显示**当前使用中的模型(路由组 + 模型名)
- 菜单样式复用 DSH 原生主题 token(`--dsw-alias-*` / `--dsw-specific-menu`),明暗主题下观感一致

## 安装

```bash
dsh plugin --profile web add "github:jcleener/dsh-model-cascade"
# 或固定版本
dsh plugin --profile web add "github:jcleener/dsh-model-cascade#v0.1.0"
```

安装后重启 `dsh web` 生效。

## 使用

点击会话输入框的模型选择位,弹出级联菜单:先选供应商,再选系列,最后选完整模型名,点选即选中并关闭。若当前模型支持思考强度,可再次打开菜单用根部的「思考强度」行**单独**调整强度(默认或各档位);菜单底部显示当前使用中的模型(路由组 + 模型名)。

## 关闭

在 `~/.dsh/profiles/<profile>/cordis.patch.yml` 中把该插件的 insert 段改为 `disabled: true`(或删除 insert 段),重启 `dsh web` 即回到自带的二级列表。

## 开发 / 结构

```
lib/index.js      Host 半段(空 apply,仅作为 Loader 条目存在)
lib/client.js     Client 半段(级联菜单 UI,纯 React + DSH 主题 token)
cordis.patch.yml  加载器补丁层(insert 声明)
```

## 许可证

MIT © 2025 [jcleener](https://github.com/jcleener)

Install

dsh plugin --profile web add github:jcleener/dsh-model-cascade#ead7ce3ad9d5ae95f4886ae51fa5cd4cff4fd89b

Profile: web

Source