前言¶
在 DeepSeek Harness (DSH) 的生态中,连接自定义网关(如 vLLM、LM Studio 或自建 OpenAI 代理)通常需要特定的适配器。dsh-llm-openai-completions 是一个用于自定义网关的 OpenAI Completions 兼容适配器。它填补了 llm-deepseek 和 llm-pi-ai 之外的空白,专门处理非标准网关的协议差异,特别是针对角色定义和思考模式的兼容性问题。
核心功能¶
该插件主要解决以下问题:
- 角色定义兼容:强制使用
role: "system",避免自定义网关收到非标准developer角色时报错(Unexpected message role400)。 - 思考模式驱动:思考行为由模型配置中的
compat.thinkingFormat驱动,支持 Qwen3.6(enable_thinking)、Qwen Chat Template 以及 Qwen3.8(reasoning_effort)等多种格式。 - 接收端解析:在接收端将 Qwen3 风格的思考内容(vLLM 将其渲染在
content中)分离为独立的推理块,避免思考文本混入回复正文。 - 视觉输入支持:支持接收用户上传的图片(单张或多张),并将其序列化为 OpenAI 兼容的多部分
content数组(image_url)。
安装与启用¶
安装¶
使用 DSH 命令行安装插件(推荐使用 npm 源):
dsh plugin --profile web add dsh-llm-openai-completions -w
安装完成后,需要重启 dsh web 以使插件生效:
dsh web
配置启用¶
在 ~/.dsh/profiles/web/cordis.patch.yml 中启用插件,并指定需要接管代理的 provider 列表:
llm-openai-completions:
enabled: true
providers:
- local-35b
典型用法¶
在 llm-pi-ai 配置中,指定 api: openai-completions 并配置 baseURL 和模型参数。插件会根据配置接管该 provider 的流式行为。
llm-pi-ai:
providers:
local-35b:
api: openai-completions
baseURL: http://192.168.100.242:8200/v1
models:
- id: Qwen3.6-35B-A3B
reasoningEfforts: { off: null, high: 'high' }
compat:
thinkingFormat: qwen # 使用 enable_thinking,不使用 reasoning_effort
注意事项¶
- 项目已停止维护:根据 2026-10-01 的公告,该项目已被停止维护并下架。原因是
dsh-thinking-levels不再需要此插件。 - 版本状态:npm 上的版本停留在
0.1.0。虽然package.json显示0.2.0,但包含视觉/图像输入功能的0.2.0分支从未发布,且不会再发布。 - 依赖关系:视觉输入功能依赖于宿主提供的
ctx.attachments(附件存储)来读取图片字节并进行 Base64 编码。纯文本模型不受影响。