TITLE=Modellszolgáltatás (LLM) ROUTE=/infrastructure/llm LOCALE=hu MODIFIED=1792565451 URL=https://wiki.teletypegames.org/hu/infrastructure/llm L=1 https://git.teletypegames.org/infra/llm L=2 #66 L=3 #50 q│ Egy hely a szerveren, ahol kis nyelvi modellek futnak, bármelyik stacknek, q│ amelyiknek kell. Az OpenAI chat API-t beszéli, így bármely q│ OpenAI-kompatibilis kliens működik vele. Csak az cinterstack q│ docker-hálózatról érhető el, az internetről nem. • bRepó:0 1git.teletypegames.org/infra/llm • bCím:0 chttp://llm:80800 az cinterstack0-en 1Hívás 1═════ p POST http://llm:8080/v1/chat/completions p Authorization: Bearer p {"model": "qwen3.5-0.8b", "messages": [...], "stream": true} Minden kérés megnevezi a modelljét: alapértelmezett nincs, a cmodel0 nélküli kérés 400-at kap. A cGET /v1/models0 listázza a modelleket és hogy be vannak-e töltve; a cGET /health0-hez nem kell kulcs. t┌───────────────────────┬──────────────┬─────────────────────────────────────┐ t│h Modell t│h model t│h Ki használja t│ t├───────────────────────┼──────────────┼─────────────────────────────────────┤ t│0 Qwen3.5 0.8B t│0 cqwen3.5-0.8b0 t│0 a SERMO Lapis-ACP-je a 2Teletype t│ t│0 t│0 t│0 2Games BBS-ben, és bármelyik stack: t│ t│0 t│0 t│0 általános kis modell, angolul és t│ t│0 t│0 t│0 JSON-ban jó, magyarul csak t│ t│0 t│0 t│0 nagyjából; gondolkodó mód t│ t│0 t│0 t│0 kikapcsolva; induláskor betöltődik t│ t├───────────────────────┼──────────────┼─────────────────────────────────────┤ t│0 Gemma 3 270M instruct t│0 cgemma-3-270m0 t│0 most senki (2026 októberéig a SERMO t│ t│0 t│0 t│0 modellje): a leggyorsabb, de a t│ t│0 t│0 t│0 példáin túli kérdéseknél kiesik a t│ t│0 t│0 t│0 szerepből; az első kérésére t│ t│0 t│0 t│0 töltődik be t│ t└───────────────────────┴──────────────┴─────────────────────────────────────┘ 1Modellek 1════════ A szerver a llama.cpp cllama-server0-e router-módban: modellenként igény szerint indít egy llama-servert. A modellek a repó cserver/models.ini0-jének szekciói, a szolgáltatás image-ébe sütve; a szekció neve a kérés cmodel0-je, a kulcsai a llama-server hosszú kapcsolói (chf-repo0, cc0, cparallel0, ...). A GGUF-ot az első betöltéskor tölti le a Hugging Face-ről, és egy volume-ban tartja. • A cload-on-startup = true0 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. • Egyszerre legfeljebb két modell van betöltve; a harmadik a legrégebben használtat üríti. • Egy memóriakeret (2,5 GB) fedi az összes betöltött modellt (a fenti kettő együtt kb. 2 GB), és a szerver CPU-ján is osztoznak. Nagyobb modellhez nagyobb keret kell, és a hosszú kérései lassítják a többit. Új modell = egy új szekció a cserver/models.ini0-ben és egy push: a deploy új image-et épít, és azzal indítja újra a szolgáltatást. 1Kulcsok 1═══════ Router-módban HTTP-n modellt is lehet betölteni és üríteni, ezért a szolgáltatás kulcsot kér. A stack c.env0-jében az cLLM_API_KEYS0 tartja az elfogadott kulcsokat, hívónként egyet, így egy hívó külön letiltható. t┌────────────────────┬───────────────────────────────────────────┐ t│h Hívó t│h A kulcsa t│ t├────────────────────┼───────────────────────────────────────────┤ t│0 2Teletype Games BBS t│0 cSERMO_LLM_API_KEY0 a bbs-server c.env0-jében t│ t└────────────────────┴───────────────────────────────────────────┘ Új hívó új kulcsot kap (copenssl rand -hex 240), az cLLM_API_KEYS0 végére. 1Üzembe helyezés 1═══════════════ A stack a c/srv/stacks/llm0-ben él, ami nem git checkout. A masterre pusholt, a ccompose.yaml0-t vagy a cserver/0-t érintő változást a Woodpecker telepíti, ugyanúgy, mint az 3FTP-szervert: a pipeline csak meghívja a szervert SSH-n, saját kulccsal, amely egyetlen fix parancshoz van kötve (cci-deploy llm0, az cinfra/host-config0-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 ccompose.yaml0-t és a cserver/0-t, és lefuttatja a cdocker ccompose up -d --build0-et. A c.env0 és a modell-volume marad. A pipeline nem kap hoszt-volume-ot.