把本机 llama-server 接进 Atelyx 的 Rust 原生插件:检索并下载 gguf 模型,扫描本地模型目录,调好启动参数一键启停,实时查看运行状态、连接状态与进程日志。
界面是两个工作区面板(控制台 / 模型商店)加一个设置页 tab「llama.cpp」:首次启用自动按左右分栏摆好(控制台 40%|模型商店 60%),之后可在「添加面板」里自由调整。控制台把服务状态、启停、已装模型、启动参数与进程日志收在同一页,不必在多块面板间来回切换;系统托盘也提供一键启停与复制服务地址。
- 打开即加载热门列表;可按关键词检索、按下载量/点赞/最近更新排序;列表滚到底自动续下一页,取到上限即标注到底。
- 右栏展示选中仓库的
.gguf文件清单(含精确体积)与按 Markdown 渲染的模型卡简介;文件行常显下载钮,整行可聚焦——右键或回车/空格同样下载,鼠标、触摸与键盘都有落点。本地已有的文件标「已在库」;大模型的分片文件(xxx-00001-of-00003.gguf这类)自动归组,一键整组下载(已在库的跳过)。 - 镜像站内置
hf-mirror.com(国内镜像)与huggingface.co(官方),检索与下载都走所选项。 - 同一镜像下的同一仓库详情缓存 10 分钟,重复点开不重复请求。
- 多任务并行:至多 3 个文件同时下载,其余排队等空位(失败或移除腾出的位立即补上)。模型商店底部任务区逐任务一卡,可暂停(保留断点)、继续、移除,「清空已完成」收掉已落定任务;完成与失败弹系统通知。同一文件已在队列或传输中时不重复下载。
- 落盘到
模型目录/发布者/模型名/(自动建目录),仓库内子目录文件压平成单段名;同一仓库的量化与视觉投影因此同处一个文件夹,模型列表可自动配上 mmproj。 - 先写
<文件名>.part,完成后改名.gguf;暂停保留已下部分,「继续」即断点续传。源站不支持 Range 时明确报错,不会产出损坏文件。 - 进度显示已下/总量、百分比与速度;体积探测失败按「未知大小」显示,不影响下载。不设大小与时长上限,网络停滞自动中止。
- 目标文件夹已有同名文件时拒绝重下并提示位置,可「改名保留」落带序号的新文件。
- 模型商店底部可按地址直接下载:粘贴整条下载地址或
owner/repo/文件名(仓库子目录可带),走所选镜像站。 - 门控模型需先在官网同意条款,插件无法代下;请用浏览器下载后放入模型目录。
- 设置页选 llama-server 所在文件夹(启动时按平台名在其中查找可执行文件)与模型目录。
- 控制台左栏列出模型目录里的文件夹(标注量化数、投影数与体积合计),同一文件夹的多个量化合并为一个条目;顶部过滤框按名称收窄,点卡片选中,「清除选择」取消选中。
- 右栏表单调参:量化文件、视觉投影、GPU 层数、上下文长度、线程数、并行槽位、KV 缓存 K 量化、载入模式、Flash Attention / Jinja / 隐藏 WebUI、API 密钥(密码框,留空不启用)、附加参数。数值框留空即不传该参数;参数按模型文件夹持久化,换模型即带出。
- 顶栏「启动 / 重启 / 停止」:启动按当前模型与参数拉起服务,接口就绪后转运行中;重启 = 停止后紧接启动,调参后一键生效;停止结束整棵进程树。拉起前会先校验模型与投影文件还在、端口没有被别的服务占用,问题直接给可读提示。下方日志区给出命令预览(一键复制)与进程输出——终端样式的只读视图:等宽字体按位列对齐,模型加载进度(回车回刷新屏的那种)在同一行内覆盖刷新而非刷屏,输出自带的 ANSI 颜色转为主题配色;行数不设上限,默认「跟随最新」——停在底部时新行自动滚到底,向上翻阅历史即暂停跟随、滚回底部自动恢复,开关也可随时关闭;表头橡皮钮清空日志。顶栏服务地址旁有复制钮,方便在别处打开 WebUI。
文件名以 mmproj 开头或带分隔符的识别为视觉投影,选中模型时自动挂载同目录的那一个。
- 运行状态:运行中 / 启动中 / 待命中 / 已停止 / 已退出 / 启动失败;服务自己退出(崩溃等)与手动停止分开显示,失败弹宿主通知,附退出码与最后一条错误输出。
- 连接状态:直连
http://监听地址:端口探测(依次试/health、/api/models、/api/version、/,其中/health是 llama-server 的权威就绪信号:加载中回 503、就绪回 200),活跃期定时轮询——服务由你在插件外启动同样探得到;API 密钥(专用字段或附加参数里的--api-key)随探测请求自动携带。 - 监听地址填
0.0.0.0时局域网设备可访问 API/WebUI;插件自身探测走127.0.0.1。 - 外部调用自动启动(默认关):服务未运行时插件在服务端口挂一个待命监听(运行在插件进程内),收到真实 API 调用才启动服务并把该请求转发过去,GET 类请求(浏览首页、端口扫描)不触发、收到 503。待命期间端口由插件持有,请勿在插件外启动 llama-server;服务退出后自动恢复待命,启动失败时暂缓(手动启动或修改设置后恢复)。
- 系统托盘(Windows):托盘菜单按运行状态给出「启动 / 停止 llama-server」,另有「复制服务地址」,不用打开面板也能操作。
| 能力 | 用途 |
|---|---|
process |
启停 llama-server(停止结束整棵进程树,插件收尾时由宿主一并结束) |
state |
保存设置:llama-server 文件夹、监听地址与端口、模型目录、下载镜像站、各模型的启动参数 |
notification / dialog |
启停、连接与下载结果提示;选择 llama-server 文件夹与模型目录 |
clipboard |
「复制启动命令」「复制服务地址」两个一键复制钮 |
tray |
托盘菜单的启动 / 停止条目(仅 Windows 宿主提供,其余平台自动不用) |
检索与下载由插件进程直连所选镜像站(请求内容只有仓库名与文件名);模型目录扫描与下载落盘在插件进程内完成(绝对路径来自你的设置)。不做任何联网上传。
cargo build --release,把 target/release/llama-cpp-panel.exe(Linux 为 llama-cpp-panel)与 plugin.json 放进 dist/,在 Atelyx 设置页「插件」分组点「从本地目录」选择 dist,装完在「已安装」里启用。
安装目录会被宿主整目录复制并校验,只放 plugin.json 与平台入口——data / previous / enabled 是宿主保留名,也不要放构建产物或源码。