Ollama 出現 model not found 怎麼辦?從 API、模型名稱到執行中程序排查
Ollama API 出現 model not found 或 HTTP 404 時,通常不是推論內容有問題,而是請求裡的模型字串在「這一台 Ollama host」找不到。最常見的差異包括:模型尚未 pull、tag 少了版本、OpenClaw 連到另一台主機,或把 cloud model 名稱當成 local model 使用。
直接答案是:先用同一個 baseUrl 呼叫 /api/tags,再用回應中的完整 name 去測試 /api/show 與 /api/chat;不要先盲目重裝 Ollama。 官方 API 把 /api/tags 定義為列出模型、/api/chat 則要求請求提供模型名稱,這兩個端點正好能把「模型不存在」和「模型存在但推論失敗」分開。
先保留完整錯誤與連線位置
先把錯誤中的三項資料記下來:
- 實際呼叫的 host 和 port,例如
127.0.0.1:11434或gpu-box.local:11434。 - 請求裡的
model字串,例如qwen3.5:9b或kimi-k2.5:cloud。 - 使用的 API 路徑,是原生
/api/chat、/api/generate,還是某個 OpenAI-compatible/v1代理。
如果程式在 Docker、遠端 server 或另一個 systemd service 裡執行,終端機上可用的 localhost 不一定是程式看到的 localhost。先確認連線位置,再判斷模型。
第一關:確認 Ollama API 可達
在出錯的同一個執行環境中執行:
curl -i http://127.0.0.1:11434/api/tags你要先看到 HTTP 200 和 JSON,而不是直接得到 connection refused、timeout 或 HTML 錯誤頁。若 host 不在本機,替換成程式實際使用的主機:
curl -i http://gpu-box.local:11434/api/tagsOllama 官方文件的 /api/tags 回應會列出每個模型的 name、digest、大小與 details。後面的測試要以這個回應中的 name 為準,不要自己猜 tag。
也可以用 CLI 對照本機 daemon:
ollama listollama psollama list 表示已安裝的模型;ollama ps 表示目前載入記憶體的模型。模型沒有出現在 ollama ps 不代表不存在,第一次呼叫時仍可能才載入;真正判斷「能不能被 API 找到」要看 /api/tags。
第二關:精確比對模型名稱
假設 /api/tags 回傳的名稱是 qwen3.5:9b,以下幾個字串就不應視為相同:
| 字串 | 可能的問題 |
|---|---|
qwen3.5 | 缺少 tag,可能依賴 latest,不一定等於已安裝名稱 |
qwen3.5:9b | 若出現在 /api/tags,才是可直接測試的名稱 |
qwen3.5:9b-cloud | 可能是另一種 hosted/cloud tag,不能當成本機模型 |
ollama/qwen3.5:9b | OpenClaw 的 provider/model 參照,不是原生 Ollama API 的 model 值 |
原生 API 的 body 使用模型名稱本身:
{ "model": "qwen3.5:9b", "messages": [ { "role": "user", "content": "Reply with exactly: ok" } ], "stream": false}如果你是從 OpenClaw、LangChain 或其他 provider abstraction 複製設定,先把 ollama/ 這類路由前綴和原生 API 的 model 欄位分開。這是「上層找得到、下層卻 404」的常見來源。
第三關:用 /api/show 檢查模型詳情
從 /api/tags 取得完整名稱後,傳給官方的 model details endpoint:
curl http://127.0.0.1:11434/api/show \ -H 'Content-Type: application/json' \ -d '{"model":"qwen3.5:9b"}'若 /api/show 成功,代表這個 host 至少能解析該模型的 manifest 與設定。若這裡回 404,問題仍在模型名稱、host 或模型尚未安裝,不需要先調整 prompt、temperature 或 context。
需要安裝時,使用同一個 Ollama host 執行:
ollama pull qwen3.5:9bollama list如果模型來自自訂 Modelfile,先檢查 ollama create 使用的名稱與實際 API 呼叫的名稱;自訂名稱可以和來源模型名稱不同。
第四關:用最小 /api/chat 重現
模型存在後,用最小請求測試對話,不要一開始帶入工具、長上下文或多輪 history:
curl http://127.0.0.1:11434/api/chat \ -H 'Content-Type: application/json' \ -d '{ "model": "qwen3.5:9b", "messages": [ {"role": "user", "content": "Reply with exactly: ok"} ], "stream": false }'官方的 Chat API 要求 model 和 messages,並支援 stream、tools 與 options 等欄位。先讓最小文字請求成功,再逐項加回工具或其他設定,才能知道是哪一層引入錯誤。
如果 /api/chat 回傳成功,但整合工具仍顯示 model not found,請把整合程式的實際 request URL、provider name 和 model 值記錄下來。很多時候,命令列測的是本機 127.0.0.1,服務實際卻連到容器內的另一個 host。
Cloud model 不要當成 local model
Ollama 現在也支援 cloud model。這會讓模型名稱看起來像已安裝,但實際路由與登入狀態不同。先確認你要的是哪一種:
本機模型
ollama pull gemma4curl http://127.0.0.1:11434/api/chat \ -d '{"model":"gemma4","messages":[{"role":"user","content":"ok"}],"stream":false}'透過本機 daemon 使用 cloud model
ollama signinollama pull kimi-k2.5:cloudollama list直接呼叫 Ollama Cloud
這時 base URL、API key 與可用模型目錄都不同,不要把本機 127.0.0.1:11434 的測試結果當成雲端驗證。若你是從 OpenClaw 呼叫,也要分清楚 ollama/<model> 與 ollama-cloud/<model> 的 provider 參照;可參考 OpenClaw 串接 Ollama 的本機與 Cloud 設定。
常見整合錯誤分流
| 現象 | 先查什麼 | 不要先做什麼 |
|---|---|---|
connection refused | daemon、host、port、容器網路 | 重新 pull 模型 |
model not found | /api/tags 與完整 model tag | 調 prompt 或 context |
/api/show 成功但聊天失敗 | 最小 /api/chat、模型能力與 options | 直接加入全部 tools |
| 本機 curl 成功、應用程式失敗 | 應用程式的環境變數、容器 host、provider 設定 | 假設是 Ollama 隨機壞掉 |
| CORS 錯誤 | OLLAMA_ORIGINS 與服務啟動方式 | 把 CORS 當成 model not found |
如果最後一列才是你的問題,站內已有 Ollama CORS 環境變數設定可作為背景;CORS 和模型不存在是兩個不同的失敗層。
最小排查清單
# 1. 確認 daemon 與 hostcurl -fsS http://127.0.0.1:11434/api/tags
# 2. 確認安裝與執行中模型ollama listollama ps
# 3. 對某個確實存在的完整名稱查詳情curl http://127.0.0.1:11434/api/show \ -H 'Content-Type: application/json' \ -d '{"model":"你的完整模型名稱"}'
# 4. 做最小 chat smoke testcurl http://127.0.0.1:11434/api/chat \ -H 'Content-Type: application/json' \ -d '{"model":"你的完整模型名稱","messages":[{"role":"user","content":"ok"}],"stream":false}'這套順序的重點,是每一關只回答一個問題:服務在哪裡、模型是否存在、模型詳情能否讀取、最小推論能否完成。等這四關都通過,再回頭處理整合工具的 provider、工具呼叫或長上下文設定。
常見問題
Q: ollama list 有模型,為什麼 API 還是回傳 404?
A: ollama list 只代表你執行 CLI 的 daemon 有該模型;應用程式可能連到另一個 host、容器或 port。請在應用程式實際執行環境呼叫同一個 <baseUrl>/api/tags,再比較回應中的完整 name。
Q: model not found 需要先重啟 Ollama 嗎?
A: 不一定。先確認 model tag 是否正確,以及該模型是否已在同一個 host 安裝。只有在服務沒有載入新設定、daemon 本身無法連線,或你修改了啟動環境變數時,重啟才是合理的下一步。
Q: ollama ps 沒有模型就是模型不存在嗎?
A: 不是。ollama ps 列的是目前載入記憶體的模型,模型可能尚未被請求而未載入。判斷模型是否可用,先看 /api/tags;再用 /api/show 和最小 /api/chat 驗證。
參考資料:
回報錯字、失效連結,或告訴我你想看的延伸主題。