← 返回列表
✓ 可直接安装
适用于 DeepSeek HarnessDSH的插件:为每个模型单独附加自定义 HTTP 请求头。
自动检查通过:npm 包已发布且 engines 声明满足基线(声明 Node ^22.19.0 || >=24);该结论来自程序自动检查,未经人工实机验证。 · 最近上游提交 2026/9/15 · 已提供中文文档
为 DeepSeek Harness 按模型自定义请求头:在“设置 → 插件 → 插件配置”中定义命名的请求头配置文件,在提供方的模型目录中为每个模型选择一个配置文件,之后对该模型的每次调用都会携带这些请求头。
综合分
29.1
GitHub 分
29.1
用户评分
—
★ Stars
0
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add dsh-custom-headersnpm 包 dsh-custom-headers 已校验归属本仓库,走 npm 安装最省事
信任档位:已验证本站已于 0 天前真实安装成功(L4 · 真实安装)
- 是什么
- dsh 原生插件 · other
- 装得上吗
- 本站已真实安装成功(L4 · 真实安装,非静态推断)
- 安全吗
- 本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
- 还在维护吗
- 活跃:最近一次提交在 10 天前
档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →
🟢实装验证通过· 2026/9/25
由本站实装验证器在真实 dsh 环境安装成功,非静态推断。
数据截至 2026/9/23(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查✓ 自动检查通过
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-custom-headers @ 0.1.0
✓Node 引擎要求 ^22.19.0 || >=24 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/23 21:27:47
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-api-remotes@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-llm@deepseek-ai/dsh-llm-pi-ai@deepseek-ai/dsh-settings@deepseek-ai/schemastery用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
由 DeepSeek 最新模型翻译生成DSH 自定义请求头 适用于 DeepSeek Harness(DSH)的插件:为每个模型单独附加自定义 HTTP 请求头。 实际部署中,模型请求往往不直达提供方,而是经过企业网关、自研代理或 OpenAI 兼容端点——这些中间层常要求额外的请求头(租户标识、计费标签、自定义鉴权拼写等),且不同模型的要求可能不同。本插件把这件事做成一个按模型、可随时修改的设置项: 1. 在「设置 → 插件 → 插件配置」中定义任意多个命名的请求头配置(header profile),每个配置是一组 名称 / 值 键值对; 2. 在「设置 → 模型」的模型目录中,为某个模型从下拉框里选择一个配置; 3. 此后每次调用该模型,插件都会在 pi-ai 适配器派发前把所选配置解析成请求头并附加到请求上——读取的是实时设置,改配置或换选择,下一次请求即生效,无需重启。 插件由两半组成:host 半端负责 custom-headers 设置命名空间(写入校验、持久化)和 LLM 派发注入;Web 客户端半端提供插件配置卡片和模型行下拉框。全部数据都保存在 DSH 的用户设置文档中,不引入任何外部存储;取消选择或删除配置后,下一次调用即恢复原状,不留痕迹。 为什么需要 DSH 的提供方资料(provider profile)本身支持 headers,但它作用于整个提供方路由,无法区分同一路由下的不同模型。而「按模型附加请求头」在真实部署里很常见: - 企业网关 / 自研代理:网关按 X-Tenant、X-Billable 之类的头做租户识别与计费分摊;不同模型可能归属不同租户或成本中心,需要不同的头。 - OpenAI 兼容端点的非标准要求:不少兼容端点(自建 vLLM / one-api / 各类中转)要求额外的标识头,或自定义拼写的鉴权头,否则拒绝服务。 - 灰度与流量调度:给特定模型的请求打标记头,让上游代理把这部分流量导向灰度部署或备用集群。 - 排障与观测:附加追踪 / 调试标识头,把某个模型的调用从网关日志里单独筛出来。 这些头若写进提供方资料,会无差别地附加到该路由下的所有模型;若写进自定义适配器代码,则无法随设置调整。本插件正是在这两者之间补上了「按模型粒度、运行时可视化配置」这一层。 特性 - 命名的请求头配置:每个配置包含一个 ID 和任意多组 header-name / value 键值对;ID 不允许重复(大小写不敏感,Gateway 与 gateway 视为同一个)。 - 配置持久化:所有配置保存在 DSH 的用户设置文档中(custom-headers 命名空间),重启后保留;写入时由 Host 端校验,非法数据(重复 ID、非法请求头名/值)会被拒绝并原样反馈。 - 按模型选用:在「设置 → 模型 → 提供方 → 模型目录」中,每个模型行内显示一个请求头选择下拉框(默认 + 全部配置 ID);选择结果写入该模型在 llm-pi-ai 设置中的 headersProfile 字段,随设置文档持久化。 - 调用时自动生效:调用被选中模型时,插件在 pi-ai 适配器派发前把该配置解析为请求头并附加到请求上;取消选择(默认)或删除配置后,下一次调用即恢复原状。 安装 要求:deepseek-harness 0.1.5-rc.2(@deepseek-ai/dsh-* 包 ≥ 0.1.5-rc.2)。 三种方式都通过 DSH CLI 把插件加入指定的 Profile(这里以 web 为例,按需替换)。本包自带 cordis.patch.yml,组合器会自动挂载 host 半端,并向 Web 客户端提供 /plugins/dsh-custom-headers/client.js——安装后无需额外的组合配置。 From npm dsh plugin --profile web add dsh-custom-headers From GitHub dsh plugin --profile web add github:EPCN-fla/dsh-custom-headers 通过 git 源安装时,npm 会执行包的 prepare 脚本自动完成构建(要求 Node ^22.19.0 或 >=24)。 Local development git clone https://github.com/EPCN-fla/dsh-custom-headers.git cd dsh-custom-headers npm install npm run build npm pack # 产出 dsh-custom-headers-.tgz 然后用 CLI 安装这个 tarball: dsh plugin --profile web add /path/to/dsh-custom-headers-0.1.0.tgz 开发期也可以把 CLI 直接指向工作副本目录;每次改动后重新 npm run build 即可生效。 使用 1. 创建请求头配置 打开 设置 → 插件 → 插件配置,在「网页搜索」下方找到 自定义请求头 卡片,点击展开: 1. 点击 添加配置;每个配置在卡片内独立成段,默认收起、只显示 ID,点击 ID 行展开后可编辑。 2. 展开后填写 ID(如 gateway),点击 + 添加请求头 填写 请求头名称 与 值;点击行尾 − 删除一行,点击 删除配置 删除整个配置。 3. 点击 保存。校验不通过时(ID 为空、ID 重复、请求头名称/值不合法),保存按钮不可用并显示对应错误。 2. 为模型选择配置 打开 设置 → 模型,展开某个提供方卡片,在 模型目录 中展开某个模型的 容量(Capacities)折叠区——「请求头」下拉框与容量配置一起折叠,展开后显示在「上下文窗口」和「最大输出」的下方一行: - 默认:不附加自定义请求头(初始状态)。 - 选择某个配置 ID:之后调用该模型时自动附加该配置的请求头。 尚未保存的提供方/模型行(新建卡片)上的下拉框处于禁用状态;请先保存提供方。 3. 生效时机与优先级 - 请求头在每次调用时从当前设置解析,修改配置或更换选择后,下一次请求即生效,无需重启。 - 名称冲突时(大小写不敏感):提供方资料(provider profile)自带的 headers 优先于本插件的模型级请求头;DSH 的归属标识头(User-Agent)始终由 Harness 决定,本插件会过滤同名自定义项。 - 凭据认证头(如 Authorization、x-api-key)由 SDK 按提供方凭据设置;如需自定义认证方式,请在配置中使用自定义名称的头(例如 X-Api-Key 的网关拼写),并知晓与凭据头同名时可能被 SDK 覆盖。 配置存储格式 custom-headers 命名空间的用户层文档: custom-headers: profiles: - id: gateway headers: - name: X-Tenant value: acme - name: X-Trace-Id value: "1" 模型行上的选择(llm-pi-ai 命名空间,由下拉框写入,无需手工维护): llm-pi-ai: providers: acme: models: - id: my-model headersProfile: gateway 部署方也可以通过插件的 cordis 行 config: 预置组合层配置(作为用户层的 base): - id: dsh-custom-headers name: dsh-custom-headers config: profiles: - id: gateway headers: - name: X-Tenant value: acme 支持范围与已知限制 - 仅对 pi-ai 适配器(llm-pi-ai 提供方路由,含手工声明的自定义提供方)的调用生效;其他适配器家族(如 deepseek-official)不经过该连线路径,选择不会被应用。 - 请求头应用于模型的实际 LLM 请求;「从端点获取模型列表」等配置期发现请求沿用提供方资料自身的头,不附加模型级配置。 - 下拉框通过 DOM 锚定注入到官方模型页面的「容量」折叠区内(官方槽位没有模型行级扩展点)。已按 rc.2 的页面结构做了防御式适配:官方页面结构若发生变化,插件会停止注入而不影响页面本身。 - 「插件配置」中的卡片位置依赖内置「网页搜索」卡片的注册:本插件会等待其出现在槽位账本后再注册(约 10 秒兜底超时)。若部署裁剪了内置插件包导致其不存在,本卡片仍会注册,但位置取决于当时的账本顺序。 - 同名请求头在一个配置内重复出现时,按大小写不敏感「后者覆盖前者」处理(Fetch Headers 语义)。 开发 npm install # 安装依赖(.npmrc 已启用 legacy-peer-deps) npm run typecheck # 类型检查 npm test # vitest:单元 / DOM 注入 / 组件 / 真实 pi-ai 连线测试 npm run build # 产出 lib/index.js(host)、lib/client.js(web)、类型声明 测试全部位于 tests/: | 文件 | 覆盖 | |---|---| | tests/headers.spec.ts | 校验、归一化、解析、模型行选择读取等纯逻辑 | | tests/host.spec.ts | 命名空间注册校验、适配器包装、请求头盖印与还原、卸载清理 | | tests/pi-ai-wire.spec.ts | 真实 pi-ai openai-completions 连线:model.headers 到达请求、冲突优先级、认证保持 | | tests/ops.spec.ts | 客户端设置读写(冲突重试、拒绝透传、空行清理) | | tests/injector.spec.ts | 模型行发现、幂等注入、staged 行、语言锚点 | | tests/card.spec.tsx | 配置卡片:展开、编辑、校验拦截、保存/放弃、只读 | | tests/select.spec.tsx | 下拉框:选项、写入、已删除配置显示、禁用态、中文文案 | 许可证 MIT