为 DeepSeek Harness Web UI 新增"模型高级配置"页,添加自定义 OpenAI/Anthropic 端点并按模型配置上下文与推理强度。
- 语言
- JavaScript
- License
- MIT
- 分支
- main
安装
$ dsh plugin --profile web add github:MarvekG/deepseek-harness-model-config在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程
对话式安装
帮我安装 DeepSeek Harness 插件 MarvekG/deepseek-harness-model-config:先查看仓库 https://github.com/MarvekG/deepseek-harness-model-config.git 确认安全性,然后执行安装命令并验证插件加载成功。
把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。
一句话定位
为 DeepSeek Harness Web UI 增加一个"模型高级配置"设置页,可以在不重启 DSH 的情况下新建自定义模型端点(OpenAI/Anthropic 协议),拉取端点公开的模型列表,并按模型设置上下文窗口、最大输出、推理强度等能力。
核心能力
- 新增自定义端点:填写名称、URL、API Key 和协议,保存后立即可被会话选择器使用
- 支持三种 API 协议:openai-completions、openai-responses、anthropic-messages
- 一键拉取模型候选:通过 OpenAI 兼容的
GET /models拉取候选列表,提供全选/反选/全不选 - 按模型编辑能力参数:上下文窗口、最大输出、输入模态(文本/图片)、推理强度
- 从 models.dev 自动补全:拉取后用
https://models.dev/api.json自动补全缺失的上下文、最大输出和推理信息 - API Key 仅走 Harness 凭据系统:不会写入
settings.yaml,也不会出现在配置预览
技术实现
- 语言: JavaScript(ESM
type: "module") - 关键依赖: DSH 内置 client 插件
@deepseek-ai/dsh-client-runtime/@deepseek-ai/dsh-client-ui-settings/@deepseek-ai/dsh-client-locale/@deepseek-ai/dsh-api-remotes(通过window.__ModuleLoader__.load注入) - 架构模式: Cordis 双端插件,host 端仅声明 Loader 名
models-config-plugin、不注册任何服务,所有读写走宿主已有的 settings RPC;client 端在settings.section槽位注册"Advanced model config"页面 - 入口文件:
src/index.js(Host,8 行)+src/client.js(Client,1661 行 React)+cordis.patch.yml(bundle 注入声明)
适用场景
当你需要把 DSH 对接到本地的 OpenAI 兼容网关(如 one-api / new-api / 自研代理)或 Anthropic 兼容服务时,只在 UI 文本里增减模型、不愿意手写 settings.yaml;又或者想让某些模型支持自定义推理强度、自定义 Header,或给未声明容量的端点设置默认上下文/最大输出时使用。
前置依赖与兼容性
| 依赖 | 最低版本 | 说明 |
|---|---|---|
| DeepSeek Harness | 未声明 | 插件走 dsh.bundle.patch,要宿主已加载 llm-pi-ai 适配器并支持 settings.section / settings.mutate / credentials.set 等扩展点 |
| Node.js | 未声明 | 插件代码本身只用到 export const 语法 |
| 平台 | macOS / Windows / Linux | 跨平台,源码中没有 OS / CPU 平台校验或原生模块 |
| 原生模块 | 无 | 仅使用浏览器端 React 和宿主内置 RPC |
安装方式
dsh plugin --profile web add github:MarvekG/deepseek-harness-model-config
配置项
| 配置 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| 端点名称 | string | 作为 provider 路由的显示名与派生凭据引用的词干,必须以小写字母开头 | 无 |
| 端点 URL | string | Provider 请求与模型发现使用的根地址,需 http 或 https 协议,如 https://gateway.example/v1 | 无 |
| API 协议 | enum | 可选 openai-completions / openai-responses / anthropic-messages | openai-completions |
| API Key | string | 写入 Harness 凭据系统,不会进入配置文件 | 无 |
| 自定义 Header | key/value | 调用模型时附带,GET /models 时不附带 | 无 |
| 默认上下文窗口 | 整数 | 当模型条目和内置模型都没有上下文大小时的回退值 | 262144 |
| 默认最大输出 | 整数 | 当模型条目和内置模型都没有最大输出时的回退值 | 32768 |
| 默认输入模态 | enum | 模型未声明时回退的输入类型(文本/图片) | [text] |
| 默认推理强度 | enum | Provider 路由级默认推理强度,从 off 到 max | 无 |
| 推理预算 | key/value | 为支持预算的推理服务设置各级别 token budget | 无 |
| 推理兼容 | object | 仅 openai-completions 路由有效,控制 thinkingFormat、supportsReasoningEffort | 无 |
| 缓存保留 | enum | none / short / long | pi-ai 默认 |
| 传输方式 | enum | sse / websocket / websocket-cached / auto | pi-ai 默认 |
| 请求超时 | 整数(毫秒) | Provider SDK/HTTP 请求超时 | 0(由底层决定) |
| WebSocket 连接超时 | 整数(毫秒) | WebSocket 握手超时 | 无 |
| 流空闲超时 | 整数(毫秒) | 单次 provider 读取允许的最大空闲时间 | 300000 |
| 重试策略 | object | 含重试模式、可重试状态码、最大次数、退避初始/上限、抖动比例 | dsh-llm-retry 默认 |
| 每模型上下文 | 整数 | 该模型可承载的最大上下文 | 由路由默认或内置模型继承 |
| 每模型最大输出 | 整数 | 模型最大输出能力,并作为该模型请求默认 maxTokens | 由路由默认或内置模型继承 |
| 每模型输入模态 | enum | 支持的输入类型列表(文本/图片) | 由路由默认或内置模型继承 |
| 每模型推理强度 | map | 从 off/minimal/low/medium/high/xhigh/max 中选级别并设置对应的"网络拼写" | 来自 models.dev 匹配或用户手工声明 |
端点高级参数与每模型参数的完整字段表见
docs/llm-pi-ai-parameters.md。
常见问题
Q: 这个插件和 DSH 自带的 Models 设置页冲突吗?
A: 在标准 Web profile 下两者会同时可见,DSH 设计上明确把它们互斥。本插件在 profile 层禁用 ui-settings-models 那一行后即可独立运行,否则会出现两套 UI 改同一份配置(src/client.js:1232、docs/model-config-plugin-design.md:188)。
Q: API Key 写到哪里,会不会泄露到 settings.yaml?
A: 不会。插件仅通过 Harness 的 credentials 服务写入凭据引用(如 MY_ENDPOINT_API_KEY),真实密钥只在内存里提交一次,settings.yaml 和配置预览中都不会出现明文(package.json:5-7、README.md:18)。
Q: 支持哪些 API 协议?
A: 当前提供三种下拉选项:openai-completions、openai-responses、anthropic-messages。拉取模型候选时 anthropic-messages 会被自动改用 OpenAI 兼容 GET /models,因为模型列表普遍是 OpenAI 形态(src/client.js:1375-1377, 1181)。
Q: models.dev 不可达时还能正常工作吗?
A: 能。端点返回的模型仍然可以手动勾选和编辑,只是上下文、输出、输入模态、推理能力不再自动补全,提交后会提示"端点结果仍可编辑"(src/client.js:136, 270, 1184、README.md:37)。
Q: 编辑已保存端点时 API Key 字段留空,会覆盖原 Key 吗?
A: 不会。留空表示"继续使用现有凭据",只有填写了新值才会调用 credentials.set 更新(docs/model-config-plugin-design.md:140)。
Q: 卸载和更新怎么操作?
A: 都是先 remove 再 add:
dsh plugin --profile web remove dsh-models-config-plugin
dsh plugin --profile web add github:MarvekG/deepseek-harness-model-config
dsh web
(README.md:62-77)
Q: 重新拉取模型时,已勾选的会被清掉吗?
A: 不会。已勾选的模型保留勾选,本次新出现的模型默认不勾选,端点不再返回的模型也会保留显示,避免刷新误删(src/client.js:1171-1174、README.md:13)。
Q: 能给一个端点配全局自定义 Header 吗?拉取模型时也会带上吗?
A: 端点高级参数里可以加自定义 Header,但 Header 只在调用模型时附带,不会出现在 GET /models 请求里(README.md:30、docs/llm-pi-ai-parameters.md:37)。
上手难度
入门 — 在 Web UI 里填表单即可,无需手写 YAML;懂 DSH 的 profile / plugin 概念、有现成的 OpenAI/Anthropic 兼容网关地址即可上手。
已知问题与限制
- 拉取模型仅覆盖 OpenAI 兼容的
GET /models;其他协议(如纯 Anthropic 协议端点)的模型列表需要手动编辑(docs/model-config-plugin-design.md:225) - models.dev 没有给出某模型的推理信息时,UI 不会替用户猜测能力;用户需要自己添加推理级别(
docs/model-config-plugin-design.md:226) - 独立插件形态与 DSH 自带的
ui-settings-models互斥:profile 启用本插件时应禁用原 Models 设置行,否则两套 UI 会同时改同一份配置(docs/model-config-plugin-design.md:188, 227) - 模型发现存在 4MB 接收上限;401/403 被归因为凭据问题,不可达/非 JSON 被归为"拉取失败"(
docs/model-config-plugin-design.md:198)
English | 中文
为 DeepSeek Harness Web UI 添加“模型高级配置”页面,用于创建自定义模型端点并配置每个模型的能力参数。
功能
- 新增自定义端点:名称、URL、API Key 和协议。
- 支持在 provider 层配置自定义请求 Header,并应用于模型请求。
- 支持
openai-completions、openai-responses、anthropic-messages。 - 通过统一的
GET /models流程获取候选模型,支持全选、反选和全不选。 - 新增端点和已保存端点共用编辑器;已保存端点可重新拉取模型,新增模型默认不勾选,已有勾选模型在刷新后保留。
- 端点高级参数支持默认容量、输入模态、推理兼容、缓存、传输、超时和重试策略。
- 从
models.dev补全缺失的上下文窗口、最大输出、输入模态和推理能力;优先按模型名称选择官方 provider,找不到时选择默认 provider,并可在保存前切换完整 provider 记录。 - 在保存前编辑每个模型的容量、文本/图片输入和
reasoningEfforts,并查看不含密钥的配置预览。 - 所有界面文案支持中文和英文,跟随 Harness 语言设置。
- API Key 仅经 Harness 凭据存储写入,不会进入
settings.yaml或配置预览。
完整参数说明:llm-pi-ai 参数参考。
打开设置
新增端点
端点名称、BASE_URL、API-KEY,然后点击获取模型,把想要的模型勾选上:
参数补充
- 端点高级参数:一般保持默认即可。自定义 Header 仅用于模型请求;“获取可用模型”仍使用 API Key。
- 模型参数:主要检查上下文大小和最大输出长度。
模型参数一般能自动填写,前提是要能访问 https://models.dev
安装
需要已安装并可运行的 dsh。默认从 GitHub 安装:
dsh plugin --profile web add github:MarvekG/deepseek-harness-model-config
dsh web
打开 Web UI 的“设置 → 模型高级配置”,即可新增端点或编辑现有 llm-pi-ai 模型配置。
如需固定版本,在仓库地址后附加 commit SHA,例如 github:MarvekG/deepseek-harness-model-config#<sha>。
本地调试
克隆本仓库后,在仓库根目录以本地 link: 依赖安装:
dsh plugin --profile web add .
dsh web
卸载
从 Web profile 移除插件:
dsh plugin --profile web remove dsh-models-config-plugin
更新
更新使用“卸载旧版本,再安装新版本”的方式:
dsh plugin --profile web remove dsh-models-config-plugin
dsh plugin --profile web add github:MarvekG/deepseek-harness-model-config
dsh web
本地调试时,将第二条命令替换为 dsh plugin --profile web add .。
许可证
友链
收录徽章
[](https://deepseek-plugin.org/plugins/MarvekG/deepseek-harness-model-config)把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。