前言¶
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字段值为 JSONnull。判断逻辑需写为typeof x === 'string' && x.length > 0,使用!== undefined会被null值击穿。 - 思考链禁用:不能发送
thinking: {type: 'disabled'}。kimi-k3不允许关闭思考,强行发送会返回误导性的温度错误。 - 输入声明:模型必须在配置中声明
input: [text, image]才能发送图片,否则端点会拒绝请求。 - 流式超时:流式输出空闲超时设置为 300000ms。
结语¶
该插件通过适配器的方式,填补了 DSH 生态中百炼 Kimi 模型接入的空白,特别是解决了原生适配器对图片和系统提示支持的缺失。如需查看详细文档或源码,可访问 GitHub 仓库。