前言¶
在 DeepSeek Harness(DSH)里接多家模型,通常要改 settings.yaml 里的 llm-pi-ai.providers,再把 API Key 写进 .credentials.yaml。官方 Settings → Models 页面能完成这些事,但每次换厂商、加路由或校对模型名,仍要对着配置和文档来回切换。若在 Web 输入框旁就能列出已有路由、套用厂商预设、保存前校验模型是否存在,并顺带管理会话里的图片与截图,日常切换推理后端会省不少步骤。
下面介绍社区插件 dsh-provider-quick-config(仓库 lo2589/deepseek-harness-media),维护者为 lo2589,在 SkillHub 插件目录 中归类为「模型推理」。项目当前 GitHub 星标为 4;npm 包名 dsh-provider-quick-config,许可证 MIT(以仓库 package.json 为准,版本 0.5.6)。
这是什么¶
一句话:在 不改动 deepseek-harness 源码 的前提下,为 Web GUI 增加 Send 旁的「+」按钮,用图形表单读写 Harness 已有的 llm-pi-ai.providers 与 .credentials.yaml,并附带会话媒体浏览、SVG 上传、截图入库等能力。
插件不自建配置存储,只通过 Harness 既有接缝写入配置,由 llm-pi-ai 适配器的 watcher 热加载,下一请求即生效。
核心功能¶
Provider 快速配置¶
点击 + 后,界面会:
- 列出已配置的 provider 路由(
llm-pi-ai.providers.*),显示凭证状态与各路由服务的模型。 - 提供一键厂商预设:智谱 GLM、MiniMax、OpenAI GPT、Anthropic Claude、本地 Ollama 等,endpoint、协议、
thinkingFormat、模型列表会预填。 - 模型选择:各厂商提供快捷 chip(点选/取消),也支持自定义行(id / ctx / max);例如点选
MiniMax-M3chip 即可切换,无需手改 JSON。 - 保存前校验:保存前对支持
GET /models的端点做 ping,与表单中的模型名比对(大小写、连字符不敏感);不存在的模型标红并阻止保存。不支持列举模型的端点会跳过校验仍允许保存。 - Ollama 预设会立即拉取
GET /models填表;自定义路由也有「Fetch models」按钮。 syncModels: true的路由(Ollama 预设默认开启)后台每 60 秒与端点GET /models比对,列表变化时自动写回settings.yaml;已配置模型的容量会尽量保留。- 同一厂商可重复添加,路由 key 自动编号(
glm→glm2…),显示名带「· 号N」。 - 支持自定义 OpenAI 兼容网关/自托管;可编辑、删除路由,设置或更新 API Key(GUI 只存凭证引用名,密钥写入
$DSH_HOME/.credentials.yaml,权限 0600)。
路由写入经 settings.mutate 校验 schema 与 assertServiceable,错误协议、空 baseURL 或非法模型会在写入时被拒绝。
媒体展示与输入辅助¶
右侧 Media showcase 面板(README 中标注为媒体相关能力)会:
- 扫描当前会话历史,按轮次(「第 1 轮」「第 2 轮」…)展示对话中提到的媒体:常见图片格式、视频、录音等;SVG 以
<img>渲染。媒体仅展示,不进入模型上下文。 - 从会话工作目录解析路径,并支持按文件名回退查找(缺路径前缀时仍可能找到文件)。
- 可将路径插入 composer(
inputActions.setDraft);栅格图还可作为附件插入。 - 自动扫描
<cwd>/.uploads/、<cwd>/.screenshots/,分别归入「上传库」「截图库」分组。 - 上传按钮接受
.svg(其它常见图片仍走附件流程),经save-media存到<session cwd>/.uploads/,并向 composer 追加。 - 截图:通过
getDisplayMedia截屏,PNG 存入<session cwd>/.screenshots/,路径写入 composer,由用户决定是否发送;文件会出现在 showcase 中。
安装与启用¶
插件有两种用法:会话内 动态插件(cordis_define,进程重启后丢失)与 正式安装(推荐,随 web profile 持久化)。下面以 README 记载的正式安装为准。
在 deepseek-harness 仓库中打包 npm 包并安装到 web profile:
cd /path/to/deepseek-harness
# 在 dsh-provider-quick-config/ 目录执行:npm pack
node --import tsx/esm apps/cli/src/bin.ts plugin --profile web add \
file:/path/to/dsh-provider-quick-config/dsh-provider-quick-config-0.5.4.tgz
cd ~/.dsh/profiles/web && pnpm install # tarball 路径变更时需要
README 示例使用 dsh-provider-quick-config-0.5.4.tgz;仓库内 package.json 当前版本为 0.5.6,本地 npm pack 会生成与版本号一致的文件名,安装时把 file: 路径换成实际 tgz 即可。
dsh plugin add 会在 profile 中执行 pnpm add,并在包声明 dsh.bundle.patch 时写入 dsh.profile.bundles。可验证:
cat ~/.dsh/profiles/web/package.json
# dsh.profile.bundles 应包含 "dsh-provider-quick-config"
然后重启 dsh web(例如 deepseek.sh restart)。Host 从 profile bundle 挂载,Web 端由 dsh-client-modules 在 /plugins/dsh-provider-quick-config/client.js 提供客户端;重启后 Send 旁出现 +,无需每次会话再批准 Run 卡片。
更新:升版本、重新 pack,再执行 dsh plugin --profile web add file:…<new>.tgz(或改依赖后 pnpm install),并重启。
卸载:
dsh plugin --profile web remove dsh-provider-quick-config
# 之后重启 dsh web
动态插件方式:在本会话批准 Run 卡片后刷新页面即可看到 +;重启 dsh web 后需按 README「Restoring the plugin」从 plugin/host.js、plugin/client.js 用 cordis_define 恢复。
典型用法¶
经过上面的安装并重启 Web 后:
- 在 composer 工具行点击 +。
- 选择 Add Provider,点选厂商预设或 Custom(OpenAI 兼容)。
- 在表单中填写或调整 baseURL、模型(chip 或自定义行)、凭证;本地 Ollama 可先 Fetch models。
- 点击 Save;若端点支持模型列表且名称不匹配,界面会报错并禁止保存,修正后再存。
- 需要把截图或 SVG 放进会话时,用截图或上传能力写入
.screenshots/、.uploads/,在 Media 面板确认后插入 composer 或附件再发送。
官方 Settings → Models 仍可与本插件并存;本插件侧重输入框旁的快捷入口。
适用场景与注意¶
适合谁:经常在 DSH Web 里切换 GLM、MiniMax、OpenAI、Claude 或本机 Ollama;希望保存前自动校验模型名;需要在同一会话里浏览历史媒体、截屏或上传 SVG 而不手改 YAML 的开发者。
注意:
- 插件以当前
dsh web进程权限运行,读写$DSH_HOME/settings.yaml与.credentials.yaml;安装前请阅读 GitHub 仓库 源码与 MIT 许可证,确认符合你的安全与合规要求。 - SkillHub 为社区插件目录,与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,本包是其中的模型推理与 Web 增强类扩展。
- 动态插件仅存活于当前进程;生产或长期环境建议使用 npm 正式安装。
- 资料中未单独列出「通过
dsh plugin add github:…一键安装」的命令,请勿凭插件 slug 自行拼接,以 README 的file:…tgz流程为准。
结尾¶
dsh-provider-quick-config 把多厂商 provider 配置、凭证与模型校验接到 Harness 既有配置链路上,并在 Web 侧补上会话媒体与截图工作流,适合作为 Settings → Models 旁的日常入口。