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_alivetemperature(范围 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、许可证 MITprivate: trueengines.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.ymlpackage.jsondsh.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: 指向本地目录。

链接

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

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

小夜