java --enable-preview --source 21 --add-modules jdk.incubator.vector Llama3.java -i --model Qwen2.5-Coder-3B-Instruct-Q4_0.gguf
WARNING: Using incubator modules: jdk.incubator.vector
Note: Llama3.java uses preview features of Java SE 21.
Note: Recompile with -Xlint:preview for details.
Parse Qwen2.5-Coder-3B-Instruct-Q4_0.gguf: 318 millis
Load LlaMa model: 258 millis
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "java.lang.Integer.intValue()" because the return value of "java.util.Map.get(Object)" is null
at com.llama4j.ModelLoader.loadModel(Llama3.java:696)
at com.llama4j.ModelLoader.loadModel(Llama3.java:686)
at com.llama4j.Llama3.main(Llama3.java:274)
OpenWebUI ist eine selbstgehostete Benutzeroberfläche zur Interaktion mit LLMs (Large Language Models). Es kombiniert Frontend und API-Layer in einer einzigen Webanwendung und bietet Unterstützung für verschiedene Sprachmodelle – lokal oder über APIs (z. B. OpenAI, Claude, Ollama, LM Studio).
Komponentenübersicht
Ein typisches OpenWebUI-System besteht aus folgenden Hauptkomponenten:
Benutzeroberfläche (Client)
Darstellung der Chats
Eingabefeld für Nutzereingaben
Darstellung von Modellantworten
Chat-Historie und Session-Management
API-Layer (integriert in OpenWebUI)
Verarbeitung und Weiterleitung von Anfragen
Token-Management (z. B. API-Keys)
Sicherheit (z. B. Authentifizierung)
Kontextverwaltung (z. B. System-Prompts, Rollen, Modelleinstellungen)
Sprachmodell(e)
Externe APIs: OpenAI (GPT-4), Anthropic (Claude), etc.
Lokale Modelle über Ollama, LM Studio, OpenRouter u.a.
Mehrere Modelle gleichzeitig konfigurierbar
Architekturdiagramm
flowchart LR
subgraph OpenWebUI ["OpenWebUI (Self-Hosted Webapp)"]
A[Benutzeroberfläche<br>• Eingabe & Anzeige<br>• Session-Verwaltung]
B[API-Layer<br>• Anfrageverarbeitung<br>• Sicherheit & Token<br>• Modellrouting]
end
C[Sprachmodell<br>• GPT-4 / OpenAI API<br>• LLaMA / Ollama<br>• Claude / API]
A -->|Anfrage| B
B -->|Verarbeitete Anfrage| C
C -->|Antwort| B
B -->|Formatierte Antwort| A
Besonderheiten
Self-Contained: OpenWebUI enthält sowohl die Benutzeroberfläche als auch den API-Layer – keine zusätzliche Middleware nötig.
Multimodellfähig: Nutzer können zwischen mehreren Modellen und Providern wählen.
Privatsphäre: Lokale Modellanbindung (z. B. Ollama) möglich – keine Datenübertragung an Dritte.
Plugins & Funktionen:
Dateien hochladen und durchsuchen
Konversationsverwaltung
Rollenbasierte Prompts
Unterstützung für Bildmodelle (optional)
Hosting-Optionen
Docker (empfohlen)
Manuelle Installation (Node.js + Backend)
Unterstützung für Authentifizierung, mehrere Benutzer und persistente Einstellungen
Fazit
OpenWebUI ist eine leistungsstarke, modulare Lösung für den selbstgehostenen Einsatz von LLMs. Durch die Integration von Frontend und API eignet es sich besonders für Nutzer, die ohne Cloud-Dienste arbeiten wollen oder mehrere Modelle flexibel einbinden möchten.
OpenWebUI mit Docker und Traefik installieren
Diese Anleitung beschreibt die Installation von OpenWebUI auf einem Webserver mithilfe von Docker und Traefik als Reverse Proxy.
Voraussetzungen
Ein Linux-Server mit root-Zugriff
Installiertes Docker und Docker Compose
Domain (z. B. webui.example.com)
Docker-Netzwerk für Traefik, z. B. traefik-net
Bereits laufender Traefik-Container
1. Verzeichnisstruktur anlegen
mkdir -p /data/docker/openwebui
cd /data/docker/openwebui
2. Docker-Compose-Datei erstellen
Erstelle eine Datei namens docker-compose.yml mit folgendem Inhalt:
Beim ersten Login wird automatisch ein Admin-Benutzer angelegt.
ChatGPT
Im Administrationsbereich über Einstellungen -> Verbindungen kann der OpenAI-API-Key eingetragen werden:
Groq
Im Administrationsbereich über Einstellungen -> Verbindungen über das Plus-Zeichen eine neue Verbindung anlegen und die Groq-URL und API-Key eintragen:
URL: https://api.groq.com/openai/v1
Modelle
Im Administrationsbereich über Einstellungen -> Modelle kann ausgewählt werden, welche Modelle den Benutzern zur Auswahl angezeigt werden sollen.