문서

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를 통해 AI 에이전트에 모델을 제공합니다 (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 모델 이름의 기본 레지스트리 호스트
OLLAYA_LOG info 로그 수준. debug는 모든 요청을 상태와 지속 시간과 함께 기록합니다
OLLAYA_LOG_DIR 미설정 stderr 대신 <dir>/server.log에 기록합니다(없으면 생성. 덧붙이기만 하고 회전하지 않음)

systemd 서비스라면 sudo systemctl edit ollaya와 Environment= 줄로 바꿉니다.

ollaya pull

모델을 내려받고 모든 레이어를 sha256으로 검증합니다. 라우터를 받으면 그것이 라우팅하는 모든 모델도 받습니다. 이 머신에 필요한 레이어만 내려받고, 중단된 다운로드는 이어받습니다.

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

모델의 아키텍처, 파라미터, 컨텍스트 길이, 정밀도, 언어, 기능, 라이선스를 출력합니다. 라우터라면 라우트를 출력합니다.

플래그 출력 내용
--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도 삭제합니다. 라우터를 제거해도 그것이 라우팅하는 모델은 남습니다. 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