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,配置里最好写全名。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。
