主人 2026-10-07 最终口径:改回 127.0.0.1。 一个来回的结论登记进脚本注释,免得以后有人再试一遍: - 0.0.0.0 是 IPv4 通配、不覆盖 IPv6(实测 netstat 只有 TCP 0.0.0.0:11434 LISTENING,http://[::1]:11434 仍失败) ⇒ 它修不了「客户端把 localhost 解析成 ::1 而卡住」那个故障 - llama-server 没有鉴权 ⇒ 绑 0.0.0.0 等于向整个局域网暴露本机 embedding 算力 - EMBED_HOST 保留为可配置项(默认 127.0.0.1),将来真需要对外再打开
主人 2026-10-07:让服务监听 0.0.0.0。 - --host 由写死 127.0.0.1 改为可配置 EMBED_HOST,默认 0.0.0.0 - 实测结论登记进脚本注释:0.0.0.0 是 IPv4 通配、不覆盖 IPv6 (netstat 只有 TCP 0.0.0.0:11434 LISTENING;http://[::1]:11434 仍失败) ⇒ 它修不了「客户端把 localhost 解析成 ::1 而卡住」那个故障; 客户端侧仍必须用 127.0.0.1(见 internal/runtime/embedding) - 同时登记暴露面事实:llama-server 没有鉴权,绑 0.0.0.0 等于让局域网内 任何设备都能白嫖这台机器的 embedding 算力;设 EMBED_HOST=127.0.0.1 即可收回(脚本已留这条退路)
- cmd/cyrene/main.go: import _ "time/tzdata" —— Windows 无系统 tzdata,导致 config.TZ(默认 Asia/Shanghai) 解析失败、loop 时间注入被静默禁用;内嵌后单二进制自洽(约 +450KB) - 实测:迁移到 Windows 后启动日志不再出现 "timezone load failed; time injection disabled" - scripts/embed.bat(新):本机 llama.cpp embedding 服务启停(start/stop/status),OpenAI 兼容 /v1/embeddings,跑 Qwen3-Embedding-0.6B-Q8_0(dim 1024) - 实测:start→Ready→status running→POST /v1/embeddings 200 dim=1024;配合 docker compose 的 cyrene-pg(pgvector) 后端日志变为 pgvector index ready dim=1024(不再回落内存语义)