Repository navigation
Releases: cdwuchun/llama.cpp-GUI
Releases · cdwuchun/llama.cpp-GUI
Release list
v0.2.2
Full Changelog: v0.2.1...v0.2.2
v0.2.1
v0.2.0
v0.1.2
v0.1.1
新增:Strata 前门代理(客户端只连一个端口)
GUI 进程内起一个 HTTP 代理(src-tauri/strata_proxy.rs,默认 127.0.0.1:9090,设置页里叫「代理监听地址 / 代理端口」)。DSH 等 OpenAI 兼容客户端只连它,它按请求体里的 model 挑 config,必要时停旧引擎、起新引擎再原样转发;GET /v1/models 与「没有引擎时的 /health」由它合成,点名不存在的 model 回与上游同形的 404。各模型的引擎端口仍留在各自的 strata-*.json 与 run-<模型>.bat 里,代理地址/端口只写 GUI 设置、不写 config。
修复
- DSH 把模型加载了却「连接不上」:Windows 上
accept()出来的套接字会继承监听套接字的非阻塞标志,使代理里那条「客户端 → 引擎」转发线程首次read立刻拿到WSAEWOULDBLOCK(os error 10035)并向上游发 FIN;上游_watch_client把 FIN 判成客户端挂断,取消在提示读取的分块边界生效 —— 症状是「小 prompt 侥幸成功、19k token 的 prompt 在约 5.7–11 s 被截断」(引擎日志0 generated ... (cancelled))。修法:每条连接set_nonblocking(false),并删掉那条转发线程(请求体已整段读完、上游是 HTTP/1.0 +Connection: close,只做单向io::copy)。 - 卡片不显示「加载中」:由 DSH 请求触发的引擎启动 / 模型加载改由代理登记并广播(
StrataStatus.proxy_serving),对应卡片据此显示「加载中」,不再从「已停止」直接跳到「运行中」。 - 侧栏胶囊下方的版本号丢「Strata 」前缀:回落值取自
engine/BUILD.json(只有0.1.41),现在统一归一化,并优先使用运行中引擎的/props.build_info。
调整
- 侧栏胶囊文案改为「Strata 代理 :9090」(不再用"前门"),下方一行始终显示引擎版本。
- 代理地址与端口只存 GUI 设置、不再写进 config(原先会把各模型的引擎端口覆盖成 9090);
run-<模型>.bat的--port与 config 的port不一致时启动直接报错说明。
诊断
排查连接类问题:设 STRATA_PROXY_DEBUG=1 启动,代理会把逐连接轨迹写进 %TEMP%\strata-proxy-debug.log(默认关闭)。
已知问题(引擎侧,不是本 GUI 的缺陷)
反复打大 prompt 之后 Strata 引擎可能因显存耗尽卡死:/status 长挂 phase=reading the prompt、elapsed_s 一直涨,此后所有请求 —— 连 curl 直连引擎端口也一样 —— 要么空回复、要么只收到几百字节就断。引擎日志自身给出的建议是在 config 的 args 里加 --vram-reserve-mib 512(或降低 --max-context)。处置:结束 python 进程树,代理会在下一个请求冷启动新引擎。
安装
llama.cpp.GUI_0.1.1_x64-setup.exe:NSIS 安装包(当前用户安装,免管理员)。llamacpp-gui.exe:免安装便携版(配置与 webview 数据放在 exe 同目录)。
Full Changelog: v0.1.0...v0.1.1
v0.1.0
Full Changelog: https://github.com/cdwuchun/llama.cpp-GUI/commits/v0.1.0