eAI
AI server pro CPU, CUDA, Vulkan a AX8850. Správa modelů, VLM chat CZ/EN, API, eUpdate, check-in a diagnostika.
Documentation and check-in manual
Releases
README
# eAI 0.1.0
Autor: **PB** · pavel.bartos.pb@gmail.com · https://estudium.eu
Vytvořeno: **10/2026** · licence **MIT**
Samostatný AI server pro **Ubuntu 26.04 a novější, ARM64 / x86-64**.
Webové ovládání používá modrý vzhled, logo, přihlašování a levé menu ve stylu
rodiny eWeb/eCast. Služba běží nezávisle na otevřeném prohlížeči.
## Instalace
Po rozbalení instalačního ZIPu:
```bash
cd eai-server-0.1.0
sudo bash install.sh
```
TUI nabídne CPU, CUDA, Vulkan, AX8850 nebo instalaci bez enginu. Výchozí
CPU varianta zkompiluje llama.cpp z oficiálního repozitáře. Na Raspberry Pi
může kompilace trvat několik minut; průběh je vidět v terminálu.
Web: **http://IP-SERVERU:8088**. Výchozí přihlášení **admin / admin**;
před zpřístupněním správy je povinná změna hesla na alespoň 11 znaků.
Port lze zadat v TUI nebo přepínačem `--port 8089`.
Nginx konfigurace je samostatná a nepřepisuje ostatní weby.
Pro veřejnou doménu nastavte v Nginx HTTPS certifikát; služba eAI zůstává na
loopback portu 8090.
Instalace bez kompilace, například pro externí AI server nebo přes eUpdate:
```bash
sudo bash install.sh --non-interactive --engine none
```
Doinstalování enginu:
```bash
sudo eai-engine install cpu
sudo eai-engine install cuda
sudo eai-engine install vulkan
sudo eai-engine install ax8850
```
CUDA vyžaduje již funkční NVIDIA ovladač a CUDA Toolkit (`nvcc`). Vulkan
instalátor doplní překladač shaderů a vývojové knihovny. CPU/GPU používají
poslední oficiální llama.cpp; commit je zaznamenán v
`/opt/eai-engines/llama/COMMIT`. Lze zadat také konkrétní git ref jako třetí
argument `eai-engine install cpu GIT_REF`. Jedna instalace llama.cpp má právě
jeden zvolený GPU backend; CPU zůstává dostupné i v GPU sestavení.
AX8850 potřebuje samostatně instalovaný **AXCL ovladač výrobce** pro konkrétní
systém a jádro. Instalátor AXLLM stáhne runtime, nikoli ovladač jádra.
## První model a chat
1. **Modely → Stáhnout model**: zadejte Hugging Face repozitář.
2. CPU/GPU: vyberte jednu kvantizaci GGUF a pro VLM odpovídající soubor
`mmproj`. U rozděleného GGUF stáhněte všechny díly. SHA-256 LFS souborů
a Git kontrolní součty ostatních souborů se ověřují při stažení.
3. **Přidat model**: vyberte engine, modelový soubor, mmproj a označte VLM.
U rozděleného GGUF zvolte první díl. Pro začátek použijte context 4096;
jeho zvýšení spotřebovává další paměť.
4. **Spustit**, poté **Test**. Test kontroluje dostupnost backendu a shodu
jeho ID modelu; nehodnotí jazykovou kvalitu.
5. **Testovací chat**: český/anglický text, případně obrázek.
Kandidát pro požadavek 9B VLM je **Qwen3.5-9B**, například GGUF repozitář
`unsloth/Qwen3.5-9B-GGUF`. eAI nepřidává vlastní jazykové schopnosti;
české a anglické odpovědi závisejí na modelu. Na Pi s 8 GB RAM je nutné
zohlednit velikost kvantizace, vizuálního enkodéru, kontextu i rezervu systému.
Výkon a paměťová průchodnost 9B VLM nebyly v tomto prostředí měřeny.
**Dvě AX8850:** v profilu zařízení `0,1`. eAI předá dokumentovaný parametr
`AXLLM_DEVICES=0,1` a spustí **jedinou instanci** AXLLM. Potřebujete kompletní
převedený model pro tento runtime, nikoli původní `.safetensors` ani GGUF.
Zda konkrétní 9B VLM a jeho enkodér fungují na dvou kartách v X1016, musí
potvrdit test na skutečném hardwaru. Balíček takový převod neobsahuje a
neoznačuje neověřenou sestavu za funkční. Viz [AX8850](docs/AX8850.md).
## Funkce
- Přehled CPU, RAM, disku, uptime, dostupných teplot a provozu modelů.
- Detekce NVIDIA, llama.cpp zařízení, AXCL, device nodes a PCIe zařízení.
- Profily CPU / CUDA / Vulkan / AX8850 / externího HTTP(S) API, start, stop,
test backendu, autostart a dohled po pádu procesu.
- Stahování modelů na pozadí s průběhem, kontrolními součty a zrušením.
Neúplný model se neobjeví v cílové složce.
- Chat s postupně zobrazovanou odpovědí, Stop, historií, obnovením sledování
běžící odpovědi po načtení stránky a exportem JSON.
- PNG/JPEG/WebP pro VLM; nejvýše 4 obrázky do 8 MiB, celý JSON do 24 MB.
- Měření celkové doby, TTFT a tokenů/sekundu, pokud backend vrátí usage.
Rychlost je průměr za celý požadavek včetně zpracování vstupu.
- OpenAI kompatibilní `/v1/models` a `/v1/chat/completions`, JSON i SSE,
modelové aliasy, API klíče s omezením modelů a požadavků za minutu.
- eUpdate: ruční/týdenní kontrola, ruční/volitelné automatické aktualizace,
záloha kódu a dat před změnou a rollback při neúspěšném spuštění.
- Check-in po startu a 1× za 24 h, ručně přes GUI. Stabilní identita
instalace, název serveru, skutečný linuxový hostname a provozní inventář.
- Konzistentní SQLite zálohy, seznam, stažení, smazání a lokální obnova.
- Provozní log, logy modelových enginů a diagnostický ZIP bez chatů,
obrázků, hesel a klíčů. CZ/EN rozhraní, responzivní menu a formuláře.
## eUpdate
**Do eUpdate nahrajte celý `eai-server-0.1.0.zip`, nerozbalenou vnitřní složku.**
Kořen ZIPu obsahuje `install.json` ve stejném strukturálním formátu jako
stávající balíčky eWeb. Projekt má `software_id=eai-server`, název eAI a MIT.
Podrobnosti a JSON pro založení projektu jsou v [docs/EUPDATE.md](docs/EUPDATE.md)
a `eupdate-project.json`. Samotné vytvoření projektu/publikování na vašem
eUpdate zde provedeno nebylo.
Instalace z eUpdate používá `--non-interactive --engine none`, aby vydání
jádra nečekalo na kompilaci enginu. Výpočetní runtime se instaluje samostatně
příkazem výše; váhy se stáhnou z webové správy. Další aktualizace enginy,
modelové váhy, identitu instalace a nastavení zachovají.
## Správa a soubory
```bash
systemctl status eai.service
sudo journalctl -u eai.service -n 100 --no-pager
sudo eai reset-password
sudo eai backup
sudo eai restore /absolutni/cesta/eai-backup-....zip
sudo eai-release check
sudo eai-release checkin
sudo eai-release apply
```
Kód `/opt/eai` vlastní root. Data, SQLite, konfigurace, zálohy a logy jsou
v `/var/lib/eai` a patří účtu `eai`. Váhy: `/var/lib/eai/models`.
Privilegovaný aktualizační pracovník bere pouze požadavek na aktualizaci;
URL i SHA-256 získá samostatně z důvěryhodného HTTPS feedu eUpdate.
Zálohy před aktualizací jsou soukromě v `/var/lib/eai-maintenance/rollback-*`.
Obnova běžné zálohy vyžaduje stejnou verzi eAI a nejdříve vytvoří záchrannou
zálohu aktuálních dat. Modelové váhy se do záloh nekopírují.
`Stop` u profilu vypne autostart, aby dohled model ihned znovu nespustil.
Celý server po restartu obnoví modely s ponechaným autostartem. Rozpracované
odpovědi/stahování při restartu služby dostanou stav přerušeno; nejsou vydávány
za dokončené. Stahování po restartu spusťte znovu.
## Ověření a známé limity
```bash
python3 -m unittest discover -s tests -v
bash install.sh --verify-only
```
Podrobné výsledky jsou v `docs/VALIDATION.md`. Testy používají skutečný HTTP
server a řízený testovací backend; nevyžadují GPU, AX8850 ani stažení vah.
Nejde o měření kvality nebo rychlosti modelu a nebyl proveden produkční
zásah na vašich serverech. Rozsah API je popsán v [API](docs/API.md).
## English quick start
Run `sudo bash install.sh` on Ubuntu 26.04+ (ARM64/x86-64). Select CPU,
CUDA, Vulkan, AX8850 or no engine. Open `http://SERVER:8088`, sign in with
`admin / admin`, then change the password (11+ characters). Use the English
button to switch the interface. Download GGUF and its matching vision
projector, add a model profile, start the runtime and open Test chat.
AX8850 requires vendor AXCL drivers plus a converted AXLLM model. Device
selection `0,1` enables the runtime's documented multi-card mode; a specific
9B VLM on the user's two-card setup remains subject to hardware validation.
The ZIP includes source, installer, tests, manifests and docs, without
model weights, vendor binaries or screenshots.