← 返回列表
未验证
在模型菜单里实时搜索并切换推理强度
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/29 · 已提供中文文档
DSH Web GUI 插件:在编辑器的模型选择菜单中添加实时搜索字段,以及 Effort(推理)选择器。作为原生模型位的直接替代品,共享相同的每会话 ModelDirectory,因此 /model 弹窗、effort 选择器和 /model 命令保持一致。
综合分
28.1
GitHub 分
28.1
用户评分
—
★ Stars
0
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add honoriomelo/dsh-model-picker-search该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-ui-commands@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-input-trigger用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
dsh-model-picker-search
DSH Web GUI 插件。在编辑器的模型选择器菜单内添加一个实时搜索框,以及原生 ModelSelect 自带的 Effort(推理强度)选择器。
当你在编辑器中点击 Model 按钮时,菜单现在打开时会自动聚焦到顶部的搜索框。当你输入时,模型列表会跨所有提供商实时过滤——匹配模型的 id、模型的 name、提供商的 displayName 以及提供商的 name(不区分大小写的子串匹配)。原生选择器的两级(Model / Effort)子菜单得以保留,因此在支持该功能的模型上切换推理强度仍然和以前一样工作。
该插件读取和写入的正是原生 ModelSelect 和 /model 弹窗所使用的同一个按会话的 ModelDirectory,因此每个入口界面都保持一致:在编辑器选择器中选择一个模型,聊天中的 /model 命令会显示相同的选择;在这里更改 effort,触发按钮的标签会更新以显示它。
DSH 的源代码没有被修改——该插件为 conversation.input.model 插槽组合了一个新的占用者,这正是 DSH 设计所允许的。
安装
dsh plugin --profile web add link:/path/to/dsh-model-picker-search
然后重启 dsh web(或刷新页面以便加载新的 bundle)。
工作原理
- 客户端(lib/client.js):为 conversation.input.model 插槽注册一个占用者。该组件渲染:
- 一个与原生 _7KE1Ra_trigger 外观匹配的触发按钮(标签 + 可选的 effort 说明 + 打开时旋转 180° 的箭头);
- 一个双栏菜单(Model / Effort),使用与自带菜单相同的主题 token 进行样式设置;
- 在 Model 栏上,顶部有一个 ,在用户输入时过滤模型列表;
- 在 Effort 栏上,列出当前模型的推理强度级别,以及当模型未声明默认值时的一个“Provider default”选项。
- 宿主(lib/index.js):两个 harness.handle RPC。
- model-search/list 返回 { groups, flat },其中每个分组携带其公布的模型。由 ctx.llm.listProviders() 和 ctx.llm.listModels(provider) 构建。提供商的 listModels 失败会被捕获,因此一个损坏的提供商不会导致整个列表丢失。
- model-search/select 仅是一个确认——实际的选择由客户端那一半通过它与原生 ModelSelect 共享的按会话的 ModelDirectory 来应用,因此不会重复宿主端的状态。
注入的 ModelDirectory(ctx.modelDirectories.directoryFor(sessionId))与原生座位使用的是同一个实例,这正是让两个入口界面共享其状态的原因。
UX 细节
- 自动聚焦。 搜索输入框在 Model 栏打开时立即获得焦点,因此用户无需额外点击即可开始输入。聚焦调用使用 requestAnimationFrame 以确保输入框已完全挂载
以及 focus({ preventScroll: true }),以避免推动页面。
- 返回按钮。 每个子面板都有一个“‹ 返回”按钮,可返回
根面板,与原生两级菜单一致。
- 外部点击。 点击菜单外部会关闭菜单并重置
查询。ESC 和 chevron 切换的行为与原生选择器一致。
- 努力程度保留。 当你选择一个模型时,插件会保留
当前的 reasoningEffort(如果它对新模型仍然有效)
(与原生席位处理它的方式一致)。
兼容性
- DSH 0.1.0-rc.8 或更新版本(使用 dsh.client 包元数据、
ctx.modelDirectories 和 conversation.input.model 插槽)。
- 主题:所有颜色和间距都来自 DSH 主题令牌
(--dsw-alias-*、--dsw-specific-menu、--dsw-shadow-lv3、
--dsw-alias-scrollbar-bg-l2),因此它会跟随浅色/深色模式以及
品牌覆盖。
许可证
MIT。扫码进群