Helyi AI
Open WebUI
Az Open WebUI önhostolt, bővíthető webes felület helyi és felhőben futó modellekhez: Ollama és OpenAI-kompatibilis végpontok, fiókok és jogosultságok egy helyen.
Az Open WebUI önhostolt webes felület nagy nyelvi modellekhez. A csevegés a böngészőben fut, mögötte viszont nem egyetlen szolgáltató áll: a felület Ollama és OpenAI-kompatibilis API-khoz is csatlakozik, így ugyanabban a kezelőfelületben jelennek meg a helyi és a távoli modellek. A kapcsolat hozzáadása a dokumentáció szerint egy URL és egy API-kulcs megadása az admin beállítások Connections szakaszában.
A projekt önmagát bővíthető, teljesen offline is futtatható platformként írja le: telepítés után a felület és az adatok a saját gépen maradnak. Nálunk az Open WebUI egyetlen böngészőfelület, amely több helyi modellt szolgál ki: a konténer Docker alatt fut, és a helyi, OpenAI-kompatibilis végpontra csatlakozik.
Egy felület, több végpont
A felület három kapcsolódási módot ismer: Ollama, OpenAI-kompatibilis API és Open Responses. Bármely helyi szerver vagy felhős API használható, amely valamelyiket beszéli, és a kapcsolatok egymás mellett élnek ugyanabban az admin felületen.
- A helyi modelleket nálunk az LM Studio szervere adja, ehhez a felület OpenAI-kompatibilis végpontként kapcsolódik.
- Több modell egyszerre is összehasonlítható: a többmodelles csevegés ugyanazt a kérdést minden kijelölt végpontnak elküldi.
- A választott végpont dönti el, hol történik az inferencia. Felhős modellnél a kérdés és a kontextus ahhoz a szolgáltatóhoz megy; a helyi inferencia önmagában nem tesz helyivé egy külön beállított felhős eszközt vagy embedding szolgáltatást.
Telepítés Docker konténerben
A dokumentáció a Dockeres telepítést ajánlja legtöbb esethez: a felület egy publikált porton érhető el, a perzisztens adat névvel ellátott kötetbe kerül, és a konténer a gazdagépen futó szolgáltatásokat is elérheti.
- A kötet nélkül nem érdemes futtatni: a csevegések, a felhasználók és a beállítások abban élnek, és az éli túl a frissítést.
- A titkos kulcsot egyszer kell beállítani és megtartani. Rögzített kulcs nélkül minden újraépített konténer kijelentkezteti a felhasználókat.
- A konténeren belül a
localhosta konténert jelenti, nem a gazdagépet, ezért a gazdagépen futó végpont eléréséhez külön hosztnév kell. - A
:maina javasolt kép, benne a beszédfelismerő és embedding modellekkel. A:main-slimkisebb, de a helyi gépi tanulási réteg nélkül, ezért embeddinghez, beszédfelismeréshez, rerankinghez, vektoros tároláshoz és dokumentumfeldolgozáshoz külső szolgáltatást kér. - A
:mainés a:latestgördülő tag, ezért éles üzemhez verzióra rögzített tag ajánlott.
Adatmodell és frissítés
A perzisztens kötet a felület teljes állapotát tartja: a beszélgetéseket, a fiókokat és a beállításokat. Ez teszi a konténert eldobhatóvá, és ezért a dokumentált lépés a frissítés előtti mentés.
- Frissítéskor az új kép lehúzása önmagában nem elég: a futó konténert le kell állítani, törölni kell, majd a kötet és ugyanaz a titok megtartásával újat kell indítani.
- Nagyobb terhelésnél a felület több példányban is futtatható terheléselosztó mögött, külső adatbázissal és tartós tárolóval. Erre a célra nálunk a PostgreSQL szolgál.
Fiókok és jogosultságok
A hozzáférés-kezelés három rendszerszerepen és a hozzájuk tartozó jogosultságokon alapul. A modell additív: a csoporttagságok hozzáadják a jogosultságokat a szerep alapértékeihez.
- A szerepek: admin, user és pending. Az admin teljes kontrollal rendelkezik, a user jogait a jogosultságok és a csoportok adják, a pending fiók pedig jóváhagyásig semmit nem ér el.
- Az első létrehozott fiók automatikusan admin lesz, és ezt a fiókot az API nem engedi törölni.
- Nyilvános vagy megosztott példánynál a
pendingalapértelmezett szerep a javasolt: az új regisztráló addig nem tud belépni, amíg egy admin aktívvá nem teszi. - Modellek és tudásbázisok csoporthoz vagy konkrét felhasználóhoz oszthatók meg. Az admin szerep alapból megkerüli a finom jogosultságokat, a felhasználói csevegések olvasása viszont külön beállítással tiltható.
Amire figyelni kell
- A felületnek nincs beépített kontextus-csonkítója. A hosszú beszélgetés a modell kontextusablakánál akad el, és a dokumentáció szándékosan nem választ helyettünk szabályt: a megoldás egy filter Function, amely a bemeneten módosítja az előzményt.
- A szerepváltás nem vonja vissza a tokent. A lefokozott admin bejelentkezve marad, és csak az admin végpontoktól esik el; a pending szerep viszont minden kérésnél elutasításra kerül.
- Egy friss telepítés magától is indít kifelé irányuló hívásokat: verzióellenőrzést a GitHub felé, modellista lekérését az alapértelmezett OpenAI kapcsolaton, és az embedding modell frissítésének ellenőrzését. Ezek környezeti változóval kikapcsolhatók.
- A támogatás közösségi csatornákon folyik, a hibajegyeket a projekt nyilvános listáján kezelik.
Tovább olvasás
A CyberElectrónál az Open WebUI a belső belépési pont a helyi modellekhez: Dockerben fut, egyetlen böngészőfelületet ad több helyi modell fölé, és fiókonként szabályozható, ki mit ér el.