Документация

Справочник по CLI

Ollaya — единый бинарный файл: CLI, сервер и средства запуска моделей. Если вы пользовались Ollama, команды покажутся вам знакомыми.

Команда Что делает
ollaya serve Запускает сервер на 127.0.0.1:11435
ollaya run MODEL [STATE] Отвечает на вопросы о состоянии или открывает приглашение; подтягивает и загружает модель по мере необходимости
ollaya pull MODEL Скачивает модель из реестра
ollaya list (ls) Перечисляет модели на этой машине
ollaya ps Перечисляет модели, загруженные в память
ollaya show MODEL Показывает сведения о модели, её возможности и лицензию
ollaya stop MODEL Выгружает работающую модель
ollaya stop Останавливает сервер, запущенный CLI
ollaya mcp [--http [ADDR]] Отдаёт модели ИИ-агентам по MCP (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 (или server.log в OLLAYA_LOG_DIR).

Имена моделей

Модели указываются как 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, которые делят один файл весов. Точность выбирается при загрузке модели: fp16 на GPU CUDA, fp32 на CPU. Теги -fp16 и -fp32 фиксируют одну из них.

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 Использовать эти вопросы (идентификатор вопроса → вопрос) вместо встроенных в модель: путь к файлу, @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 принимает JSON и прямо в командной строке, как это делает curl -d: значение, начинающееся с {, — это встроенный 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/*) и API, совместимый с TypeSafe (/v1/*); см. Справочник по API. Установщик для Linux запускает его как службу systemd ollaya.

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 (GPU NVIDIA, если установщик добавил библиотеки CUDA, иначе CPU), cpu, cuda или cuda:<n>
OLLAYA_API_KEY не задано Требовать Authorization: Bearer <key>; CLI тоже его отправляет
OLLAYA_ORIGINS не задано Дополнительные разрешённые источники браузера, через запятую
OLLAYA_REGISTRY ollaya.dev Хост реестра по умолчанию в именах моделей
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 или другой командой. Он никогда не останавливает сервер другого пользователя, например службу systemd Linux; её останавливайте через sudo systemctl stop ollaya.

ollaya rm и ollaya cp

ollaya cp laya:en my-guardrail
ollaya rm my-guardrail

rm также удаляет блобы, которые не использует ни одна другая модель. Удаление router сохраняет модели, на которые он маршрутизирует. cp перезаписывает существующую цель.

ollaya preset

Пресет — это именованный набор вопросов, который вы можете переиспользовать с любой моделью: ollaya run MODEL --preset NAME или "preset": "NAME" в /api/decide. Шесть встроено. Сохраните свой:

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 Встроенные и пользовательские пресеты с их идентификаторами вопросов
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. Пресет отличается от модели, сделанной через QUESTIONS в Modelfile: он не привязан к одной модели и ничего не копирует.

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