dsh-llm-ollama:DeepSeek Harness 的 Ollama 提供方插件

前言

DeepSeek Harness(DSH)的擴展方式以插件爲主。若要在 DSH 的 web profile 中接入本地或遠程 Ollama 服務,常見訴求不只是“能對話”,還包括 Ollama 原生參數、模型發現和推理狀態展示。dsh-llm-ollama 是 DSH 的 Ollama 提供方插件,通過 Ollama 原生 POST /api/chat 協議接入本地或遠程 Ollama 服務,並提供整頁 Ollama 設置界面與一鍵模型發現。

這是什麼

dsh-llm-ollama 是由 1035041186 維護的社區插件,許可證爲 MIT,非官方出品。

它解決的是 DSH 側接入 Ollama 的提供方適配問題:把 Ollama 服務作爲 DSH 的模型提供方使用,支持對話、工具調用(tool calls)、圖片附件(多模態模型)、推理過程展示、模型參數透傳和會話級上下文覆蓋。

核心功能

整頁 Ollama 設置界面

插件通過 settings.section 擴展點提供整頁設置界面:

  • 入口:設置 → Ollama。
  • 可管理提供方配置。
  • 提供方級參數包括 API 地址、keep_alive、temperature(範圍 0–2)和可選 API 密鑰。
  • 也提供 settings.yaml 等效配置。

原生 Ollama 對話

插件使用 Ollama 原生協議進行對話:

  • 接口:POST /api/chat。
  • 流式返回:NDJSON。
  • 支持工具調用(tool calls)。
  • 支持圖片附件,需配合支持視覺的多模態模型。
  • 支持推理過程展示,將 message.thinking 軌跡渲染爲推理塊。

模型發現

插件通過 Ollama 服務器接口發現模型:

  • 使用 GET /api/tags 拉取服務器上的模型。
  • 彈窗中勾選後可加入模型目錄。
  • 也可手動添加模型。

模型級參數

模型級參數會映射到 Ollama 的 options:

  • 上下文窗口映射到 options.num_ctx。
  • 最大輸出 token 映射到 options.num_predict。
  • 未填上下文窗口時,默認發送 32K / 32768。

推理控制

推理控制項爲 thinkingCapable:

  • 默認自動識別。
  • 自動識別依據 /api/tags 返回模型 capabilities 中的 thinking 字段。
  • 如果自動判斷不符合預期,可手動覆蓋爲始終顯示或始終隱藏。
  • 推理等級菜單默認提供 off / on,對應 think: false / think: true。
  • 支持 levels 模式,並提供 low / medium / high / max 與默認推理等級。

會話級上下文覆蓋

在會話中可以使用 /ollama-context 臨時覆蓋當前會話的上下文:

  • 預設:4K / 8K / 16K / 32K / 64K / 128K。
  • 支持自定義值。
  • 支持跟隨系統配置。
  • 覆蓋值作爲 num_ctx 使用。
  • 僅當前會話生效。

本地或遠程服務

插件支持本地或遠程 Ollama 服務:

  • 本地默認地址:http://localhost:11434。
  • 遠程服務填對應 API 地址即可。
  • 本地與遠程的 API 地址配置方式一致。

安裝與啓用

環境要求

  • DeepSeek Harness web profile。
  • 已測試版本 0.1.0-rc.6。
  • v0.1.9 起兼容 0.1.1-rc.2 及以上,該版本要求適配器實現 prepareCall。
  • 需要 Ollama 服務和 curl。
  • Linux / macOS 自帶 curl;Windows 10+ 自帶 curl。
  • package.json 顯示版本 0.1.16、許可證 MIT、private: true、engines.node >=22.19.0。

安裝命令

先確認 DSH web profile 可用,然後執行:

dsh plugin --profile web add git+https://github.com/1035041186/dsh-llm-ollama.git
dsh --profile web --dump-config
dsh web

第一條命令安裝插件。
第二條命令可選,用於確認 llm-ollama 插件行已存在。
第三條命令重啓 web 側,使配置生效。

安裝後,插件通過 cordis.patch.yml 與 package.json 的 dsh.bundle.patch 自動掛載 llm-ollama 插件行。

從舊版升級

如果從 ≤0.1.2 舊版升級,且此前手動在 cordis.patch.yml 中添加過 llm-ollama 行,需要先刪除該行再重啓,避免觸發:

duplicate loader entry id: llm-ollama

典型用法

本地 Ollama 服務

先在 Ollama 側準備模型並啓動服務:

ollama pull llama3.2:3b
ollama serve

本地服務默認監聽:

http://localhost:11434

配置 DSH 提供方

  1. 刷新頁面,進入“設置 → Ollama”。
  2. 配置 API 地址,例如 http://localhost:11434。
  3. 按需配置保持時間、溫度和可選 API 密鑰。
  4. 點擊“獲取可用模型”,從 Ollama 服務器拉取模型並勾選加入。
  5. 也可以手動添加模型。
  6. 展開某個模型,填寫上下文窗口,例如 32K。
  7. 填寫最大輸出 token。
  8. 配置推理控制;默認自動識別,必要時手動覆蓋爲始終顯示或始終隱藏。

保存後,該提供方會出現在會話的模型選擇器中。

會話內臨時調整上下文

在會話輸入框輸入:

/ollama-context

隨後選擇預設值、自定義值或跟隨系統配置。該覆蓋值作爲 num_ctx 發送,並且只作用於當前會話。

無真實 Ollama 時聯調

無真實 Ollama 服務時,可以運行內置 mock Ollama 服務器:

node scripts/mock-ollama.mjs

該 mock 服務器監聽:

127.0.0.1:11434

用於 /api/tags 與流式 /api/chat 聯調。

適用場景與注意

適合使用 DSH web profile、希望接入本地或遠程 Ollama 的使用者。尤其適合需要 Ollama 原生參數透傳、/api/tags 模型發現、num_ctx / num_predict 配置和會話級上下文覆蓋的場景。

注意以下事項:

  • 這是社區插件,非官方出品。
  • 插件以當前 dsh 進程權限運行,安裝前應檢查源碼、倉庫與許可證。
  • 圖片功能需配合支持視覺的多模態模型使用;純文本模型收到圖片會由 Ollama 報錯。
  • API 密鑰字段當前僅保存憑據引用,尚未隨請求發送。
  • 遠程部署鑑權建議在 Ollama 前配置反向代理,做 TLS 與訪問控制。
  • dsh plugin add 使用 pnpm file: / git 協議會將插件拷貝進 profile 的 node_modules,本地修改源碼不會自動反映;聯調時可改爲 link: 指向本地目錄。

鏈接

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

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

小夜