dsh-llm-openai-completions 插件介绍

前言

在 DeepSeek Harness (DSH) 的生态中,连接自定义网关(如 vLLM、LM Studio 或自建 OpenAI 代理)通常需要特定的适配器。dsh-llm-openai-completions 是一个用于自定义网关的 OpenAI Completions 兼容适配器。它填补了 llm-deepseek 和 llm-pi-ai 之外的空白,专门处理非标准网关的协议差异,特别是针对角色定义和思考模式的兼容性问题。

核心功能

该插件主要解决以下问题:

  1. 角色定义兼容:强制使用 role: "system",避免自定义网关收到非标准 developer 角色时报错(Unexpected message role 400)。
  2. 思考模式驱动:思考行为由模型配置中的 compat.thinkingFormat 驱动,支持 Qwen3.6(enable_thinking)、Qwen Chat Template 以及 Qwen3.8(reasoning_effort)等多种格式。
  3. 接收端解析:在接收端将 Qwen3 风格的思考内容(vLLM 将其渲染在 content 中)分离为独立的推理块,避免思考文本混入回复正文。
  4. 视觉输入支持:支持接收用户上传的图片(单张或多张),并将其序列化为 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

注意事项

  1. 项目已停止维护:根据 2026-10-01 的公告,该项目已被停止维护并下架。原因是 dsh-thinking-levels 不再需要此插件。
  2. 版本状态:npm 上的版本停留在 0.1.0。虽然 package.json 显示 0.2.0,但包含视觉/图像输入功能的 0.2.0 分支从未发布,且不会再发布。
  3. 依赖关系:视觉输入功能依赖于宿主提供的 ctx.attachments(附件存储)来读取图片字节并进行 Base64 编码。纯文本模型不受影响。
羽毛球分组比赛记分
小程序二维码

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

小夜