🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

本地模型加载器 Vmarcelo49/dsh-local-models

DeepSeek Harness
Vmarcelo4960 天前有提交已提供中文文档扫描:含敏感能力

在网页界面加载 GGUF 模型并注册为提供商

28.7/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Vmarcelo49/dsh-local-models
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么[目录]—
dsh 原生插件 · other
暂无时间戳·判据 →
装得上吗[实装验证]—
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →
数据截至 2026/10/06·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 60 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 47 处,展示前 23 条)
  • 读取本地文件
    lib/index.js:257
    return statSync(p).isDirectory();
  • 读取本地文件
    lib/index.js:265
    return statSync(p).isFile();
  • 读取本地文件
    lib/index.js:275
    accessSync(p, fsConstants.X_OK);
  • 读取本地文件
    lib/index.js:276
    return statSync(p).isFile();
  • 执行外部命令来自配置/变量
    lib/index.js:388
    execFile(file, args, { encoding: "utf8", ...opts }, (err, stdout, stderr) => {
  • 读取本地文件
    lib/index.js:407
    const st = statSync(p);
  • 读取本地文件
    lib/index.js:513
    pciIdsText = readFileSync(p, "utf8");
  • 发起网络请求
    lib/index.js:620
    const res = await fetch("http://127.0.0.1:" + PORT + "/health", {
  • 执行外部命令固定命令
    lib/index.js:673
    pids = execSync("lsof -ti :" + PORT, { encoding: "utf8" }).trim();
  • 写入本地文件
    lib/index.js:1186
    mkdirSync(dataDir(), { recursive: true });
  • 写入本地文件
    lib/index.js:1387
    appendFileSync(LOG_PATH, "\n=== " + new Date().toISOString() + " " + info.logNote + " ===\n");
  • 执行外部命令来自配置/变量
    lib/index.js:1389
    const next = spawn(info.bin, args, {
  • 写入本地文件
    lib/index.js:1395
    try { appendFileSync(LOG_PATH, data); } catch { }
  • 发起网络请求
    lib/index.js:1517
    const res = await fetch("http://127.0.0.1:" + PORT + "/models", { signal: AbortSignal.timeout(1500) });
  • 写入本地文件
    lib/index.js:1790
    mkdirSync(dirname(file), { recursive: true });
  • 写入本地文件
    lib/index.js:1792
    writeFileSync(tmp, JSON.stringify(value, null, 2), "utf8");
  • 写入本地文件
    lib/index.js:1793
    renameSync(tmp, file);
  • 发起网络请求
    lib/index.js:2007
    const res = await fetch("http://127.0.0.1:" + PORT + "/models", { signal: AbortSignal.timeout(1500) });
  • 发起网络请求
    lib/index.js:2470
    const resp = await fetch("http://127.0.0.1:" + PORT + "/models", { signal: AbortSignal.timeout(1500) });
  • 发起网络请求
    lib/index.js:2479
    const r = await fetch("http://127.0.0.1:" + PORT + "/models/unload", {
  • 发起网络请求
    lib/index.js:2506
    const r = await fetch("http://127.0.0.1:" + PORT + "/models/unload", {
  • 发起网络请求
    lib/client.js:195
    return fetch(path).then(function (r) { return parseJson(r); });
  • 发起网络请求
    lib/client.js:198
    return fetch(path, {
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 加载GGUF模型
  • 注册为提供商
  • 本地运行模型

在 deepseek harness 上用 Llama.cpp 跑本地模型

README

由 DeepSeek 最新模型翻译生成
dsh-local-models 一个 dsh 插件,为 dsh Web GUI 添加一个 Local Models 标签页:选择一个 .gguf 文件,调整上下文和投机解码参数,查看实时显存估算,并通过 llama-server 加载它——然后一键将正在运行的服务器注册为 dsh 中的 LLM 提供商。 基于原版上游 llama.cpp(llama-server)构建。无需分叉、无需补丁、无需构建步骤:客户端 bundle 是手写的 React.createElement(没有 JSX 工具链),node 部分无依赖。 功能 - 模型选择器 — 应用内文件浏览器(仅目录 + .gguf),在 POST /local-models/gguf-meta 背后进行仅解析头部的 GGUF 解析(架构、量化、层数、上下文长度、MoE 检测) - 启动选项 — 上下文滑块(8K 步进,上限为模型训练时的上下文)+ 微调输入、固定 MTP 草稿深度(0–3)、思考级别(off/low/medium/xhigh)、可选的视觉 mmproj(GPU 或 CPU 卸载)、MoE 专家放置(--cpu-moe / --n-cpu-moe / top-k 覆盖)以及适配显存的辅助工具
展开完整文档(README 剩余 1 节)
dsh-local-models

一个 dsh 插件,为 dsh Web GUI 添加一个 Local Models 标签页:选择一个 .gguf 文件,调整上下文和投机解码参数,查看实时显存估算,并通过 llama-server 加载它——然后一键将正在运行的服务器注册为 dsh 中的 LLM 提供商。

基于原版上游 llama.cpp(llama-server)构建。无需分叉、无需补丁、无需构建步骤:客户端 bundle 是手写的 React.createElement(没有 JSX 工具链),node 部分无依赖。

功能

- 模型选择器 — 应用内文件浏览器(仅目录 + .gguf),在 POST /local-models/gguf-meta 背后进行仅解析头部的 GGUF 解析(架构、量化、层数、上下文长度、MoE 检测)
- 启动选项 — 上下文滑块(8K 步进,上限为模型训练时的上下文)+ 微调输入、固定 MTP 草稿深度(0–3)、思考级别(off/low/medium/xhigh)、可选的视觉 mmproj(GPU 或 CPU 卸载)、MoE 专家放置(--cpu-moe / --n-cpu-moe / top-k 覆盖)以及适配显存的辅助工具
- 实时显存估算 — 权重 + Q8_0/Q4_0 KV 缓存 + 循环状态 + 计算/图 + 开销,对照 16 GB,并显示可容纳 / 安全余量 / 可容纳的最大上下文行(Gemma 系列的准确性见 Known issues)
- 配置文件 — 保存命名的启动配置,一键重新加载
- 路由模式 — 从单个 OpenAI 兼容端点提供所有已保存的配置文件(--models-preset);模型按需加载,默认一次只驻留一个。启动路由会自动在 dsh 中(重新)注册其模型——无需手动按 Register。
- 在 dsh 中注册 — 将就绪的服务器写为 llm-pi-ai 提供商路由(包含视觉模态 + 思考级别)
- 终端浮层 — 从标签页实时跟踪 llama-server 日志

要求

- 带有 web 配置文件的 dsh(该插件会组合进其中)
- 一个 llama-server 二进制文件(上游 llama.cpp,Vulkan/CUDA/CPU——取决于你的机器使用哪种)
- 显存估算常量针对 16 GB GPU;如果你的不同,它们位于 lib/client.js 顶部(TOTAL_VRAM_BYTES、SAFE_MARGIN_BYTES)

安装

cd ~/.dsh/profiles/web
dsh plugin --profile web add /path/to/dsh-local-models
then add "dsh-local-models" to the "bundles" array in package.json

重启 dsh web 进程(bundle 组合仅在启动时生效),刷新浏览器,打开 Settings → Local Models。

node 部分的更改(路由、注入列表)需要重启 dsh;客户端部分的更改只需刷新页面。

用法

1. Choose GGUF… — 选择一个模型文件(Home / Models 快捷方式,Up 导航)。
2. 调整 context、Max MTP head(固定草稿;上限为 3——更深的在大上下文下会崩溃)、thinking level、可选的 mmproj 和 MoE 设置。
3. Load model,查看状态卡片,通过 Open terminal 检查输出。
4. Register in dsh — 该路由(默认 local-)会出现在 Models 选择器中。
5. 或者,为多模型端点保存 profiles 和 Start router (from profiles)。

配置

| 变量 | 默认值 | 含义 |
| LOCAL_MODELS_PORT | 8080 | llama-server 端口 |
| LOCAL_MODELS_BIN | ~/Projetos/llama.cpp/build/bin/llama-server | 服务器二进制文件 |
| LOCAL_MODELS_SHORTCUTS | /mnt/raid0/GGUF | 以冒号分隔的文件浏览器快捷目录(name=path 用于自定义标签) |
| LOCAL_MODELS_MMPROJ_CPU | 1 | 视觉投影器权重保留在 RAM 中(0 = 卸载到 GPU) |
| LOCAL_MODELS_ROUTER_MAX | 1 | 同时驻留的路由模型最大数量 |
| LOCAL_MODELS_MAX_IMAGE_BYTES | 10485760 | 视觉图像保护限制 |
| LOCAL_MODELS_IMAGE_PIXEL_BUDGET | 4194304 | 视觉像素预算 |
| DSH_HOME | ~/.dsh | 数据目录(local-models/profiles.json、llama-server.log) |

启动标志固定为经过验证的日常配置:完全卸载、-b 2048 -ub 512 -t 4 -np 1、--flash-attn on --kv-unified、--cache-type-k q8_0 --cache-type-v q4_0、MTP --spec-type draft-mtp --spec-draft-n-max N --spec-draft-p-min 0.75(在超过 131072 上下文时会被丢弃,除非配置文件设置了 ignoreCtxCap —— 即该标签页的“ignore the MTP ctx softcap”复选框,它会在任意上下文下强制启用 draft,并可能导致 OOM 或解码崩溃)。

HTTP API(挂载在 /local-models 下)

| 路由 | 含义 |
| GET /local-models/browse?dir= | 目录 + .gguf 文件 |
| POST /local-models/gguf-meta | {path} → 解析后的 GGUF 头部(已缓存) |
| GET /local-models/status | 状态 + 实时 /health 探测 |
| GET /local-models/logs?offset=&max= | llama-server.log 的增量尾部 |
| POST /local-models/run | 启动服务器 |
| POST /local-models/stop | 停止子进程(或回收端口) |
| POST /local-models/profiles / GET | 保存(upsert)/ 列出配置文件 |
| POST /local-models/profiles/remove | 删除配置文件 |
| POST /local-models/router/start | 从配置文件构建预设 + 启动路由器 |
| POST /local-models/router/unload | 卸载一个路由模型 |
| POST /local-models/router/unload-all | 卸载所有路由模型 |
| POST /local-models/register | 将就绪的服务器添加为 llm-pi-ai 路由 |

项目结构

lib/index.js node 部分:进程管理器、GGUF 解析器、路由、预设 lib/client.js 浏览器部分:设置标签页(单一免构建 bundle) skills/ 操作员技能:spawn-parity 检查清单、配置文件审计 docs/ UI 模型图

纯函数、可导出的辅助函数(normalizeEffort、moeArgsFor、generateRouterPresets、buildProviderProfile、profiles store)无需运行服务器即可进行单元测试;node lib/index.js /path/to/model.gguf 会转储解析后的头部作为自测。

已知问题

参见 KNOWN_ISSUES.md —— 最值得注意的是,对于 Gemma 系列布局,VRAM 估算值是近似值。

许可证

MIT —— 参见 LICENSE。
预览分享卡片长什么样 ↓Vmarcelo49/dsh-local-models
分享 · DeepSeek Harness Hub
Vmarcelo49/dsh-local-models

在网页界面加载 GGUF 模型并注册为提供商

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部