🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

New API 模型同步 PellyLee/dsh-newapi-model-sync

DeepSeek Harness
PellyLee29 天前有提交已提供中文文档扫描:含敏感能力

把 New API 的模型列表自动同步到路由配置

30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/7 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add PellyLee/dsh-newapi-model-sync
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么[目录]—
dsh 原生插件 · other
暂无时间戳·判据 →
装得上吗[实装验证]!
实装验证未通过(dependency_conflict),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
数据截至 2026/11/04·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/03·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 29 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

⚠︎ 实装验证未通过(dependency_conflict · 2026/11/4) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 2 处,展示前 2 条)
  • 发起网络请求
    index.js:92
    const res = await fetch(url, {
  • 写入本地文件
    index.js:131
    try { appendFileSync(f, `[${new Date().toISOString()}] ${m}\n`); } catch { }
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh@deepseek-ai/schemastery
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 同步模型列表
  • 写入路由配置

把 New API 渠道模型同步进 DSH 模型配置

README

由 DeepSeek 最新模型翻译生成
dsh-newapi-model-sync 把 New API 实例的模型列表镜像到 DeepSeek Harness 的 llm-pi-ai 服务商路由 —— 双向覆盖:上游新增的模型这里也新增,上游删掉的模型这里也删掉。 中文说明见下方 中文。 为什么做这个 New API 把很多上游服务商聚合在一个 OpenAI 兼容端点后面。它的模型列表经常变,而 Harness 路由的 models 数组是静态配置,不改就得手动编辑。这个插件让这个数组保持同步 —— 也保持干净:共享网关通常还会暴露 embeddings / rerankers / speech / image / translation 以及各种非对话模型(@cf/、bge-、whisper、flux-……),这些都会被过滤掉。 功能 - providers.<providerName>.models 的双向同步:新增、删除、不变。 - 过滤:用你自己可编辑、不区分大小写的正则(excludePatterns)。 - 保留字段 —— 列表里已有的模型保留它的自定义字段(contextWindow、reasoningEfforts……);只有真正新的 id 才以 { id, name } 加入。
展开完整文档(README 剩余 1 节)
dsh-newapi-model-sync

把 New API 实例的模型列表镜像到 DeepSeek Harness 的 llm-pi-ai 服务商路由 —— 双向覆盖:上游新增的模型这里也新增,上游删掉的模型这里也删掉。

中文说明见下方 中文。

为什么做这个

New API 把很多上游服务商聚合在一个 OpenAI 兼容端点后面。它的模型列表经常变,而 Harness 路由的 models 数组是静态配置,不改就得手动编辑。这个插件让这个数组保持同步 —— 也保持干净:共享网关通常还会暴露 embeddings / rerankers / speech / image / translation 以及各种非对话模型(@cf/、bge-、whisper、flux-……),这些都会被过滤掉。

功能

- providers.<providerName>.models 的双向同步:新增、删除、不变。
- 过滤:用你自己可编辑、不区分大小写的正则(excludePatterns)。
- 保留字段 —— 列表里已有的模型保留它的自定义字段(contextWindow、reasoningEfforts……);只有真正新的 id 才以 { id, name } 加入。
- 设置界面(Host + Client 两半):总开关、base URL、API key(掩码密钥)、服务商路由名、间隔、排除规则,还有一个 Sync now 按钮。
- 斜杠命令 /newapi-sync。
- 三种触发方式:启动(激活后 20 秒)、间隔定时器、手动。
- 安全阀,让坏掉的上游永远无法清空你的配置(见下文)。
- 除 harness 本身外没有运行时依赖。

要求

- DeepSeek Harness 0.1.7-rc.2、0.2.0-rc.1 或 0.2.0-rc.2(开发和验证基于 0.2.0-rc.2)。
- 一个能通过 HTTP(S) 访问的 New API 实例,以及一个允许调用 GET /v1/models 的 sk- token。

安装

from npm (once published)
dsh plugin --profile web add dsh-newapi-model-sync

or from source
git clone https://github.com/PellyLee/dsh-newapi-model-sync.git
dsh plugin --profile web add ./dsh-newapi-model-sync

or from any local checkout
dsh plugin --profile web add /path/to/dsh-newapi-model-sync

如果你的配置档名不是 web,替换成你的。然后重新加载网页一次 —— client 那一半在页面加载时注入。Host 侧的同步和间隔定时器不用重新加载就能工作。

配置

设置 → New API Model Sync(同样的字段也会出现在设置 → 插件下该插件自己的表单里):

| 字段 | 类型 | 默认值 | 说明 |
| enabled | 开关 | 开 | 总开关;定时器和手动运行都听它的。 |
| baseUrl | 文本 | (空)* | 你的 New API 地址,例如 https://newapi.example.com/v1。会追加 /models;不带 scheme 的值按 https:// 处理。没设置之前不会拉取任何东西。 |
| apiKey | 密钥 | (空) | sk- token,只用于 GET /models;绝不写进路由配置。界面上掩码显示。 |
| providerName | text | newapi | 要镜像到的 llm-pi-ai 服务商路由。 |
| intervalMinutes | number (≥1) | 10 | 自动同步周期。 |
| excludePatterns | string[] | 见下文 | 不区分大小写的正则;匹配到的模型 id 会被排除。 |
| preserveCustomFields | switch | on | 对已存在的 id 保留每个模型的自定义字段。 |
| syncRequestAt | number | 0 | 内部触发器,由 Sync now 按钮写入。不要手动编辑。 |
| debugFile | text | (空) | 可选文件路径;设置后每一步都会追加写入该文件。清空即可停止追踪。 |
| lastSyncAt / lastSyncSummary / lastSyncError | read-only | — | 上次同步时间、结果摘要、错误。由插件写回。 |

默认排除规则:

^@cf/ embedding bge- rerank ocr whisper tts deepgram aura- melotts
sensevoice smart-turn speech audio asr gsr stable-diffusion dreamshaper
flux- leonardo runwayml lyria diffusiongemma resnet distilbert ising
m2m100 indictrans translate hunyuan-mt safety guard allam riva
nemotron-parse image

也就是说:默认保留对话模型;向量 / 重排 / 语音 / 图像 / 翻译 / 审核模型会被过滤掉。删掉某条正则,就能放行这一类模型。

工作原理

GET {baseUrl}/models ──► filter by excludePatterns ──► diff against the current models list
│
┌────────────────────────────────┘
▼
configEditor.edit(llm-pi-ai entry, providers.<name>.models = new list)
▼
write to profiles/<profile>/cordis.patch.yml (comments preserved) → Loader applies
▼
write lastSyncAt / lastSyncSummary / lastSyncError back to this plugin's row

触发方式:启动同步(激活后 20 秒)、定时(intervalMinutes)、手动(设置按钮或 /newapi-sync)。启动同步有保护:如果距上次同步不到 2 分钟,就什么都不做,这样状态写回不会引发反复挂载。

安全阀

- HTTP 非 2xx、超时(30 秒),或返回的不是 OpenAI 兼容列表 → 报告错误并跳过本轮。
- 上游列表为空,或所有模型都被过滤掉 → 跳过写入,并提示你放宽 excludePatterns。
- 只有列表确实有变化时才写文件;已存在的列表为空时直接接管。
- 如果 agent-default-model 指向本插件管理的路由,而被移除的模型恰好是当前默认模型,摘要里会追加一条警告。
- excludePatterns 里有非法正则时,会报告并跳过该条,不影响其他条目。

故障排查

- 什么都没同步 → 在设置表单里查看 lastSyncError;最常见的原因是 baseUrl 为空或 token 被拒绝。
- 我需要的模型不见了 → 它匹配到了某条排除正则;从 excludePatterns。
- 逐步排查 → 把 debugFile 设成一个路径,然后复现问题。
- 安装后面板不见了 → 刷新网页。

限制

- 这个插件独占整个 providers.<providerName>.models 列表。 不要手动维护它——手动加进去的模型会在下次同步时被覆盖。其他路由字段(apiKeyEnv、baseURL、 api 等)不受影响。
- GET /v1/models 返回的是 id,不是能力信息。所以新加入的模型用的是 pi-ai 默认值; preserveCustomFields 只对原本就存在的 id 保留字段。
- syncRequestAt 在设置表单里显示成一个普通数字字段——它是 Sync now 按钮的内部触发器。外观上不完美;别动它。
- 客户端半区用的是 harness 内部结构(settings.section 槽位、 ctx.remote.settings.mutate)。DSH 升级后可能需要相应改动;把上面的 peer 范围当作受支持范围。
- Host 侧消息只有中文(摘要、/newapi-sync 描述、错误字符串)。
设置面板本身已本地化(zh/en)。本地化 Host 半区是欢迎的贡献。
- 状态回写属于非易失配置变更,所以每次同步都会重新挂载插件; 2 分钟启动保护能防止它陷入循环。

开发说明

- 激活期间,插件运行在 Loader 的 HMR 事务里,此时直接调用 configEditor.edit 会抛 HMR transactions cannot be nested。所以所有写入都走
exclusive() 辅助函数,它通过 ctx.hmr.executing.exit(fn) 在干净上下文中执行回调。
- 状态字段是非易失的(必须持久化);syncRequestAt 是易失的,所以外部编辑文件会发出 loader/volatile-update,监听器用它重新装定时器并检查是否有手动请求。

卸载

从插件管理器里移除该 bundle(或执行 dsh plugin --profile web remove dsh-newapi-model-sync)。
卸载不会动已经写进 llm-pi-ai 的模型列表。

许可证

MIT

中文说明

把 New API 实例的模型列表双向覆盖同步进 DeepSeek Harness 的 llm-pi-ai provider 路由:上游新增即加入,上游删除即移除,并默认滤掉网关里常见的向量 / 重排 / 语音 / 图像 / 翻译等非对话模型。

特性

- providers.<providerName>.models 双向同步(新增 / 移除 / 无变更不写文件)。
- 可编辑的排除规则(excludePatterns,大小写不敏感正则)。
- 字段保留:列表中原有的模型保留其自定义字段(contextWindow、reasoningEfforts 等),只有真正的新 id 才按 { id, name } 生成。
- 设置页分区(Host + Client 双半区):开关、地址、密钥(掩码)、路由名、周期、排除规则、「立即同步」按钮。另有 /newapi-sync 命令。
- 三种触发:启动补同步(激活后 20 秒)、定时、手动。
- 安全阀保证上游异常不会毁掉你的配置(见下)。

安装

dsh plugin --profile web add dsh-newapi-model-sync # 从 npm(发布后)

或从源码
git clone https://github.com/PellyLee/dsh-newapi-model-sync.git
dsh plugin --profile web add ./dsh-newapi-model-sync

dsh plugin --profile web add /path/to/dsh-newapi-model-sync # 从任意本地目录

profile 名不是 web 就换成你自己的。安装后刷新一次浏览器页面(客户端半区在页面加载时注入; Host 侧与定时同步无需刷新)。

配置

设置 → New API 同步(同样的字段也会出现在「设置 → 插件」的本插件表单里)。字段含义见上表: enabled 总开关、baseUrl 实例地址(例如 https://newapi.example.com/v1,默认为空,填了才会同步)、apiKey 仅用于 GET /models 的密钥、providerName 目标路由、intervalMinutes 周期、 excludePatterns 排除规则、preserveCustomFields 字段保留、debugFile 排错日志、 lastSyncAt/Summary/Error 只读状态。

安全阀

- HTTP 非 2xx、超时(30 秒)、响应不是 OpenAI 兼容列表 → 报错并跳过本轮写入。
- 上游返回空列表,或全部被排除规则滤光 → 跳过写入并提示放宽规则。
- 列表无差异不写文件;原列表为空时直接接管。
- 若被删的模型恰好是当前默认模型,摘要里会追加警告。
- 写错的单条正则会被单独告警并忽略,不影响其余规则。

注意与限制

- 本插件接管整个 models 列表:不要再手工维护它(手工加的会在下一轮被覆盖);路由其它字段不受影响。
- /v1/models 不返回能力参数,新增模型按 pi-ai 默认值处理。
- 设置表单里会出现 syncRequestAt 数字框,它是「立即同步」按钮的内部触发器,正常不要动。
- 客户端半区依赖 harness 内部形状(settings.section 槽位、ctx.remote.settings.mutate), DSH 升级可能需要跟着改;支持范围以上面的 peer 区间为准。
- Host 侧文案目前只有中文(摘要、命令描述、错误信息);设置面板本身是 zh/en 双语。

卸载

在插件管理里移除 bundle 即可;卸载不会改动 llm-pi-ai 中已经同步好的模型列表。
预览分享卡片长什么样 ↓PellyLee/dsh-newapi-model-sync
分享 · DeepSeek Harness Hub
PellyLee/dsh-newapi-model-sync

把 New API 的模型列表自动同步到路由配置

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部