Egy hely a szerveren, ahol kis nyelvi modellek futnak, bármelyik stacknek, amelyiknek kell. Az OpenAI chat API-t beszéli, így bármely OpenAI-kompatibilis kliens működik vele. Csak az
interstackdocker-hálózatról érhető el, az internetről nem.
http://llm:8080 az interstack-enPOST http://llm:8080/v1/chat/completions
Authorization: Bearer <kulcs>
{"model": "qwen3.5-0.8b", "messages": [...], "stream": true}
Minden kérés megnevezi a modelljét: alapértelmezett nincs, a model nélküli kérés 400-at kap. A GET /v1/models listázza a modelleket és hogy be vannak-e töltve; a GET /health-hez nem kell kulcs.
| Modell | model |
Ki használja |
|---|---|---|
| Qwen3.5 0.8B | qwen3.5-0.8b |
a SERMO Lapis-ACP-je a Teletype BBS-ben, és bármelyik stack: általános kis modell, angolul és JSON-ban jó, magyarul csak nagyjából; gondolkodó mód kikapcsolva; induláskor betöltődik |
| Gemma 3 270M instruct | gemma-3-270m |
most senki (2026 októberéig a SERMO modellje): a leggyorsabb, de a példáin túli kérdéseknél kiesik a szerepből; az első kérésére töltődik be |
A szerver a llama.cpp llama-server-e router-módban: modellenként igény szerint indít egy llama-servert. A modellek a repó server/models.ini-jének szekciói, a szolgáltatás image-ébe sütve; a szekció neve a kérés model-je, a kulcsai a llama-server hosszú kapcsolói (hf-repo, c, parallel, ...). A GGUF-ot az első betöltéskor tölti le a Hugging Face-ről, és egy volume-ban tartja.
load-on-startup = true modell a szolgáltatás indulásakor betöltődik (a Qwen3.5, hogy a SERMO-nak ne kelljen várnia). A többi az első kérésére.Új modell = egy új szekció a server/models.ini-ben és egy push: a deploy új image-et épít, és azzal indítja újra a szolgáltatást.
Router-módban HTTP-n modellt is lehet betölteni és üríteni, ezért a szolgáltatás kulcsot kér. A stack .env-jében az LLM_API_KEYS tartja az elfogadott kulcsokat, hívónként egyet, így egy hívó külön letiltható.
| Hívó | A kulcsa |
|---|---|
| Teletype BBS | SERMO_LLM_API_KEY a teletype-bbs stack .env-jében |
Új hívó új kulcsot kap (openssl rand -hex 24), az LLM_API_KEYS végére.
A stack a /srv/stacks/llm-ben él, ami nem git checkout. A masterre pusholt, a compose.yaml-t vagy a server/-t érintő változást a Woodpecker telepíti, ugyanúgy, mint az FTP-szervert: a pipeline csak meghívja a szervert SSH-n, saját kulccsal, amely egyetlen fix parancshoz van kötve (ci-deploy llm, az infra/host-config-ban). A szerver maga klónozza a mastert, a compose-fájlt a szabályai szerint ellenőrzi (nincs extra jogosultság, docker socket, publikus port), bemásolja a compose.yaml-t és a server/-t, és lefuttatja a docker compose up -d --build-et. A .env és a modell-volume marad. A pipeline nem kap hoszt-volume-ot.