How to use dsh-provider-model-configurator
Added a "Model Pro" page in DSH Web settings for centrally managing model entries from various providers (context, output, input modality, inference tier), with one-click parameter copy from the built-in catalog.
This article is auto-derived from indexed fields (wiki / faq / compatibility_json), not freshly AI-generated.
This article is derived from the plugin's already-indexed fields (wiki / faq / compatibility_json / readme), not freshly generated by AI. Source field is noted at the end of each section.
Quick start
dsh-provider-model-configurator
— source: plugin_wiki.wiki_content
Install & verify
dsh plugin --profile web add github:LiangYin233/dsh-provider-model-configurator
Run the command above in your DSH Web Profile. Then enable the plugin in the plugin list.
— source: plugins.install
Key points
- 选择目标提供商,列出其显式模型条目与配置摘要,可编辑 / 删除;
- 新建:输入模型 ID,手动填写显示名、上下文窗口、最大输出、输入模态(text/image)、推理档位(档位 → wire 值,
off留空 = 不发送);推理档位与输入模态均支持「未设置(继承目录)」,避免把未配置的字段写成显式默认值; - 复制填充:「使用模型预设」打开来源选择器,从预设目录或其他提供商挑一个模型快速填充表单;
- 兼容开关 (compat):编辑
thinkingFormat(openai / deepseek / openrouter / together / zai / qwen / string-thinking / ant-ling)与supportsReasoningEffort(true / false / 未设置),供 openai-completions 推理分发读取;
— source: plugin_wiki.readme_en (fallback readme_raw)
FAQ
Where do I access this page after installation?
After installing and restarting the Web service, refresh the page. In Settings → left navigation bar, a "Model Pro" entry will appear (after the Models page). Click to enter (src/client/static.tsx:13-14 / README.md:25).
What is the relationship between this page and the built-in Models settings page in DSH?
It only rewrites each entry in the existing "Provider Model List" (context window, max output, input modality, reasoning effort, reasoning distribution compatibility switch), does not create new providers, does not touch API Keys, and does not replace the process of creating new providers on the Models page; the target list the plugin reads is the providers you have already created on the Models page (src/host/index.js:147-207 / src/client/page.tsx:294).
How does the "Use Model Preset" button work?
Clicking "Use Model Preset" opens a popup. First select the source provider, then select the model. Registered providers use llm.listModels, while unregistered (dormant) providers use llm.discoverModels to read directory metadata; after selection, context, output, modality, and reasoning effort are pre-filled into the form and can be manually modified (src/host/index.js:69-93 / src/client/page.tsx:431-480).
When editing an existing model, what happens to fields that don't appear in the form?
They are preserved. The plugin only overwrites the fields you fill in (including name, contextWindow, maxTokens, input, reasoningEfforts, compat), other fields (such as description, tools) are kept as-is; if you leave a field empty in the form, that field will be removed from the old entry and revert to directory inheritance, not retain the old value (src/host/index.js:308-313 / src/client/page.tsx:247-257).
What happens when deleting the last model entry of a provider?
For providers in the built-in catalog (settingsNs=llm-pi-ai and not declared), the explicit list for that provider will be cleared and revert to the built-in catalog; for custom providers, the plugin will refuse to delete and prompt "At least one explicit model entry must be retained" (src/host/index.js:355-365 / src/client/locales/zh.json:28).
What is the relationship between reasoning effort and reasoning parameter format (thinkingFormat)?
Reasoning effort is the model's self-declared "thinking intensity" (one of off / minimal / low / medium / high / xhigh / max + corresponding wire value); thinkingFormat / supportsReasoningEffort only affects how reasoning distribution maps these effort levels to request fields on the openai-completions path, default values are automatically detected from catalog entries or baseURL (src/shared/thinking.js:13-17 / src/client/locales/zh.json:48).
What does the plugin do when set to read-only mode (settings.writable=false)?
A "Current settings are read-only" prompt appears at the top, all edit / delete / apply config buttons are disabled; remote calls are directly rejected by the host and return "Settings are read-only, cannot write model config" (src/host/index.js:215 / src/client/page.tsx:276).
What happens when applying config to a provider that has no explicit model entries?
The plugin does not overwrite the entire model directory: it writes the current built-in catalog's model list as that provider's explicit entries (existing IDs are updated in place, new IDs are appended), while merging existing modelOverrides; subsequent edits are all based on this explicit list, and catalog updates will not be automatically merged in (README.md:34 / src/host/index.js:288-302).
— source: plugin_wiki.faq_json
Compatibility
- DSH: >=0.0.1(dsh.plugin.json#engines.dsh;实际需宿主装载 llm-pi-ai 适配器并满足 peerDependencies:@deepseek-ai/cordis ^4.0.1-rc.1、@deepseek-ai/dsh-typert-protocol、@deepseek-ai/dsh-typert-registry 等)
- Node: ^22.19 || >=24
- Platforms: 跨平台
— source: plugin_wiki.compatibility_json
Pitfalls
Review the upstream repo before installing. This guide is auto-derived from indexed fields and may lag the latest release. If anything contradicts the official docs, treat the upstream source as authoritative.
— source: general rule