dsh-llm-ollama:爲 DeepSeek Harness 接入 Ollama Cloud 聊天與 Web 搜索抓取

前言

DSH 的理念是「一切皆插件」,但當前版本的 Models 頁沒有給第三方模型暴露編輯入口。想在 DeepSeek Harness 的 Web 界面裏用 Ollama Cloud 的模型聊天,或者把搜索、抓取切到 Ollama 的 web_search / web_fetch 後端,就需要一個插件來補上這一層。下面介紹的 dsh-llm-ollama 就是做這件事的。

這是什麼

dsh-llm-ollama 是 DeepSeek Harness 的 Ollama Cloud 集成插件,由 NOirBRight 維護,MIT 許可。package.json 的描述是:Ollama Cloud models, OpenAI-compatible chat, and Web Search/Fetch for DeepSeek Harness。

設計上有一個明確的取捨:聊天走 Ollama 的 OpenAI 兼容 Chat Completions 端點,經共享 pi-ai 適配器;模型發現和 Web Search/Fetch 保留 Ollama 原生 API,因爲這些獨立能力不屬於聊天協議。協議與能力拆分的細節記錄在倉庫的 ADR 0001。

核心功能

按已覈實的能力列一下:

1、Ollama Cloud 聊天:POST <openai-base>/chat/completions,baseURL 裏的 /api 自動映射到 /v1

2、模型發現(Ollama 原生):GET /api/tags + POST /api/show

3、Web Search provider:ollama-cloudPOST /api/web_search),可搭配任意所選聊天模型。

4、Web Fetch provider:ollama-cloudPOST /api/web_fetch),同樣可搭配任意所選聊天模型。

後兩個是 ctx.web provider,DeepSeek、Codex、Kimi 或其他 OpenAI 兼容聊天模型都能調用 Ollama 的 web_search 工具,只要 profile 選了 ollama-cloud

Web 配置部分,插件在 Settings → LLM Providers 下貢獻一張 Ollama Cloud 卡片(key: llm-ollama)和 Host 的 llm 路由,設置與憑據經認證的 Connection RPC 管理,憑據字面量不會回傳瀏覽器。

獲取可用模型時,Host 讀 /api/tags,去重後經 /api/show 併發增強最多六個模型。原生元數據提供上下文窗口和 vision、thinking、tools 標誌,這些是 /v1/models 不暴露的。

Cloud 用量:讀 GET <baseURL>/usage,渲染會話與每週窗口的消耗百分比,外加每週每模型請求數。自託管端點沒有用量接口時顯示不支持提示,而不是報錯。

模型目錄默認摺疊,每模型一行:拖拽手柄排序(順序隨目錄持久化),chevron 展開該行的上下文窗口、Default thinking 和能力標誌,垃圾桶按鈕刪除。

可靠性方面:符合條件的模型請求失敗默認最多重試 8 次;Web 請求默認 15 秒預算,瞬時超時或響應前傳輸失敗重試一次;重定向在跟隨前會被拒絕。

安裝與啓用

先說版本要求:本版本要求 DeepSeek Harness 0.1.2-alpha.4@deepseek-ai/cordis@4.0.2,不兼容 Alpha.1–Alpha.3;舊運行時用戶須保留最後適配該運行時的插件 tag(當前版本 0.6.16)。Node 引擎要求 ^22.19.0 || >=24.0.0

README 給出的安裝方式是直接從 GitHub 安裝,先裝 dsh-llm-providers-ui 0.1.3,再裝 dsh-llm-ollama 0.6.16,然後啓動 Web:

dsh plugin --profile web add --force \
  https://github.com/NOirBRight/dsh-llm-providers-ui/releases/download/v0.1.3/dsh-llm-providers-ui-0.1.3.tgz
dsh plugin --profile web add --force \
  https://github.com/NOirBRight/dsh-llm-ollama/releases/download/v0.6.16/dsh-llm-ollama-0.6.16.tgz
dsh web

倉庫跟蹤的是可直接發佈的 lib 構建產物,所以 GitHub 安裝不需要 build-script 白名單。

注意 dsh-llm-providers-ui 必須在 profile 中顯式安裝:LLM Providers 設置頁和共享的 llm-providers order store 歸它所有。缺少 owner 時,Web 端的 Providers 頁與這張卡片會被省略並在瀏覽器控制檯告警,但 Host 模型路由 ollama-cloud 仍然可用。與 owner 共存時,裝載順序無所謂。

典型用法

固定 Web providers

插件註冊這兩個 provider 並不改變部署策略,需要在 profile patch 裏固定:

- id: web
  config:
    searchProvider: ollama-cloud
    fetchProvider: ollama-cloud

省略 fetchProvider 可以只遷移搜索,保留內置 HTTP fetcher。

插件配置

README Config 節給出的示例:

- id: llm-ollama
  name: 'dsh-llm-ollama'
  config:
    apiKeyEnv: OLLAMA_API_KEY
    baseURL: https://ollama.com/api
    defaultContextWindow: 262144
    streamIdleTimeoutMs: 300000
    webRequestTimeoutMs: 15000
    retryPolicy:
      mode: normal
      maxRetries: 8
      backoff:
        initialDelayMs: 500
        maxDelayMs: 10000
        jitterRatio: 0.1
    models:
      - id: gpt-oss:20b
        name: GPT-OSS 20B
        contextWindow: 131072
        thinking: true
      - id: llava
        name: LLaVA
        contextWindow: 4096
        vision: true

拉取模型與查看用量

經過上面的步驟,dsh web 啓動後打開 Settings → LLM Providers → Ollama Cloud。點獲取可用模型會立即打開選擇器,用未保存的 endpoint 和一次性 key 調認證 Connection RPC;應用後替換草稿目錄,並保留 current-only 模型。Cloud 用量區的呈現鏡像 ollama.com/settings。

遠程瀏覽器訪問

對於遠程瀏覽器,先配置 Host 允許列表,再使用 DSH 打印的認證 URL;或者使用 SSH loopback 隧道。

認證與信任邊界

插件的管理、發現和用量通道經 Alpha.4 Connection 服務的兩參數 rpc.handle(channel, handler) 註冊,不自行選擇 authority。每個進程鑄造隨機 launch token,DSH 只在 GET / 兌換該 token 爲綁定了 authority 的簽名瀏覽器會話 cookie;缺失、過期、畸形或 authority 錯誤的 cookie 在 RPC 分發前返回 401,靜態資源保持公開。認證之前,Connection 要求 Host 爲 loopback 或匹配配置的 --trusted-host 條目,附加的 Origin 必須等於 Host,Host/Origin 校驗失敗返回 403。插件不繞過 Host 信任與瀏覽器會話檢查。

適用場景與注意

適合的人羣:想在 DSH Web 裏用 Ollama Cloud 模型聊天的用戶;想把搜索或抓取切到 Ollama 原生後端的用戶;需要上下文窗口、vision / thinking / tools 等原生元數據的用戶。

幾點注意:

1、協議取捨:OpenAI Responses 非默認(Ollama 僅支持非有狀態 flavor);Anthropic Messages 非默認(需額外 Bearer header,且無模型列表與提示緩存)。

2、賬戶配額耗盡時,Ollama 真實 API 檢查保持 SKIP-QUOTA。

3、該插件以當前 dsh 進程的權限運行,安裝前建議先查看倉庫源碼與許可證(MIT),確認可信任再裝。

小結

dsh-llm-ollama 把 Ollama Cloud 的聊天、模型元數據、用量查看和原生 Web 搜索抓取整合進 DeepSeek Harness,版本兼容邊界和認證策略都寫得清楚。倉庫地址:https://github.com/NOirBRight/dsh-llm-ollama ,社區目錄頁(獨立站點,與 DeepSeek / 幻方無官方從屬關係):https://www.skillhub.cn/plugins/NOirBRight/dsh-llm-ollama 。

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

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

小夜