在 DeepSeek Harness 中运行本地模型:vmarcelo49/dsh-local-models

前言

DeepSeek Harness (DSH) 采用插件化架构,扩展能力通过插件实现。在 Web 界面中直接调用本地模型通常需要手动管理 llama-server 进程或通过外部工具。vmarcelo49/dsh-local-models 插件为此提供了解决方案,它直接在 DSH 的 Web 界面中添加了“Local Models”选项卡,允许用户选择 .gguf 文件,调整推理参数,并通过 llama-server (llama.cpp) 启动模型。

该插件由 Vmarcelo49 维护,采用 MIT 许可证。它不 fork llama.cpp,而是直接使用上游二进制文件,并提供了零构建步骤的安装方式。

核心功能

模型选择器

界面内嵌文件浏览器,仅显示目录和 .gguf 文件。后端通过解析 GGUF 头部信息,展示架构、量化类型、层数、上下文长度以及 MoE 检测结果。

启动选项

提供细粒度的模型加载参数控制:
* 上下文滑块:以 8K 为步长调整,上限受限于模型训练的上下文长度。
* KV Cache 量化:分别选择 K 和 V 的量化类型,界面显示每元素字节数。
* MTP 与思考:固定 MTP 草稿深度(0-7)和思考级别(off/low/medium/xhigh),支持保留思考内容的开关。
* 视觉与 MoE:支持可选的视觉投影仪(mmproj)和 MoE 专家放置设置。

实时 VRAM 估算

系统会检测 GPU(NVIDIA 通过 nvidia-smi,AMD 通过 sysfs),计算权重、KV 缓存、计算图开销与 GPU 总显存的对比。界面会显示“适合”、“安全余量”以及“最大上下文”三行建议值。

配置文件与路由模式

  • 配置文件:保存命名后的启动配置,支持一键重载。
  • 路由模式:通过 OpenAI 兼容端点提供服务。模型按需加载,默认同时驻留一个。启动路由器后,插件会自动将模型注册为 dsh 的 LLM 提供商路由。

终端覆盖

提供实时日志查看功能,可以直接在选项卡内查看 llama-server 的运行状态和输出。

安装与启用

安装步骤

该插件通过 pnpm 管理依赖,需确保 pnpm 已在系统 PATH 中。

# 从 npm 注册表安装
dsh plugin --profile web add dsh-local-models

# 或直接从 Git 克隆安装(无构建步骤)
dsh plugin --profile web add github:Vmarcelo49/dsh-local-models

安装后,插件会被写入 dsh.profile.bundles 数组。由于涉及 Node 端路由注入,安装后必须重启 DSH Web 进程,然后刷新浏览器,并在设置中打开 Local Models 选项卡。

前置要求

  • DSH 需要启用 web 配置文件。
  • 系统中需安装 llama-server 二进制文件(上游 llama.cpp)。

典型用法

  1. 加载模型:在 Local Models 选项卡中,通过文件浏览器选择一个 .gguf 文件。
  2. 调整参数:根据 VRAM 估算结果,调整上下文长度、KV 量化类型、MTP 深度以及思考级别。保存配置后点击加载。
  3. 注册与使用:模型加载成功后,点击“Register in dsh”按钮。该插件会将运行中的服务注册为 llm-pi-ai 提供商路由,随后可在 DSH 的通用模型选择器中找到并调用。
  4. 配置路由:如果想在一个端点中切换多个模型,可以将配置保存为 Profiles,然后点击“Start router (from profiles)”。
  5. 自动启动:在 Router 卡片中勾选“Start the router automatically when dsh starts”,插件会在 DSH 启动时自动加载路由器并注册模型,无需手动操作。

配置说明

插件运行依赖以下环境变量(可通过代码块 lib/client.js 修改默认值):

变量名 默认值 说明
LOCAL_MODELS_PORT 8080 llama-server 监听端口
LOCAL_MODELS_ROUTER_MAX 1 路由模式下同时驻留的最大模型数
LOCAL_MODELS_MMPROJ_CPU 1 视觉投影仪权重是否保持在 RAM 中(0 为全 GPU)
DSH_HOME ~/.dsh DSH 数据目录

注意事项

  • 无版本门控:该插件声明无 peer dependencies,因此不会因 DSH 版本不匹配而被拒绝安装。
  • 变更生效时机:Node 端的配置或路由变更需要重启 DSH;客户端界面的变更仅需刷新页面。
  • 资源管理:路由模式支持闲置驱逐(Idle eviction),默认 30 分钟无请求后卸载模型以释放显存,防止资源耗尽。
羽毛球分组比赛记分
小程序二维码

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

小夜