~/tools / 模型檔案與聊天範本 / Ollama Modelfile Checker
Ollama Modelfile Checker — 以 ollama create 的讀法檢查 Modelfile
貼上 Ollama Modelfile,在執行之前就能確認 ollama create 是否會接受它。本工具依照 Ollama 的做法讀取檔案,顯示 Ollama 自己的錯誤訊息與行號、每個 instruction 最後會變成什麼、Ollama 儲存的型別下的 parameter、範例訊息,以及需要留意的地方,例如提早結束的值,或 Ollama 可能不會使用的 TEMPLATE。所有內容都不會離開你的瀏覽器。
請貼上整個檔案。ollama show --modelfile <model> 會印出你已有模型的 Modelfile。
ollama create 可以讀取這個 Modelfile
本工具能檢查的步驟中沒有錯誤。FROM 與檔案是否存在,只有你電腦上的 ollama create 會檢查。
注意事項
- FROM qwen2.5:7b 是模型名稱:該模型必須能被 Ollama 使用。
instruction 會變成什麼
- FROM
- qwen2.5:7b
- SYSTEM
- You are a concise assistant. Answer in one or two sentences.
- TEMPLATE
- 未設定:沿用 FROM 模型的
PARAMETER
| 名稱 | Ollama 中的型別 | 儲存的值 |
|---|---|---|
| num_ctx | int | 8192 |
| stop | string[] | ["\u003c|im_end|\u003e"] |
| temperature | float32 | 0.7 |
新模型的 parameter 層(JSON):
{"num_ctx":8192,"stop":["\u003c|im_end|\u003e"],"temperature":0.7}FROM 模型中你沒有在這裡設定的 parameter 也會保留。
MESSAGE(範例對話)
- userIs Toronto in Canada?
- assistantyes
Ollama 寫回的 Modelfile
每個 instruction 一行,不含註解,格式為 Ollama 原始碼中的 Command.String。
FROM qwen2.5:7b PARAMETER num_ctx 8192 PARAMETER temperature 0.7 PARAMETER stop <|im_end|> SYSTEM " You are a concise assistant. Answer in one or two sentences. " MESSAGE user Is Toronto in Canada? MESSAGE assistant yes
在 Ollama Modelfile Generator 中以表單建立 Modelfile →
於 2026-11-09 對照 Ollama 的原始碼(v0.40.15)、其文件,以及 Ollama 0.40.11 中的 ollama create 檢查: Ollama: Modelfile Reference · parser.go
所有處理都在你的瀏覽器中執行,不會傳送到任何地方。
Modelfile 看起來很簡單,但一個小錯誤就會讓 ollama create 以 "unexpected EOF" 或 "command must be one of ..." 這類簡短的訊息失敗。本工具逐步依照 Ollama 的原始碼運作。首先,它用與 Ollama 解析器相同的狀態機讀取檔案:不分大小寫的 instruction、除非以 " 或 """ 開頭否則在行尾結束的值、PARAMETER 名稱、MESSAGE 角色與註解。接著,它執行 ollama create 在連線到伺服器之前會做的事:在 ADAPTER 與 typical_p 停下來、檢查 CAPABILITY 與 REQUIRES,並像 Ollama 的 API 一樣把每個 PARAMETER 轉成型別(整數、32 位元浮點數、true 或 false,以及作為清單的 stop)。最後,它如同伺服器一樣,以 Go 的範本規則檢查 TEMPLATE。它會顯示新模型所儲存的 JSON 形式 parameter、範例對話,以及 Ollama 寫回的 Modelfile。我們在 Ollama 0.40.11 上以 43 個 Modelfile 檢查過本工具:每一個都得到與 ollama create 相同的錯誤,或與 ollama create 建立的模型相同的 parameter、system 訊息、template、訊息與授權條款。
使用情境
- 找出 ollama create 失敗的原因,以及是哪一行造成的
- 確認 num_ctx、temperature、stop 等 parameter 是否依你的本意、以 Ollama 儲存的型別被讀取
- 在依據他人的 Modelfile 建立模型之前先審查它
使用方法
- 將你的 Modelfile 貼到文字框中,或編輯範例。
- 閱讀結果:會顯示 ollama create 的錯誤與說明,或每個 instruction 會變成什麼。
- 查看注意事項,例如同一項設定出現兩次、沒有 tools 的 TEMPLATE,需要的話,複製 Ollama 寫回的 Modelfile。
FAQ
"unexpected EOF" 是什麼意思?
Ollama 在處理到一半時就到了檔案結尾。通常是某個值以 " 或 """ 開頭,卻沒有在行尾以相同的引號結束,所以 Ollama 一直讀到檔案最後。當 PARAMETER 名稱含有字母、數字與 _ 以外的字元,或 MESSAGE 有角色卻沒有文字時,也會發生。
為什麼很長的 SYSTEM 訊息會導致 "command must be one of ..."?
值會在行尾結束。如果訊息有多行,又沒有用 """(或 ")包起來,Ollama 就會把下一行當成新的 instruction。多行的值請用 """ 包起來。
parameter 名稱會區分大小寫嗎?
會。FROM 或 parameter 這類 instruction 可以使用任何大小寫,但 parameter 名稱必須完全照寫,例如 temperature。在我們的測試中,PARAMETER Temperature 0.5 因 unknown parameter 'Temperature' 而失敗。
本工具會檢查 FROM 中的模型是否存在嗎?
不會。它看不到你電腦上的模型或檔案。它會告訴你 FROM 看起來像模型名稱還是路徑,但是否存在只有 ollama create 會檢查。
為什麼 ADAPTER 會失敗?
在 Ollama 0.40 中,ollama create 會在 ADAPTER 這一行以 "LoRA adapters are no longer supported" 停止。ADAPTER 不在目前的 Modelfile 文件中。
我的 Modelfile 會被傳送到任何地方嗎?
不會。所有處理都在你的瀏覽器中執行。