KI zentral verwalten in TYPO3 v14: nr-llm als gemeinsames LLM-Fundament

Ein TYPO3-v14.3-Fork von Netresearchs nr-llm: zentrale Provider-Abstraktion für 9 KI-Provider, verschlüsselte API-Keys, Fallback-Chain, SLSA L3-Lieferkette und ein Architektur-Refactoring auf finale Services.

Auf einen Blick

  • Fork von Netresearchs nr-llm, auf TYPO3 14.3 LTS gehoben mit vollständigem Architektur-Refactoring.
  • 9 KI-Provider (OpenAI bis Azure) einmal konfigurieren, alle Extensions nutzen sie über eine einheitliche Service-API.
  • Verschlüsselte Keys, Fallback-Chain, per-User-Budgets und Backend-Permissions auf Capability-Ebene.
  • SLSA L3 + Cosign + SBOM — verifizierbare Lieferkette für produktionsreife Deployments.

In großen TYPO3-Installationen mit mehreren Extensions, die Sprachmodelle nutzen, entsteht schnell ein unübersichtliches Geflecht: Jede Extension verwaltet ihre eigenen API-Schlüssel, nutzt unterschiedliche HTTP-Clients und implementiert eigene Fehlerbehandlungslogik. Das „N × API-Schlüssel"-Problem kennen Administrator:innen, die für ein Multisite-System fünf verschiedene Extensions konfigurieren – und bei jedem Provider-Wechsel alle Einstellungen anfassen müssen.

nr-llm löst dieses Problem mit einem Ansatz, der dem TYPO3-Caching-Framework ähnelt: Provider und Modelle werden einmal zentral konfiguriert ; alle Extensions, die von netresearch/nr-llm abhängen, greifen über eine einheitliche Service-API darauf zu. Der Fork hebt diese Extension auf TYPO3 14.3 LTS und führt ein Architektur-Refactoring durch, das Interfaces, finale Services und vereinheitlichtes Dependency Injection konsequent umsetzt. Die Lieferkette ist mit SLSA L3, Cosign und SBOM abgesichert.


Inhaltsverzeichnis  

Überblick

Das „N × API-Schlüssel"-Problem und der zentrale Lösungsansatz.

Was wurde gemacht

Änderungen und Erweiterungen gegenüber dem Netresearch-Original.

Funktionen im Detail

Provider, Services, Sicherheit und Lieferkette im Überblick.

Installation

Composer-Setup und Extension-Einrichtung.

Überblick  

Die Idee hinter nr-llm ist konzeptuell schlank: Provider-Konfigurationen und API-Schlüssel gehören nicht in einzelne Extensions, sondern in eine zentrale Schicht – ähnlich dem Caching-Framework, das Cache-Backends einmal definiert und sie für alle TYPO3-Komponenten verfügbar macht. Extensions, die Sprachmodelle nutzen, deklarieren lediglich, welche Capability sie benötigen (Chat, Embedding, Translation), und erhalten den passenden Service per Dependency Injection.

Für Multisite-Installationen bedeutet das: Ein API-Schlüssel für OpenAI, konfiguriert an einer Stelle, steht allen Extensions auf allen Sites zur Verfügung. Provider-Wechsel oder Modell-Updates werden zentral vollzogen. Fällt ein Provider aus, greift die Fallback-Chain auf den nächsten konfigurierten Provider. Per-User-Budgets begrenzen den Token-Verbrauch einzelner Backend-Nutzer:innen.

Nur für TYPO3 v14

Diese Extension setzt typo3/cms-core ^14.3 voraus – TYPO3 14.3 LTS ist die einzige unterstützte Version. PHP ^8.2 ist erforderlich. Ältere TYPO3-Versionen werden durch diesen Fork nicht unterstützt.

nr_llm dashboard with providers, models, configurations, and tasks in the TYPO3 backend

Zentrale LLM-Verwaltung: Provider, Modelle, Konfigurationen und Aufgaben liegen in einem Backend-Dashboard statt verteilt in einzelnen Extensions oder Umgebungsdateien.

Was wurde gemacht  

Ausgangspunkt ist netresearch/t3x-nr-llm von Netresearch DTT GmbH , das die grundlegende Provider-Abstraktion und Service-API mitbringt. Der Fork setzt die Extension auf TYPO3 14.3 LTS (Composer-Constraints angepasst, PHPStan auf Maximum hochgezogen) und führt mehrere Architektur-Verbesserungen ein.

Auf Datenebene: XLIFF-2.0 mit ICU-Plurals wurde ergänzt, die Document-Payloads wurden pro Provider normalisiert – inklusive OpenAI-PDF-Upload, der im Original fehlte. Das Backend-UI wurde für den v14-Styleguide angepasst (Wizard, Icons, Modul-Routing). Das Architektur-Refactoring nach internem Audit umfasst extrahierte Interfaces für alle öffentlichen Services, final readonly-Services für klarere Abhängigkeiten, vereinheitlichtes Dependency Injection via #[AsTranslator] und einen isolierten BudgetService ohne Seiteneffekte auf andere Services.

Funktionen im Detail  

BereichDetails
ProviderOpenAI, Anthropic Claude, Google Gemini, Ollama, OpenRouter, Mistral, Groq, Azure OpenAI, Custom — alle über dieselbe API
ServicesChat/Completion, Streaming (SSE), Vision, Embeddings, Tool/Function Calling, Translation
Dokument-InputProvider-neutrales Format für PDFs; OpenAI-PDF-Upload integriert
SicherheitVerschlüsselte API-Keys via sodium (optional nr-vault); Fallback-Chain bei Fehlern/Rate-Limits
BerechtigungenPer-Capability-BE-Permissions; per-User Token- und Request-Budgets
LieferketteSLSA L3, Cosign-Signaturen und SBOM für verifizierbare Releases
DI/ArchitekturInterfaces extrahiert, Services final readonly, #[AsTranslator]-Attribut, BudgetService isoliert

Die Provider-Abstraktion folgt dem Muster von TYPO3s Caching-Framework: Wer einen neuen Provider hinzufügen oder einen bestehenden tauschen will, ändert die zentrale Konfiguration – Extensions, die nr-llm als Abhängigkeit deklarieren, bemerken den Wechsel nicht. Die Lieferkette mit SLSA L3 und Cosign-Signaturen gibt Produktivumgebungen eine verifizierbare Basis.

Installation  

Häufige Fragen  

Fazit  

nr-llm bringt Ordnung in das wachsende Feld KI-fähiger TYPO3-Extensions: Einmal konfiguriert, steht die gesamte Provider-Infrastruktur allen abhängigen Extensions bereit – ohne doppelte Schlüsselverwaltung, ohne verteilte Fehlerbehandlung. Der Fork festigt diese Basis für TYPO3 14.3 LTS mit einem sauberen Architektur-Refactoring und einer verifizierbaren Lieferkette.

Dank

nr-llm ist ein Fork von Netresearchs t3x-nr-llm. Dank an Netresearch DTT GmbH für die Vorarbeit. Die Extension steht unter der GPL-2.0-or-later-Lizenz.

Lassen Sie uns über Ihr Projekt sprechen

Standorte

  • Mattersburg
    Johann Nepomuk Bergerstraße 7/2/14
    7210 Mattersburg, Austria
  • Wien
    Ungargasse 64-66/3/404
    1030 Wien, Austria

Dieser Inhalt wurde teilweise mithilfe von KI erstellt.