ollama pull qwen2.5:7b-instruct 之后,代码里写 model='qwen2.5' 调 chat 接口,返回 404,原文 model 'qwen2.5' not found, try pulling it first,ollama list 里明明有带 tag 的全名。

一开始怀疑是「拉取时用了自定义名 与代码不一致」,查了一圈,方向不对。

真正麻烦的地方在于,几个原因的现象几乎一样。本地只有带 tag 的模型 没有 latest。少数情况下是代码里的模型名少写了 tag。

另外,客户端和服务端不是同一台机器。

上来先列出本机已有的模型全名

ollama list

再往下用全名发一条请求验证

curl http://127.0.0.1:11434/api/chat -d '{"model":"qwen2.5:7b-instruct","messages":[{"role":"user","content":"hi"}],"stream":false}'

给常用模型补一个 latest 别名

ollama cp qwen2.5:7b-instruct qwen2.5:latest

等前面都确认过,再把模型名收敛到配置项

python -c "print('read model name from env')"

这类问题以前遇到过,但这次的触发条件和上次不一样。

这类改动我都写进变更记录,过两周再出问题时能对上号。

恢复的判定其实很直接。带 tag 与别名两种写法都返回 200,响应里的 model 字段与本地列表一致。

Ollama 的模型名是 name:tag 整体匹配,缺 tag 不会自动补 latest,配置里最好写全名。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。

作者 9823189