XWiki: LLM-Integration, KI-Modell & RAG-Architektur

·

Übersicht

Large Language Models sind in vielen Anwendungsfällen sehr praktisch und lösen konkrete Fragestellungen und Probleme.
Dabei sind die Modelle mit den global verfügbaren Inhalten des Internets trainiert.
Bei konkreten Fragen zu internem Firmenwissen kann ein klassisches LLM jedoch wenig beitragen. Was wäre jedoch, wenn die gesamte Wissensdatenbank des Unternehmens, sofern sie auf XWiki basiert, in LLM-Abfragen einbezogen werden könnte?

In diesem TEKTalk stellen wir den aktuellen Stand der XWiki LLM Extension vor und gehen auf die verschiedenen Konfigurationsmöglichkeiten ein.

Eine grundlegende Übersicht über den Stand der Integration und die verschiedenen Extensions findet sich direkt bei XWiki.

Besonders relevant sind:

  • LLM Application: Die zentrale Erweiterung für Interaktion, UI und Chat-Funktionen.
  • LLM Models API: Schnittstellen-Spezifikation für die Einbindung verschiedener LLM-Provider.
  • Index for the LLM Application: Erstellt und verwaltet Vektor-Indizes aus XWiki-Inhalten für Retrieval-Augmented Generation (RAG).
  • LLM Index API: Schnittstelle für die Vektor-Indizierung.

Extensions installieren

Die Erweiterungen können über das XWiki Admin Interface unter: „Administer Wiki“ → „Extensions“ → „Extensions“ → „Suche: LLM“ installiert werden.

Da XWiki bei der Erstinstallation der Extensions nicht zwangsläufig die neueste Version verwendet, empfiehlt sich ein manueller Prüflauf unter „Extensions“ → „Updater“.

Applikation aufrufen

Nach erfolgreicher Installation stehen die LLM-Funktionalitäten direkt über das Application Panel zur Verfügung, von hier sind alle Einstellungen zu erreichen.

Zudem erscheint unten rechts ein neuer Chat-Button.

Server-Endpunkte & Provider-Anbindung

Über den Menüpunkt LLM Application im Application Panel steht die zentrale Verwaltungskonsole zur Verfügung.
Unter Settings werden die API-Endpunkte für die Modell-Anbieter hinterlegt.
Voraussetzung ist eine OpenAI-kompatible API-Schnittstelle inklusive zugehörigem API-Token.
In diesem Beispiel nutzen wir drei verschiedene Varianten:

  • Google Gemini: https://generativelanguage.googleapis.com/v1beta/openai/
  • Mistral: https://api.mistral.ai/v1/
  • Ollama, für lokal betriebene KI-Modelle: http://172.17.0.1:11434/v1/ (siehe unten)

Modelle definieren

Als Nächstes werden die benötigten Modelle konfiguriert.
Hierbei sind zwei Typen zu unterscheiden:

1. Large Language Models: Die Sprachmodelle, mit denen die Nutzer direkt im Chat interagieren.

2. Embedding-Modelle: KI-Modelle, die aus den XWiki-Inhalten Vektordatenbanken aufbauen, damit das LLM zielgerichtet auf das Firmenwissen zugreifen kann.

Die bereits vorhandenen Modelle sind lediglich Beispiele und können alle gefahrlos gelöscht werden. Für diese Demo werden die Modelle von Mistral an XWiki angebunden.

Die Parameter der Modelle müssen beim jeweiligen Hersteller oder z.B. bei Hugging Face recherchiert werden.

Für das LLM-Modell werden die folgenden Parameter benötigt:

Server Name: Mistral (Endpunkt/Server für das Modell)
Type: Large language model
Model ID: mistral-medium-3-5 (Herstellerspezifische ID)
Context size: 256000 (Modellabhängiges Kontextfenster)
Group: XWikiAdminGroup, XWikiAllGroup (Zugriffssteuerung)
Allow guest to access the model: No

Nach dem Speichern steht das Modell im integrierten AI-Chat
(unten rechts im Interface) für allgemeine Anfragen bereit.

Für die Indizierung wird das passende Embedding-Modell definiert:

Server Name: Mistral (Endpunkt/Server für das Modell)
Type: Embeddings model
Model ID: mistral-embed-2312 (Herstellerspezifische ID)
Number of Dimensions: 1024
Context size: 8000 (Modellabhängiges Kontextfenster)
Group: XWikiAdminGroup, XWikiAllGroup (Zugriffssteuerung)
Allow guest to access the model: No

Collections definieren

Vektorisierte Inhalte werden in sogenannten Collections organisiert.
Diese steuern, welche Bereichsgrenzen und Zugriffsrechte bei KI-Abfragen angewendet werden.

Die Anlage einer Collection funktioniert in XWiki wie folgt.

Titel: Mistral (frei wählbar)
Embedding Model: AI.Models.mistral-embed-2312
Document Store: XWiki
DocumentSpaces: Home, Firmenangaben, etc. (Bereiche auswählen)
Groups that can query: XWikiAdminGroup, XWikiAllGroup
Rights check method: XWiki (XWiki Berechtigungen berücksichtigen)

Nach der Konfiguration kann die Indizierung über den Button Start re-indexing manuell gestartet werden.
Nach kurzer Zeit werden die generierten Text-Chunks aufgelistet.

Damit das LLM auf den erstellten Index zugreifen kann, muss die Collection in den Einstellungen des Chat-Modells zugewiesen werden:

1. Modell-Konfiguration (mistral-medium-3-5) öffnen.
2. Unter FiltersContextCollections die neu erstellte Collection (z. B. mistral) hinterlegen.

Das Modell bezieht sowohl Wiki-Seiten als auch gängige Dateianhänge (z. B. PDF, Office-Dokumente) in seine Antworten ein.

Lokaler Betrieb mit Ollama

Für maximale Datensouveränität lassen sich KI-Modelle vollständig lokal ohne externe Drittanbieter betreiben.
Dazu werden Ollama und die gewünschten Modelle, hier als Beispiel auf einem Ubuntu-System, installiert.
Zum Ausprobieren kommen öffentlich verfügbare Google-Modelle zum Einsatz.

# Ollama installieren
curl -fsSL https://ollama.com/install.sh | sh

# Chat- und Embedding-Modelle laden
ollama pull gemma3:latest
ollama pull embeddinggemma

Jetzt müssen ein Server, die beiden Modelle sowie die Collection konfiguriert werden.

Wenn alles richtig konfiguriert wurde, gibt der ChatBot die angefragten Informationen aus.

  • Server: Ollama | URL Prefix: http://172.17.0.1:11434/v1/ (IP entsprechend anpassen)
  • LLM Modell: gemma3:latest
  • Embedding Model: embeddinggemma
  • Collection: embeddinggemma

Ausblick: MCP-Server

In Kürze steht das erste finale Release des MCP-Servers an. Damit lassen sich XWiki-Inhalte künftig auch direkt über externe Drittsysteme verwalten. Dieser Server funktioniert vollkommen unabhängig von den hier vorgestellten Erweiterungen. Eine detaillierte Vorschau dazu gibt es in einem unserer nächsten TEKTalks.

Was können wir für Sie tun?

Egal, welche Unterstützung Sie zu XWiki benötigen, wir helfen Ihnen gerne. Schicken Sie uns einfach eine formlose Anfrage per E-Mail oder rufen Sie uns an: +49-841-1380-1644