文件導航

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