中文EN

dsh-request-params

model已测通过npmMIT

给 dsh 发出的模型请求加上自己的参数:OpenRouter 供应商路由和备用模型、思考强度、采样参数与自定义请求体字段、请求头,OpenRouter 和其他网关都能用。参数按 dsh 已配置的渠道管理;实时预览显示每个请求会多出什么,请求记录显示实际发出了什么、网关回了什么。

下载量 / Downloads
1,586
依赖体积 / node_modules
0.39 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

安装

dsh plugin --profile web add dsh-request-params

沙箱测试结果

阶段结果
1 安装✓
2 列装✓
3 挂载✓
4 启动—

四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。

README

请求参数(dsh-request-params)

[English](README.md) | 中文

给 dsh 发出的每个模型请求,加上你自己的参数。 OpenRouter 的供应商路由、备用模型、思考强度、采样参数、网关请求头,或者任何网关认的 JSON 字段。选一个 dsh 里已经配好的渠道,在页面上加参数,不用改代码;发出之前就能看到每个请求会多出什么;发出之后能看到网关回了什么。

<p align="center">

<img alt="在 openrouter 渠道设置供应商路由:DeepSeek 不提供正在预览的模型,被标了出来,页面提示请求会失败;换成 DeepSeek 提供的模型后提示消失;保存后,在渠道的最近请求里看到加上的内容" src="docs/demo-zh.gif" width="860">

</p>

为什么需要它

dsh 只发它的模型适配器认识的字段。而 OpenRouter 这类网关能接受更多:走哪些供应商、什么顺序、备用模型、思考预算、用于缓存亲和的会话 ID。dsh 不会发 OpenRouter 的 provider 路由偏好。已经有插件覆盖了其中一小块(比如供应商顺序和量化精度);这个插件是通用的:同一个页面处理任意网关的任意字段和请求头,OpenRouter 的路由选项有现成表单,还有实时预览和日志。

每一项参数属于一个渠道(或者自己写明主机、模型和路径),说明在请求体和请求头里加什么、替换什么、删掉什么。参数在请求离开 dsh 之前生效;在规则文件里,每一项就是一条规则。

亮点

  • 按渠道管理。 页面列出 dsh 里已经配好的模型渠道(官方 DeepSeek 路线,以及 llm-pi-ai 的每条路线)和各自发往的地址。打开一个渠道,就能看到它的参数,点一下就能加,自动对准这个渠道。其他地址的参数放在「其他地址」。
  • 知道每个渠道认什么。 每个渠道都标出它认哪种请求格式(OpenAI 或 Anthropic)和哪些额外字段(OpenRouter 的 provider、reasoning,vLLM 的 chat_template_kwargs 等),根据 dsh 的设置和它的地址自动识别。它认的参数种类排在前面,其余收在「其他种类」里。公司自建、兼容 OpenRouter 协议的中转,勾上「OpenRouter 扩展」就能用供应商路由。
  • 发出前就知道会发什么。 「发送时加上」用 JSON 显示这个渠道的参数会给所选模型的请求加上什么,包括还没保存的修改。什么都不会发出去。
  • 选供应商,不用手写 JSON。 「供应商路由」就是一份列表:搜索供应商(提供正在预览的模型的排在前面,带价格和可用率),排好顺序,决定能不能换用其他供应商,排除一些,排序方式,要求零数据留存,加备用模型;价格上限、量化精度、白名单、速度偏好在「更多条件」里。不提供该模型的供应商会被标出来;会导致 "No endpoints found" 失败的组合,保存前就会提醒。
  • 发出后看发生了什么。 每个渠道都列出它的最近请求:状态、加上了什么,网关拒绝时还有它的原话。「请求记录」里是 dsh 发出的所有模型请求。
  • 默认安全。 核心字段(messages、tools、model 等)和认证请求头(Authorization、x-api-key 等)改不了。密钥用环境变量({{env:名称}}),不会显示出来。应用参数时出了问题,请求原样发出,不会失败。
  • 常用路线共用一个入口。 官方 DeepSeek 接口,以及 llm-pi-ai 的 OpenAI 兼容和 Anthropic 兼容路线(OpenRouter、自建 vLLM、企业网关)走的是同一个 fetch 入口;验证过哪些,见「兼容性与限制」。
  • 一键更新。 插件有新版本时页面会告诉你,确认后用 DSH 自带的安装器装上。
  • 日常用着顺手。 一个开关就能全部暂停;没保存的修改离开页面也不丢,Ctrl/⌘ + S 保存;删除可以撤销;规则文件在别处被改过会被发现,而不是被覆盖;参数可以导出、导入 JSON;中英文界面,浅色深色都有,手机宽度也能用。页面自己出错时,会显示错误原文和「重新加载」,而不是一片空白。

<p align="center">

<picture>

<source media="(prefers-color-scheme: dark)" srcset="docs/screenshots/overview-dark-zh.png">

<img alt="openrouter 渠道:参数会给每个请求加上的 JSON,以及两项参数(供应商路由、思考强度),各用一行概括" src="docs/screenshots/overview-light-zh.png" width="860">

</picture>

</p>

<p align="center">

<picture>

<source media="(prefers-color-scheme: dark)" srcset="docs/screenshots/routing-dark-zh.png">

<img alt="供应商路由:供应商列表里 DeepSeek 被标为不提供正在预览的模型,搜索框列出提供该模型的供应商,带价格和可用率" src="docs/screenshots/routing-light-zh.png" width="860">

</picture>

</p>

安装

dsh plugin --profile web add dsh-request-params

从源码运行 dsh 的话用 pnpm dsh plugin --profile web add dsh-request-params,然后重启 dsh web。侧栏的「插件」下面会出现「请求参数」。

想试本地目录,把名字换成 link:/path/to/dsh-request-params。

快速上手:两分钟用上 OpenRouter

1. 先让 dsh 走 OpenRouter(已经配好就跳过)。llm-pi-ai 里 openrouter 是内置供应商,只要给一个密钥,放在环境变量里:

   - name: '@deepseek-ai/dsh-llm-pi-ai'
     config:
       providers:
         openrouter:
           apiKeyEnv: OPENROUTER_API_KEY

然后在输入框里选一个 OpenRouter 的模型。

2. 打开「请求参数」,选 openrouter 渠道。点「供应商路由」,输入供应商(例如 deepseek)按回车;如果不允许别的供应商接手,把「其他供应商」设成「不使用」;点「保存」(或 Ctrl/⌘ + S)。「发送时加上」会显示 provider 对象;在它的「模型」框里填你实际用的模型,如果有供应商被标成「不提供该模型」,换一个供应商或模型。

3. 发一条消息,渠道的「最近请求」里会显示加上了什么、网关返回的状态。

<p align="center">

<picture>

<source media="(prefers-color-scheme: dark)" srcset="docs/screenshots/requests-dark-zh.png">

<img alt="请求记录:每个模型请求的状态、经过的渠道、加了几项;展开的一条显示生效的参数和它设置的字段" src="docs/screenshots/requests-light-zh.png" width="860">

</picture>

</p>

能加什么

种类 · 加的内容 · 典型用途

供应商路由 · provider(order、only、ignore、allow_fallbacks、require_parameters、data_collection、zdr、quantizations、sort、max_price、preferred_min_throughput、preferred_max_latency、enforce_distillable_text)和 models · 选供应商和顺序、限价、要求零数据留存、回退到别的模型

思考强度 · reasoning(effort、max_tokens、exclude) · 调高或调低思考,或者不在回答里返回思考内容

采样参数 · top_k、min_p、top_a、repetition_penalty · 标准接口没有的采样项

会话粘性 · 请求体里的 session_id 和请求头 x-session-id · 让同一场对话固定走一个供应商,更容易命中缓存

应用署名 · HTTP-Referer 和 X-OpenRouter-Title 请求头 · 在 OpenRouter 上把流量记到你的应用名下(dsh 自己不发这些)

删除字段 · 删掉 store 之类的字段 · 网关不认 dsh 发的某个字段

自定义字段和请求头 · 随便:JSON 字段、请求头、删除 · 其他任何网关

一个渠道先列出哪些种类,取决于它认什么(见下面的「渠道认哪些字段」)。OpenRouter 渠道列出所有种类;认 OpenAI 格式的渠道列出采样参数、自定义字段、会话粘性和删除字段;Anthropic 渠道列出后三种。其他网关的示例(自建 vLLM 用 chat_template_kwargs 关闭思考、Helicone 请求头、Cloudflare AI Gateway 缓存请求头、OpenAI 的 prompt_cache_key)在对应的网关渠道上排在前面。其余的都在「其他种类」里,各自标出需要什么,照样可以添加。示例创建出来就是一项普通的自定义参数,随便改。「其他地址」里所有种类都有。

<p align="center">

<picture>

<source media="(prefers-color-scheme: dark)" srcset="docs/screenshots/add-dark-zh.png">

<img alt="一个还没有参数的 Anthropic 渠道:协议那一行、它认的三种参数,以及展开的「其他种类」,每种都标出需要什么" src="docs/screenshots/add-light-zh.png" width="860">

</picture>

</p>

渠道认哪些字段

每个渠道的地址下面会写出它的协议:它认哪种请求格式,以及在格式之外还认哪些额外字段。

  • 自动识别:格式来自 llm-pi-ai 里这条路线的 api 设置(openai-completions、anthropic-messages 等)、官方 DeepSeek 路线(Anthropic)、托管服务本身,或者看到过的请求路径。托管服务按地址识别:openrouter.ai(OpenRouter 扩展)、helicone.ai、gateway.ai.cloudflare.com、api.openai.com。
  • 可以手动改:点「修改」设定格式、勾选它认的字段。最常见的是公司自建、兼容 OpenRouter 协议的中转:勾上「OpenRouter 扩展」,这个渠道上供应商路由、思考强度、应用署名就会排到前面。设置和参数一起保存,按地址(主机加基础路径)记录;点「恢复自动识别」可以去掉。
  • 它改变什么:只影响哪些种类排在前面、目录提示有多确定。不管协议怎么写,请求都按参数原样发出。
  • 目录提示:供应商列表和「是否提供该模型」来自 OpenRouter 公开目录。参数发往 openrouter.ai 时,如果列出的供应商都不提供正在预览的模型,保存前就会提醒。发往其他网关时,这些提示只作参考:供应商名以你的网关为准,可以直接输入。

自己写参数

「自定义字段和请求头」有这些部分:

  • 请求体字段:一个 JSON 对象,合并进请求体。对象和已有内容合并,其他类型直接替换。
  • 请求头:加到请求上,同名的会被替换。
  • 「更多」里还有:缺省值(和请求体字段一样,但请求里已经有的字段不动)、删除字段(用点号写路径,如 store、stream_options.include_usage;先删除,再写入)、删除请求头、允许改核心字段。

每项参数都有适用范围。在渠道里,「全部模型」按钮可以把它限定到这个渠道的部分模型(deepseek/、-chat),菜单里的「编辑主机和路径」显示它匹配的地址。在「其他地址」里,参数自己写明主机(openrouter.ai、.example.com、127.0.0.1:8130)、可选的模型、可选的路径*(前缀)。不写路径时只作用于模型接口(…/chat/completions、…/messages、…/responses、…:generateContent);要用在别的接口,写上路径。

同一个请求

…(truncated)

以上内容来自 npm 上的 README,我们只做格式化,不改内容。

版本

npm 上共发布:6,最后更新 2026-10-26

链接

GitHub · Homepage · npm

同类插件