前言¶
在 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 編碼。純文本模型不受影響。