DeepSeek Harness 插件:阿里云百炼 Kimi 模型适配器

前言

DeepSeek Harness (DSH) 的模型适配层在对接阿里云百炼时存在两个主要阻塞点:自带的 dsh-llm-deepseek 适配器直接抛出 UNSUPPORTED_CONTENT,拒绝处理图片;而 dsh-llm-pi-ai 适配器会将系统提示发成 role: 'developer',导致百炼返回 400 role 'developer' is not allowed。sologuy/dsh-llm-bailian-kimi 插件通过适配百炼的 OpenAI 兼容接口,解决了这些问题,并在 DSH 中原生支持 kimi/kimi-k3 模型的图片输入、思考链与工具调用。

插件介绍

dsh-llm-bailian-kimi 是一个 DeepSeek Harness 的 LLM 适配器插件,由维护者 sologuy 开发。它专注于解决在 DSH 中调用阿里云百炼(DashScope)上 Kimi 模型时的兼容性问题,特别是对图片输入和多模态能力的支持。

核心功能

该插件提供了以下能力:
* 图片输入(多模态):支持通过 input: [text, image] 声明并传输图片。
* 流式输出 + 思考链:支持流式响应,并解析 reasoning_content 字段展示思考过程。
* Function Calling:支持工具调用接口。
* 统计信息:提供 token 使用量和缓存命中统计。
* 零构建:纯 ESM JavaScript 实现,无需构建步骤,直接通过 dsh plugin add 安装。

安装与启用

插件安装过程依赖 DSH 的 profile 机制。

1. 安装插件
在终端执行以下命令:

dsh plugin --profile web add github:sologuy/dsh-llm-bailian-kimi

由于插件为纯 ESM,不会触发 pnpm 的 allowBuilds 拦截。

2. 配置凭证
在 DSH 的凭证文件 $DSH_HOME/.credentials.yaml 中添加阿里云百炼的 API Key:

DASHSCOPE_API_KEY: sk-xxxxxxxx

3. 配置模型
在 $DSH_HOME/settings.yaml 中添加插件配置段。该段支持热加载,修改后无需重启即可生效(需确保插件已被正确解析)。

llm-bailian-kimi:
  apiKeyEnv: DASHSCOPE_API_KEY
  baseURL: https://dashscope.aliyuncs.com/compatible-mode/v1
  reasoningEffort: max          # high | max
  models:
    - id: kimi/kimi-k3
      name: Kimi K3 · 百炼
      description: 1M 上下文 · 支持图片
      contextWindow: 1000000
      input: [text, image]      # 声明 image 才能发图

注意事项

使用该插件时需注意以下百炼特有的限制:

  • 系统提示角色:系统提示必须使用 role: 'system',使用 developer 会导致 400 错误。
  • 工具调用续片:工具调用续片的 id 和 name 字段值为 JSON null。判断逻辑需写为 typeof x === 'string' && x.length > 0,使用 !== undefined 会被 null 值击穿。
  • 思考链禁用:不能发送 thinking: {type: 'disabled'}。kimi-k3 不允许关闭思考,强行发送会返回误导性的温度错误。
  • 输入声明:模型必须在配置中声明 input: [text, image] 才能发送图片,否则端点会拒绝请求。
  • 流式超时:流式输出空闲超时设置为 300000ms。

结语

该插件通过适配器的方式,填补了 DSH 生态中百炼 Kimi 模型接入的空白,特别是解决了原生适配器对图片和系统提示支持的缺失。如需查看详细文档或源码,可访问 GitHub 仓库。

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

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

小夜