dsh-llm-arena:在 DSH 中接入 Arena API 与 OpenAI Responses

前言

DeepSeek Harness(DSH)通过插件扩展模型提供方,而不是把各家 API 写死在主程序里。若要在 Web 配置里选用 Arena 的模型,并走 OpenAI Responses 协议而非 Chat Completions,需要一份与 DSH 配置解析、凭证引用一致的 provider bundle。

社区维护的 dsh-llm-arena(维护者 Sazmir,分类:模型推理)面向 Arena API,并针对控制台里 Arena Router 促销余额的使用方式做了模型目录与说明;同时提供 Windows 下在特定 Cloudflare 拦截场景下的传输回退。以下按安装、配置与选用模型的顺序说明。

这是什么

dsh-llm-arena 是 DSH 的 Arena API provider bundle:注册 provider id arena,协议为 openai-responses,基址 https://api.arena.ai/v1,凭证引用名为 ARENA_API_KEY。包内预置六个模型 id,并在配置合并时以「仅补缺」方式恢复缺失的 arena 路由,避免静态 patch 覆盖其它层已注册的 provider。

文档声明兼容 DeepSeek Harness 0.2.0-rc.2;Node.js 需 22 或更高。其它 DSH 版本未经单独验证前不应默认可用。

核心功能

Provider 与协议

  • Provider id:arena
  • 协议:openai-responses(非 Chat Completions)
  • Base URL:https://api.arena.ai/v1
  • 凭证引用:ARENA_API_KEY(bundle 配置中只写引用名,不落明文密钥)

预置模型与余额类型

插件在模型选择器中提供六条目录项。README 强调:Arena Router 余额与 All models 余额对应不同模型;选错可能遇到 HTTP 402 paid_credits_required。

Model id Display name 访问说明
coding-router-preview Arena Router · Coding (promo) 推荐给 Arena Router 促销余额
claude-coding-router-preview Arena Router · Claude (promo) Claude 向路由,推荐给 Arena Router 促销余额
claude-fable-5-1 All models · Claude Fable 5.1 直连;需 All models 非零余额
claude-opus-5-5 All models · Claude Opus 5.5 同上
claude-sonnet-5-5 All models · Claude Sonnet 5.5 同上
claude-haiku-5-5 All models · Claude Haiku 5.5 同上

若控制台在 Arena Router 有余额而 All models 为 $0.00,应优先选 coding-router-preview 或 claude-coding-router-preview。目录存在不保证账户权限、现价、限速或实际上下文上限;以当前 Arena 控制台为准。

Bundle 对未公开核实上限的模型使用保守元数据(例如 262,144 上下文、32,768 输出);coding-router-preview 使用文档记载的 1,000,000 上下文、128,000 输出及 text/image 元数据。这些是包内目录值,不是上游服务承诺。

运行时路由恢复

DSH 的 profile 与 bundle 层可能整体替换 llm-pi-ai.providers。本插件在解析配置时仅在缺少 arena 路由时注入默认项:保留其它 provider、不改动用户已显式定义的 arena、拒绝畸形 map,且不写回 profile 文件。

Windows 下的 Cloudflare 兼容回退

默认每次 Arena 请求先走 DSH 已安装的 Fetch。仅在 Windows 上,当对 https://api.arena.ai 的响应同时满足 HTTP 403、HTML 正文、server: cloudflare、非空 cf-ray,且在正文前缀内识别到 Cloudflare 拦截页标记时,该次请求会通过本地 PowerShell 7(pwsh)/.NET HttpClient 助手回放一次;下一次仍从原生 Fetch 开始。普通 401/JSON 403、配额与速率类响应不触发回退;macOS/Linux 保持仅原生传输。需要 Windows 回退时需安装 PowerShell 7 并保证 pwsh 在 PATH 中。

安装与启用

建议按发布标签安装(当前 package 版本为 0.1.1):

dsh plugin --profile web add github:Sazmir/dsh-llm-arena#v0.1.1
dsh --profile web --dump-config
dsh web

--dump-config 只校验组合结果,不发起 provider 请求。确认输出中包含 llm-arena 行。安装后重启已有 DSH Web Host,刷新页面,在模型选择器中应能看到 Arena API 与上述六个模型项。

跟踪 main 的开发安装:

dsh plugin --profile web add github:Sazmir/dsh-llm-arena

卸载:

dsh plugin --profile web remove dsh-llm-arena

卸载 bundle 不会自动删除或吊销 DSH 中已保存的 Arena 密钥;需要时请自行移除或轮换。

配置 API 密钥

推荐在 Web 界面操作:

  1. 打开 DSH Web → Settings → Models。
  2. 选择 Arena API。
  3. 填写 Arena API key 并应用。

DSH 将值存到凭证引用 ARENA_API_KEY。勿把明文密钥写入 cordis.patch.yml、自定义头、命令行参数、示例或日志。

Windows 也可用启动环境变量(示例自 README):

$env:ARENA_API_KEY = Read-Host "Arena API key" -MaskInput
dsh web

POSIX:

read -rsp 'Arena API key: ' ARENA_API_KEY; echo
export ARENA_API_KEY
dsh web

典型用法与费用相关说明

安装并配置密钥后,在 DSH Web 的模型列表中选择 Arena API 下的模型 id 即可发起调用。实际请求会把对话内容(含 prompt、system、工具 schema 与结果、附件等)发往 Arena 及其可能选择的上游;调用、重试与回退回放可能消耗额度。

以下步骤不产生模型调用:安装、dsh --profile web --dump-config、在插件仓库内执行 npm test 与 npm run verify。README 中的可选 live smoke 需显式 opt-in,可能计费,不应在 CI 或常规校验中默认运行。

适用场景与注意

适合谁: 已在 DSH 0.2.0-rc.2 上使用 Web profile,并拥有 Arena API key;希望用 OpenAI Responses 统一接 Arena,且尤其要利用 Arena Router 促销余额走 coding-router-preview / claude-coding-router-preview 的开发者。

权限与安全: 插件随当前 DSH 进程权限运行;安装前应审阅仓库源码与许可证(MIT)。模型调用涉及数据出网与计费,安装前请阅读 README 中的 WARNING 与 SECURITY 说明。

排错摘要:

  • 选择器中没有 Arena API:确认 DSH 版本、--dump-config 是否含 llm-arena、重启 Host 并刷新页面。
  • MISSING_CREDENTIAL:配置 ARENA_API_KEY 或启动环境变量。
  • 直连 Claude 模型报额度/权益错误:检查 All models 余额与账户权限。
  • Windows 上识别到 Cloudflare 拦截但回退失败:检查 pwsh 与 PowerShell 7。

DSH 社区插件目录(如 SkillHub)与 DeepSeek / 幻方无官方从属关系;本介绍事实来源以插件 GitHub README 与 package 元数据为准。

链接

  • 目录页:https://www.skillhub.cn/plugins/Sazmir/dsh-llm-arena
  • 仓库:https://github.com/Sazmir/dsh-llm-arena

以上为在 DSH Web 中挂载 Arena provider、按账户余额类型选对模型 id,并在 Windows 特定网络场景下了解传输行为的操作要点。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜