侧边栏壁纸
博主头像
Setyg的博客

当秋风染红落叶的时候,就是新生~

  • 累计撰写 86 篇文章
  • 累计创建 66 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录
AI

阿里云百炼接入 DeepSeek Harness:OpenAI 兼容端点与 cordis.patch.yml 配置实践

Setyg
2026-10-02 / 0 评论 / 0 点赞 / 1 阅读 / 0 字

阿里云百炼(Model Studio)的千问模型支持 OpenAI 兼容接口,而 DeepSeek Harness(DSH)的模型提供商恰好是按 OpenAI 兼容协议(openai-completions)配置的——所以接入不需要写任何适配代码,要对齐的就三样:API Key、BASE_URL、模型名。另一个很值的地方是百炼的模型市场里同时托管了 DeepSeek、Kimi、GLM、MiniMax 等三方模型,一个 Key 就能把多家模型接进 DSH。

一、接入前:先对齐两端的四个要素

整件事是两端各配一半,先把清单列清楚:

百炼侧说明DSH 侧说明
API Keysk- 开头,按地域绑定apiKeyEnv 引用名如 BAILIAN_API_KEY,指向密钥存储里的条目
BASE_URL按地域/业务空间选择baseURL 字段填到 /compatible-mode/v1 为止
模型名模型列表里的准确 idmodels 列表id 必须与百炼一致
协议OpenAI 兼容 chat/completionsapi: openai-completions与兼容模式正好对应

二、百炼侧:开通服务、拿 Key、先验证

在百炼控制台开通模型服务后,到 API-KEY 页面创建 Key。两个规则要记住:

  • Key 是按地域的:北京、新加坡、弗吉尼亚、东京各自地域创建的 Key 只能调对应地域的 endpoint,用错地域会被鉴权拒绝(报 401 Incorrect API key provided)。
  • 三方直供模型要先开通:DeepSeek(含硅基流动、万擎直供版)、Kimi、GLM、MiniMax 这类,要在控制台模型广场搜索对应模型卡片,点「立即开通」并授权后才能调用,且三方直供目前仅在中国站华北2(北京)地域可用。

拿到 Key 后先在命令行验证一轮,再进配置文件——这一步能省掉后面一大半排错时间:

# 北京地域专属域名为例({WorkspaceId} 换成自己的业务空间 ID)
curl -s https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1/chat/completions \
  -H "Authorization: Bearer $BAILIAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "qwen-turbo", "messages": [{"role": "user", "content": "你好"}]}'

# 返回正常 JSON(有 choices 字段)即通

三、BASE_URL 怎么选

百炼目前有两代地址:老的通用域名仍然可用,官方为部分地域推了业务空间专属域名,稳定性和性能更好,新接入建议直接用后者。{WorkspaceId} 在百炼控制台的业务空间详情页查看。

接入点BASE_URL(OpenAI SDK 用)
华北2(北京)专属域名(推荐)https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1
新加坡专属域名https://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1
日本(东京)专属域名https://{WorkspaceId}.ap-northeast-1.maas.aliyuncs.com/compatible-mode/v1
美国(弗吉尼亚)https://dashscope-us.aliyuncs.com/compatible-mode/v1
老通用域名(北京)https://dashscope.aliyuncs.com/compatible-mode/v1

注意两个细节:DSH 里填的 baseURL 到 /compatible-mode/v1 为止,不要带后面的 /chat/completions(那是裸 HTTP 请求的完整 endpoint);末尾也不要多写斜杠。

四、写 DSH 的 provider 条目

DSH 每个 profile 的自定义配置在同目录的 cordis.patch.yml,Windows 一般在 %USERPROFILE%\.dsh\profiles\desktop\cordis.patch.yml,Linux/macOS 是 ~/.dsh/profiles/<profile>/cordis.patch.yml。旁边的 cordis.yml 是打包输出的空基线,文件自己的注释都写了「Edit cordis.patch.yml, not this file」。patch 层在所有 bundle 层之后生效,按条目 id 定向覆盖。

给 @deepseek-ai/dsh-llm-pi-ai 这个包加一个百炼 provider:

- id: llm-bailian            # 条目 id,整棵树内唯一
  name: "@deepseek-ai/dsh-llm-pi-ai"
  config:
    providers:
      bailian:               # provider 名,切换模型时的完整引用是 bailian/模型id
        displayName: 百炼模型  # 界面上展示的名字
        apiKeyEnv: BAILIAN_API_KEY   # 密钥引用名,不是 Key 本身
        api: openai-completions      # 对应百炼的 OpenAI 兼容模式
        baseURL: https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1
        models:
          - id: qwen3.8-flash
            name: qwen3.8-flash
          - id: qwen3.7-max
            name: qwen3.7-max
          - id: deepseek-v4-pro      # 百炼上的 DeepSeek,同样走这个 Key
            name: deepseek-v4-pro
          - id: kimi/kimi-k2.5       # 三方直供模型带供应商前缀
            name: kimi/kimi-k2.5

三个容易写错的地方:

  • models 里的 id 必须和百炼模型列表中的调用名完全一致;三方直供模型有些带 vendor/ 前缀(如 kimi/、siliconflow/、vanchin/),以控制台模型详情页为准。
  • api 只能按 OpenAI 兼容协议填;百炼原生 DashScope 协议(如 Qwen-Audio)不吃这套,别接到兼容模式的 baseURL 上调。
  • apiKeyEnv 起的是「引用解引用」作用:配置树里只存名字,密钥本体在下一步的凭据文件里。

五、API Key 落到凭据文件

DSH 的命名密钥存在 ~/.dsh/.credentials.yaml,文件分 records(连接授权、账号凭据)和 refs(命名密钥)两块,百炼的 Key 就是一条 ref:

# ~/.dsh/.credentials.yaml(节选,密钥已打码)
version: 1
records:
  deepseek-account-platform/default:
    kind: grant
    payload: ...
refs:
  BIGMODEL_API_KEY: 94d1****
  BAILIAN_API_KEY: sk-****

refs 下的键名要与 provider 条目里 apiKeyEnv 的值逐字一致。这个文件通常由 DSH 的设置界面写入;手工补条目时照着已有格式加一行即可。它是明文落盘的,别把它提交进任何仓库。

六、把百炼模型设为默认

provider 挂上后,会话里可以直接选 bailian/qwen3.8-flash 这类「provider/model」全名;要改默认模型,就再加一个 patch 条目指向 @deepseek-ai/dsh-agent-default-model:

- id: agent-default-model
  name: "@deepseek-ai/dsh-agent-default-model"
  config:
    provider: bailian
    model: qwen3.8-flash

改完两个文件后重启 DSH(profile 的 patch 层在启动时组合),新建会话确认模型名显示为 bailian/...,发一句话能正常返回流式输出即接通。

七、常见问题速查

现象原因处理
401 invalid_api_key / Incorrect API key provided最常见是 Key 与 BASE_URL 地域不匹配;其次是 Key 复制不全在 endpoint 对应地域的控制台重新创建 Key,更新 refs 条目
404 model not found模型 id 写错;或三方直供模型(DeepSeek/Kimi 等)没在控制台开通以模型详情页的调用名为准;先开通对应服务再调用
连接失败 / 超时 / 403baseURL 抄成了含 /chat/completions 的完整 endpoint;网络或代理不可达BASE_URL 截到 /compatible-mode/v1;先用 curl 单独验证连通性
改了配置没生效编辑的是 cordis.yml 而不是 cordis.patch.yml;或没重启改 patch 文件并重启 DSH,用新会话验证
YAML 解析报错、整层配置失效缩进混用 Tab/空格,或两个条目用了同一个 id统一两个空格缩进;yq eval . cordis.patch.yml 先验一遍再重启

接好之后的收益不止千问:百炼的兼容接口下挂着 DeepSeek、Kimi、GLM、MiniMax 各家模型,DSH 这边只是往同一个 models 列表里多添几行——工具链、权限档位、MCP 配置全都不用动,一个百炼 Key 就把 DeepSeek Harness 的模型侧全部打通了。

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区