CLI 參考
Ollaya 是一個單一二進位制檔案:CLI、伺服器和模型執行器都在其中。如果你用過 Ollama,這些命令會似曾相識。
| 命令 | 作用 |
|---|---|
ollaya serve |
在 127.0.0.1:11435 上啟動伺服器 |
ollaya run MODEL [STATE] |
就某個狀態回答一組問題,或開啟一個提示介面;按需拉取並載入模型 |
ollaya pull MODEL |
從 registry 下載一個模型 |
ollaya list (ls) |
列出本機上的模型 |
ollaya ps |
列出已載入到記憶體的模型 |
ollaya show MODEL |
顯示某個模型的詳情、能力和許可證 |
ollaya stop MODEL |
解除安裝一個正在執行的模型 |
ollaya stop |
停掉由 CLI 啟動的伺服器 |
ollaya mcp [--http [ADDR]] |
通過 MCP 把這些模型提供給 AI agent(Agents) |
ollaya rm MODEL… |
刪除一個或多個模型 |
ollaya cp SOURCE DESTINATION |
把模型複製成一個新名字 |
ollaya create NAME [-f Modelfile] |
從 Modelfile 建立一個模型 |
ollaya update [--check] |
用最新版本覆蓋安裝當前版本 |
ollaya -v |
列印伺服器(以及客戶端)的版本 |
除 serve 和 update 外,每條命令都會與 OLLAYA_HOST 上的伺服器通訊。當那裡沒有應答、且地址是本機地址時,CLI(除了不帶模型的 ollaya stop)會在後臺啟動 ollaya serve,把日誌寫入 ~/.ollaya/logs/server.log(或 OLLAYA_LOG_DIR 中的 server.log)。
模型名
模型以 name:tag 引用;不給 tag 時使用 latest。名字不區分大小寫。
ollaya run laya # same as laya:latest, a router
ollaya run laya:multilingual
ollaya pull laya:en-fp32
像 laya:en 這樣的模型帶有一份 fp16 和一份 fp32 計算圖,兩者共享同一個權重檔案。精度在模型載入時選定:CUDA GPU 上用 fp16,CPU 上用 fp32。-fp16 和 -fp32 兩個 tag 則可以固定其一。
ollaya run
ollaya run laya --preset triage "Your app crashed during checkout and I was charged twice. Please refund one of the charges."
run 連線到伺服器(需要時啟動它),如果模型不在本機上就拉取,然後載入它,併為每個問題列印一行:答案、一個條形和它的機率。
| 旗標 | 作用 |
|---|---|
--preset NAME |
使用一個預設:內建的(triage、email、guard、moderation、router 或 agent)或用 ollaya preset create 儲存的自定義預設 |
--questions FILE|@FILE|JSON |
使用這些題目(問題 id → 問題),覆蓋模型自帶的:一個檔案路徑、@file(@- 表示 stdin),或以 { 開頭的行內 JSON |
--format text|json |
text(預設)打印表格;json 列印完整的 /api/decide 響應 |
--keepalive DURATION |
之後讓模型保持載入多久:5m、1h、0(立即解除安裝)、-1(保持載入) |
--verbose |
同時列印每個選項的機率、路由決策和各項耗時 |
--state-json |
把狀態按 JSON 解析。看起來像 JSON 物件或陣列的狀態本來就會被識別出來 |
--image FILE |
一張要據以決策的 PNG 圖片,用於視覺模型(decider:2b-vision)。它配合每一個狀態,在 REPL 裡也一樣 |
題目的來源按先匹配者優先:--questions,然後 --preset,然後模型內建的題目(qwen3guard 自帶的,或用 Modelfile 加進去的),最後是 triage 預設。當 run 回退到 triage 時,它會在 stderr 上說明。
--questions 也像 curl -d 那樣,直接在命令列上接收 JSON:以 { 開頭的值是行內 JSON,其他任何內容都當作檔案路徑。@file 永遠是檔案(如果檔名以 { 開頭就很方便),而 @- 從 stdin 讀取題目,此時狀態寫在命令列上:
ollaya run winnow:e4b --questions '{"topic":{"type":"choice","criteria":["billing","access","other"]}}' "..."
ollaya run winnow:e4b --questions @questions.json "..."
cat questions.json | ollaya run winnow:e4b --questions @- "..."
狀態就是命令列剩下的部分。沒有狀態時,run 讀取管道傳入的 stdin:
cat ticket.txt | ollaya run laya --preset triage
在終端上不帶狀態時,run 會開啟一個提示介面。輸入一個狀態並按 Enter;多行內容用 """ 包起來。命令:
| 命令 | 作用 |
|---|---|
/preset NAME |
切換到一組內建題目 |
/set questions FILE |
使用一個 JSON 檔案裡的題目 |
/show |
顯示模型和當前題目 |
/clear |
清屏 |
/bye |
退出(或 Ctrl+D) |
/?, /help |
幫助 |
ollaya serve
啟動 CLI 和你的應用所通訊的伺服器。它提供原生 API(/api/*)和 TypeSafe 相容 API(/v1/*);見 API 參考。Linux 安裝程式把它作為 ollaya systemd 服務執行。
ollaya serve
你很少需要它:伺服器沒在執行時,其他命令會在後臺把它啟動起來。如果 OLLAYA_HOST 上已經有伺服器在執行,ollaya serve 會說明這一點並退出;要以前臺方式執行伺服器,先用 ollaya stop 停掉那個。
它通過環境變數配置:
| 變數 | 預設值 | 作用 |
|---|---|---|
OLLAYA_HOST |
127.0.0.1:11435 |
繫結的地址;CLI 的目標 |
OLLAYA_MODELS |
~/.ollaya/models |
模型倉庫 |
OLLAYA_KEEP_ALIVE |
5m |
一個模型在最後一次請求之後保持載入多久 |
OLLAYA_MAX_LOADED_MODELS |
3 |
同時保持載入的模型數 |
OLLAYA_MAX_QUEUE |
512 |
在返回 503 QUEUE_FULL 之前允許在途的決策請求數 |
OLLAYA_LOAD_TIMEOUT |
5m |
一個模型載入可以花多久 |
OLLAYA_DEVICE |
auto |
auto(安裝程式加入了 CUDA 庫時用 NVIDIA GPU,否則用 CPU)、cpu、cuda 或 cuda:<n> |
OLLAYA_API_KEY |
未設定 | 要求 Authorization: Bearer <key>;CLI 也會發送它 |
OLLAYA_ORIGINS |
未設定 | 額外允許的瀏覽器來源,逗號分隔 |
OLLAYA_REGISTRY |
ollaya.dev |
模型名中的預設 registry 主機 |
OLLAYA_LOG |
info |
日誌級別;debug 記錄每個請求及其狀態和耗時 |
OLLAYA_LOG_DIR |
未設定 | 把日誌寫入 <dir>/server.log 而不是 stderr(不存在時建立;追加寫入,絕不輪轉) |
對於 systemd 服務,用 sudo systemctl edit ollaya 和 Environment= 行來修改它們。
ollaya pull
下載一個模型,並用它的 sha256 校驗每一層。拉取一個 router 也會拉取它路由到的每一個模型。只下載本機需要的那幾層,中斷的下載會續傳。
ollaya pull laya
ollaya list 與 ollaya ps
list 顯示本機上的模型,帶上它們的 ID、大小和拉取時間。ps 顯示已載入的模型、它們執行的裝置(cpu、cuda:0)、精度,以及何時會被解除安裝。
NAME ID SIZE MODIFIED
laya:latest b87ca1631b11 11 KB 13 seconds ago
laya:multilingual ba7a334675b4 684 MB 13 seconds ago
laya:en bf30e4654e94 854 MB 30 seconds ago
ollaya show
列印模型的架構、參數、上下文長度、各種精度、語言、能力和許可證。對於 router,它列印路由。
| 旗標 | 只打印 |
|---|---|
--questions |
模型內建的題目 |
--license |
許可證 |
--modelfile |
一份能重建該模型的 Modelfile |
--parameters |
參數,例如固定的精度 |
ollaya stop
ollaya stop MODEL 會在一個正在執行的模型的在途請求結束後解除安裝它,而不是等 keep-alive 到期。
不帶模型的 ollaya stop 會停掉 OLLAYA_HOST 上的伺服器,這會解除安裝每一個模型。它只停掉你自己啟動的伺服器 —— 用 ollaya serve 或執行其他命令啟動的。它絕不會停掉別的使用者的伺服器,比如 Linux systemd 服務;那個要用 sudo systemctl stop ollaya 停。
ollaya rm 與 ollaya cp
ollaya cp laya:en my-guardrail
ollaya rm my-guardrail
rm 還會刪除沒有其他模型使用的 blob。刪除一個 router 會保留它路由到的那些模型。cp 會覆蓋已存在的目標。
ollaya preset
預設是一組有名字的題目,你可以在任何模型上覆用它:ollaya run MODEL --preset NAME,或者在 /api/decide 上用 "preset": "NAME"。內建六個。儲存你自己的:
ollaya preset create billing-check --questions billing.json --description "Billing, and how upset the customer is"
ollaya run winnow:e4b --preset billing-check "I was charged twice this month."
| 命令 | 作用 |
|---|---|
ollaya preset list |
內建和自定義的預設,帶上它們的題目 id |
ollaya preset show NAME |
某個預設的題目,以 JSON 形式 |
ollaya preset create NAME --questions FILE|@FILE|JSON [--description TEXT] |
儲存一個自定義預設,替換同名的那個。--questions 接受與 ollaya run 中相同的形式 |
ollaya preset rm NAME... |
刪除自定義預設。內建預設無法刪除 |
名字由小寫字母、數字、- 和 _ 組成。自定義預設由伺服器儲存(存放在模型旁邊的 presets/ 裡),所以 CLI、API 和 MCP 伺服器都能看到它們。預設與用 Modelfile 的 QUESTIONS 做出來的模型不同:它不繫結到某一個模型,也不復制任何東西。
ollaya update
用最新版本覆蓋安裝當前版本:它把安裝指令碼再跑一遍,裝進同一個字首,所以模型、預設和 systemd 服務保持原樣。
ollaya update --check # only say whether a newer release exists
ollaya update
隨桌面應用一起裝上的二進位制檔案(macOS 應用、Windows 安裝程式、AppImage,或 .deb 和 .rpm 包)要通過安裝新版應用來更新,容器則通過拉取新映象;ollaya update 會說明這一點,而不去改動它。
ollaya create
從 Modelfile 構建一個模型,例如把一組題目、重新擬合的校準或固定的精度烤進去。-f 預設為 ./Modelfile。
ollaya create triage -f Modelfile