前言¶
在本地部署大模型时,开发者常面临模型切换繁琐、进程管理混乱的问题。直接将 DeepSeek Harness (DSH) 连接到 llama-server 虽然可行,但在需要动态更换模型时,通常需要手动停止服务、修改配置并重启,不仅操作繁琐,还容易导致请求中断或显存未正确释放。dsh-llama-model-manager 插件旨在解决这一痛点,通过一个稳定的 OpenAI 兼容网关,自动管理本地模型的加载与卸载。
插件简介¶
该插件是 DeepSeek Harness (DSH) 的一个组件,专门用于在 Windows 环境下运行 llama-server.exe,并将本地 GGUF 模型通过 OpenAI 兼容接口暴露给 DSH。它接管了模型的整个生命周期——包括启动、停止、切换和故障恢复——使得 DSH 只需连接一个固定的 URL,而无需关心底层模型的变化。
核心功能¶
- 生命周期管理:自动处理模型的加载与卸载。在需要切换模型时,插件会先停止旧模型,再加载新模型。
- 稳定网关:提供一个固定的 OpenAI 兼容网关地址(默认端口 8080),DSH 无需频繁更改配置。
- 优雅关闭与显存释放:使用
Ctrl+C信号而非强制终止进程,确保llama.cpp能正确清理资源,避免显存泄漏。 - 隐蔽控制台:进程启动时隐藏控制台窗口,避免闪烁干扰。
- 孤儿进程处理:记录进程状态并提供安全机制,防止 DSH 崩溃后遗留的资源泄漏。
- 可视化设置:提供设置页面,实时显示状态、日志和模型列表,支持直接在界面上操作。
安装与启用¶
确保环境满足以下要求:
* 操作系统:Windows 10/11。
* 运行环境:Node.js >= 20.10。
* 依赖项:DSH Web UI,以及 llama-server.exe(来自 llama.cpp)。
安装命令如下:
dsh plugin --profile web add github:DoctorxPriestess/dsh-llama-model-manager
安装后需重启 DSH 以加载插件。
配置与使用¶
在 DSH 的设置页面中,填写 llama-server.exe 的路径及模型信息。随后在 DSH 的 settings.yaml 中配置 Provider,指向插件的网关地址:
llm-pi-ai:
providers:
llamacpp:
displayName: llama.cpp local
api: openai-completions
apiKeyEnv: LLAMACPP_API_KEY
baseURL: http://127.0.0.1:8080/v1
models:
- id: qwen38-iq3s
name: Qwen3.8-27B IQ3_S
contextWindow: 131072
端口说明:
* 网关端口:8080(DSH 连接地址)。
* 内部端口:18080(llama-server 监听地址)。
停止方法:
插件支持通过设置 stopMethod 控制停止行为:
* auto(默认):优先发送 Ctrl+C,超时后强制终止。
* ctrl-c:仅发送 Ctrl+C,不强制终止。
* taskkill:跳过 Ctrl+C,直接强制终止。
注意事项¶
- 平台限制:插件仅支持 Windows 10/11。
- 权限与安全:插件以 DSH 进程的权限运行,安装前建议查阅源码。
- 配置隔离:插件本身不读取或写入 DSH 的
settings.yaml,但在配置 Provider 时需正确填写baseURL。
总结¶
dsh-llama-model-manager 通过自动化生命周期管理,解决了本地模型切换时的资源泄漏和操作繁琐问题,为开发者提供了一个稳定且易于管理的本地推理解决方案。