Eine Provider-Anbindung statt einer je Extension
Jede Extension, die KI nutzen will, ruft denselben Service. Die zweite KI-Funktion bedeutet nicht mehr die zweite Provider-Anbindung, die zweite Schlüsselablage und die zweite Fehlerbehandlung.
TYPO3-Extension · nr-llm
Provider einmal anbinden, Zugriffe zentral steuern, Budgets begrenzen und KI-Funktionen für alle Extensions der Seite kontrolliert bereitstellen.
Vier verschiedene Werte. Ein Unterschied zwischen ihnen ist kein Widerspruch: Der Release ist, was Sie installieren, der Hauptzweig ist, woran gebaut wird, und das Prüfdatum sagt, wann zuletzt jemand den Text dieser Seite geprüft hat.
Die technische Beschreibung steht weiter unten. Hier stehen die Wirkungen, die über eine Einführung entscheiden.
Jede Extension, die KI nutzen will, ruft denselben Service. Die zweite KI-Funktion bedeutet nicht mehr die zweite Provider-Anbindung, die zweite Schlüsselablage und die zweite Fehlerbehandlung.
Konfigurationen benennen Provider und Modell. Der Wechsel von einer kommerziellen API auf einen selbst gehosteten Endpunkt ändert einen Datensatz im Backend, nicht den Code der nutzenden Extensions.
API-Schlüssel liegen als Kennungen in nr-vault. Nicht im Klartext in der Datenbank, nicht in einer Konfigurationsdatei und nicht dreimal parallel in drei Extensions.
Die Nutzung wird je Provider, Modell, Service und Backend-Nutzer mit geschätzten Kosten erfasst. Budgets begrenzen sie je Nutzer und Zeitraum.
Übersetzung, Alternativtexte, Embeddings und Retrieval sind Services, die andere Extensions injizieren statt nachzubauen.
Ollama, vLLM und LocalAI werden genauso konfiguriert wie eine kommerzielle API. Eine Vorgabe zum Verarbeitungsort erzwingt damit keine andere Architektur.
Was eine Administratorin tatsächlich entscheiden kann – und wo die Software es durchsetzt.
Berechtigungen werden je Fähigkeit an Backend-Gruppen vergeben. Das Konfigurationsmodul selbst ist auf Administratoren beschränkt.
Budgets begrenzen Anfragen, Tokens oder geschätzte Kosten je Backend-Nutzer, täglich oder monatlich. Ein Lauf, der das Budget überschreiten würde, scheitert mit einer typisierten Ausnahme, statt still weiterzulaufen.
Die eingebauten Werkzeuge sind in Gruppen zusammengefasst, jede Gruppe lässt sich einzeln aktivieren. Lesende Werkzeuge sind der Normalfall; die schreibenden sind ab Werk deaktiviert.
Ein freigabepflichtiges Werkzeug hält den Lauf an und wartet auf eine Entscheidung. Es gibt keine Zeitschranke, die stattdessen zustimmt.
Provider, Modell, Service, Nutzer, Token-Zahlen und geschätzte Kosten je Anfrage. Der Prompt-Inhalt gehört nicht zum Nutzungsdatensatz.
Eine Konfiguration kann Rückfälle benennen, die bei Verbindungsfehlern, HTTP-5xx und Rate-Limits in der angegebenen Reihenfolge versucht werden. Ist die Kette erschöpft, gibt es eine typisierte Ausnahme statt einer leeren Antwort.
Eine Anfrage, von Anfang bis Ende.
Alle werden gleich konfiguriert. Die Wahl ist eine administrative Entscheidung, keine architektonische.
| Modell | Wo verarbeitet wird | Passt, wenn | Preis dafür |
|---|---|---|---|
| Kommerzielle API (OpenAI, Anthropic, Google, Mistral, Groq) | Beim Anbieter | Modellqualität und -auswahl den Ausschlag geben | Vertragliche und datenschutzrechtliche Prüfung je Anbieter |
| In der EU gehosteter Anbieter | Beim Anbieter, in der EU | Der Verarbeitungsort vorgegeben ist | Kleinere Modellauswahl |
| Azure OpenAI oder OpenAI-kompatibler Endpunkt | In Ihrem Cloud-Konto | Ein Rahmenvertrag bereits besteht | Bindung an die Plattform |
| Selbst gehostet (Ollama, vLLM, LocalAI) | In Ihrer Infrastruktur | Daten das Netz nicht verlassen dürfen | Eigener Betrieb, eigene Hardware, eigene Modellpflege |
| Gemischt | Je Konfiguration unterschiedlich | Sensible und unkritische Fälle sich unterscheiden | Mehr Konfiguration, mehr Erklärungsbedarf |
Was die Extension tatsächlich gegen Kosten tut. Eine Einsparungszahl steht hier nicht – die hinge von Mengengerüsten ab, die wir nicht kennen.
Anfragen, Tokens oder geschätzte Kosten. Jede Größe lässt sich täglich oder monatlich je Backend-Nutzer begrenzen.
Die Nutzungsauswertung schlüsselt die geschätzten Kosten nach Provider, Modell, Service und Nutzer über ein gleitendes Fenster auf.
Die Anfrage wird mit einer typisierten BudgetExceededException abgelehnt. Wie das dargestellt wird, entscheidet die aufrufende Extension.
Eine Konfiguration kann Rückfälle benennen – ein kleineres Modell oder einen selbst gehosteten Endpunkt ohne Kosten je Token.
Aus den im Backend hinterlegten Preisen je Modell, angewendet auf die Token-Zahlen, die der Provider zurückmeldet. Eine Schätzung, nicht die Rechnung des Anbieters.
Jeder klein genug, um ihn zu beenden, und konkret genug, um ihn zu bewerten.
Einen Provider konfigurieren, der Redaktionsgruppe die Übersetzungsfähigkeit geben, ein Monatsbudget setzen, einen Seitenbaum übersetzen. Danach ist sichtbar, wer was mit welchem Modell zu welchen geschätzten Kosten übersetzt hat.
Eine Konfiguration auf ein Modell mit Bildverständnis zeigen lassen und Alternativtexte für einen Medienordner erzeugen. Ein kommerzielles Modell und ein selbst gehostetes an denselben Bildern vergleichen.
Die Retrieval-Werkzeuggruppe aktivieren und Fragen zu eigenen Seiteninhalten stellen. Prüfen, ob jede Antwort die Seiten benennt, aus denen sie stammt.
Auf jedem KI-Produkt von Netresearch dieselben Felder – damit sie vergleichbar sind und nicht nur beeindruckend.
Jede TYPO3-Extension, die heute KI-Funktionen möchte, muss dieselben Infrastrukturprobleme selbst lösen. Betreibt eine Website drei KI-Extensions, bedeutet das drei getrennte API-Key-Konfigurationen, drei Stellen zur Fehlersuche und keine Möglichkeit, den Provider global zu wechseln.
nr-llm liefert die fehlende gemeinsame Schicht zwischen den Extensions und den LLM-Providern. Extension-Entwickler ergänzen KI in wenigen Zeilen Dependency Injection; Administratoren verwalten jede Verbindung, jeden Key und jedes Budget in einem einzigen Backend-Modul.
Extensions binden eine einzige Service-Schnittstelle ein und rufen Methoden für Chat, Completion, Übersetzung, Vision, Embeddings, Streaming und Tool Calling auf. Provider-Auswahl, API-Keys, Caching und Fehlerbehandlung übernimmt nr-llm.
Darunter bildet eine Provider-Abstraktionsschicht eine gemeinsame Schnittstelle auf OpenAI, Anthropic, Gemini, Ollama, OpenRouter, Mistral, Groq, Azure OpenAI und jeden OpenAI-kompatiblen Endpunkt ab. Der Provider-Wechsel ist eine Admin-Einstellung, keine Code-Änderung.
Das Backend-Modul Admin-Werkzeuge > LLM enthält verschlüsselte Keys, Nutzungs- und Kostenerfassung, benutzerbezogene Budgets und einen Einrichtungsassistenten — beschränkt auf Administratoren.
nr-llm ist um wenige Bausteine herum aufgebaut. Jeder löst ein Problem, das man sonst in jeder KI-Extension neu implementieren müsste.
Alle Provider implementieren eine gemeinsame Schnittstelle. OpenAI, Anthropic Claude, Google Gemini, Ollama, OpenRouter, Mistral, Groq, Azure OpenAI und jeder OpenAI-kompatible Endpunkt (vLLM, LocalAI, LiteLLM) sind über dieselben Service-Aufrufe erreichbar. Der Provider-Wechsel erfolgt über eine einzige Konfigurationsänderung — ohne Code-Änderungen, ohne Vendor-Lock-in.
Jeder API-Key wird als Vault-Identifier (UUID) über die Envelope-Verschlüsselung von nr-vault gespeichert. nr-llm speichert oder protokolliert Rohschlüssel nie im Klartext. Fehlermeldungen werden bereinigt, sodass geheimnistragende Query-Parameter entfernt werden, bevor etwas protokolliert wird.
Ein Provider hält einen Endpunkt, einen verschlüsselten Key und einen Adapter-Typ. Ein Model verweist auf einen Provider und definiert dessen Model-ID, Fähigkeiten und Preise. Eine Configuration verweist auf ein Model und ergänzt Einstellungen für den Anwendungsfall — System-Prompt, Temperatur, Token-Limits. So lassen sich mehrere Keys pro Provider vorhalten (Prod/Dev/Backup) und Model-Definitionen über Anwendungsfälle hinweg wiederverwenden.
High-Level-Services decken gängige Aufgaben ab: CompletionService für Textgenerierung mit Steuerung von Format und Kreativität, TranslationService mit Unterstützung für Förmlichkeit und Glossar, VisionService für Alt-Texte und Bildanalyse sowie EmbeddingService für die Umwandlung von Text in Vektoren samt Ähnlichkeitsberechnung.
Antworten lassen sich Chunk für Chunk streamen — mit einer einzigen foreach-Schleife über streamChat() für Echtzeit-Oberflächen. Tool-/Function-Calling lässt das Model Funktionen anfragen, die der eigene Code ausführt, über chatWithTools() — die Antwort meldet, welche Tools aufgerufen wurden, sodass sie sich verarbeiten lassen.
48 eingebaute Function-Calling-Tools in 9 umschaltbaren Gruppen geben dem Model fundierten Zugriff auf die TYPO3-Instanz — Inhaltssuche, TCA-/FlexForm-Schema, TypoScript, Quellcode- und Exception-Zugriff, FAL-Dateien, Diagnose und Backend-Konten. 41 davon lesen ausschließlich. Die Gruppe rag liefert belegte Website-Inhalte aus dem installierten Suchindex (EXT:solr, ke_search, indexed_search oder einer Datenbank als Fallback); die Gruppe editing enthält die sieben schreibenden Tools, die deaktiviert ausgeliefert werden und den Lauf vor jeder Änderung für eine menschliche Freigabe anhalten.
Die Ausgaben pro Backend-Benutzer lassen sich über alle Presets hinweg nach Anfragen, Tokens oder geschätzten Kosten begrenzen — täglich oder monatlich. Die Analytics-Ansicht zeigt Kosten- und Nutzungstrends mit Aufschlüsselung nach Provider, Model und Service sowie den Verbrauch pro Benutzer gegenüber den Monatsbudgets.
Antworten werden automatisch über das Caching-Framework von TYPO3 zwischengespeichert — mit dem Backend, das die Instanz konfiguriert (Redis, Valkey, Memcached oder dem Standard). Embedding-Ergebnisse werden deterministisch zwischengespeichert, standardmäßig 24 Stunden, und die Cache-Lebensdauer lässt sich pro Operationstyp konfigurieren.
nr-llm bedient drei Zielgruppen auf derselben gemeinsamen Grundlage.
KI-Funktionen ergänzen, ohne Provider-Anbindungen zu bauen, API-Keys zu verwalten oder Caching und Streaming zu implementieren. Eine Service-Schnittstelle einbinden und aufrufen. Eigene Provider registrieren, wenn nötig.
Jede KI-Verbindung, jeden verschlüsselten Key und jede Provider-Konfiguration aus einem einzigen Backend-Modul verwalten. Von OpenAI zu Anthropic wechseln, ohne Extension-Code anzufassen. Benutzerbezogene Budgets setzen und Kosten und Nutzung in einem Dashboard verfolgen.
Den Integrationsaufwand über Kundenprojekte hinweg senken — mit einer einheitlichen KI-Architektur und ohne Vendor-Lock-in. Verschlüsselte Keys, ausschließlich administrativer Zugriff sowie SBOM und SLSA-Provenance bei jedem Release unterstützen die Compliance. Ollama bietet eine Local-First-Option für datensensible Umgebungen.
Entwickler
KI in wenigen Minuten in die eigene TYPO3-Extension ergänzen — ohne API-Key-Handhabung, ohne HTTP-Client-Code, ohne providerspezifische Logik.
Über Composer installieren. Anschließend in Admin-Werkzeuge > Erweiterungen aktivieren und Admin-Werkzeuge > LLM > Einrichtungsassistent ausführen.
composer require netresearch/nr-llm
LlmServiceManagerInterface per Constructor Promotion einbinden und aufrufen. Provider-Auswahl, API-Keys, Caching und Fehlerbehandlung übernimmt nr-llm.
use Netresearch\NrLlm\Service\LlmServiceManagerInterface;
class MyController
{
public function __construct(
private readonly LlmServiceManagerInterface $llm,
) {}
public function summarizeAction(string $text): string
{
return $this->llm->complete("Summarize: {$text}")->content;
}
}
Chat, Completion, Streaming, Embeddings und Tool-Calling sind Methoden der injizierten LlmServiceManagerInterface. Übersetzung und Vision-Alt-Text sind eigene Feature-Services — injiziere sie genauso. Tool-Calling ist eine Schleife aus Anfrage, Ausführung und Antwort; das vollständige Beispiel steht im Deep-Dive „Streaming & Tool-Calling“.
use Netresearch\NrLlm\Domain\ValueObject\ChatMessage;
$messages = [
ChatMessage::system('You are a helpful TYPO3 assistant.'),
ChatMessage::user('Explain TYPO3 content elements in one paragraph.'),
];
// Chat & completion (LlmServiceManagerInterface)
$answer = $this->llm->chat($messages)->content;
$answer = $this->llm->complete('Summarize the TYPO3 release cycle.')->content;
// Streaming — yields string chunks
foreach ($this->llm->streamChat($messages) as $chunk) {
echo $chunk;
}
// Embeddings — EmbeddingResponse carries the vector
$embedding = $this->llm->embed('semantic search query');
// Translation — dedicated service, returns a TranslationResult
$german = $this->translationService->translate('Hello world', 'de')->getText();
// Vision alt-text — dedicated service
$altText = $this->visionService->generateAltText($imageUrl);
Jeder Provider-Fehler ist eine typisierte Exception. Fange die ab, die dich interessieren, und zeige eine freundliche Meldung; die Fallback-Kette und die Retries sind bereits gelaufen, bevor diese auftauchen.
use Netresearch\NrLlm\Exception\BudgetExceededException;
use Netresearch\NrLlm\Provider\Exception\ProviderRateLimitException;
use Netresearch\NrLlm\Provider\Exception\ProviderConnectionException;
use Netresearch\NrLlm\Provider\Exception\FallbackChainExhaustedException;
use Netresearch\NrLlm\Provider\Exception\ProviderResponseException;
try {
return $this->llm->complete("Summarize: {$text}")->content;
} catch (BudgetExceededException) {
return 'The AI budget for this account is exhausted.';
} catch (ProviderRateLimitException) {
return 'The AI provider is rate-limiting requests. Please retry shortly.';
} catch (FallbackChainExhaustedException | ProviderConnectionException) {
return 'Could not reach any AI provider right now.';
} catch (ProviderResponseException $e) {
$this->logger->warning('LLM provider error', ['status' => $e->httpStatus]);
return 'The AI service returned an error.';
}
ChatOptions liefert abgestimmte Presets — factual, creative, balanced, json, code — plus fluente Overrides. CompletionService::completeJson() gibt ein dekodiertes Array zurück, sodass du Felder direkt ausliest.
use Netresearch\NrLlm\Service\Option\ChatOptions;
// Deterministic output, capped length
$options = ChatOptions::factual()->withMaxTokens(200);
$summary = $this->llm->complete('Summarize the changelog.', $options)->content;
// Decoded JSON straight from the model
$data = $this->completionService->completeJson(
'Return {"title": ..., "tags": [...]} for this article: ' . $article,
);
$title = $data['title'];
Für Admins
Das Backend-Modul Admin-Werkzeuge > LLM gibt Administratoren die volle Kontrolle über KI auf der Website — Provider, Models, Configurations, Budgets und Analytics an einem Ort.
API-Verbindungen registrieren (OpenAI, Anthropic, Gemini, Ollama und weitere), festlegen, welche Models verfügbar sind und welche Fähigkeiten sie haben, und Presets für Anwendungsfälle mit Temperatur, System-Prompts und Token-Limits erstellen.
Der Einrichtungsassistent erkennt den Provider-Typ automatisch anhand der Endpunkt-URL, ermittelt verfügbare Models und erzeugt in fünf geführten Schritten eine einsatzbereite Configuration. API-Key einfügen und loslegen.
Der Task-Assistent und der Konfigurationsassistent erzeugen vollständige Tasks und Configurations — System-Prompt, Parameter und Model-Empfehlung — aus einer Beschreibung in normaler Sprache. Eine Schaltfläche „Models abrufen“ füllt Fähigkeiten und Preise automatisch aus der Provider-API.
Die Ausgaben pro Backend-Benutzer nach Anfragen, Tokens oder Kosten begrenzen — täglich oder monatlich über alle Presets hinweg. Die Analytics-Ansicht zeigt geschätzte Kosten- und Nutzungstrends mit Aufschlüsselung nach Provider, Model und Service sowie den Verbrauch pro Benutzer gegenüber den Budgets.
48 Function-Calling-Tools in 9 umschaltbaren Gruppen lassen Models Inhalte, Schema, Konfiguration, Code, Dateien, Systemdiagnose und Konten inspizieren — wobei die Gruppe rag belegte Evidenz aus dem installierten Suchindex liefert. 41 lesen nur; die sieben schreibenden Tools sind deaktiviert und warten auf eine Freigabe.
Der ausschließlich Administratoren vorbehaltene Playground führt die begrenzte Agent-Schleife gegen jede Configuration aus und streamt den gesamten Dialog live — jede Anfrage, jede Antwort und jede Tool-Ausführung — samt Dry-Run-Modus, der den exakten Prompt zeigt, ohne das Model aufzurufen.
Configurations können Fallback-Configurations auflisten, die bei Verbindungsfehlern, HTTP-5xx oder Rate-Limits erneut versucht werden. Fähigkeitsbezogene Berechtigungen bilden sich auf native TYPO3-Backend-Gruppenoptionen ab. Keys werden über nr-vault verschlüsselt gespeichert, und das Modul ist auf Administratoren beschränkt.
On-Device-KI
Stelle eine Frage zu nr-llm. Die Antwort entsteht vollständig in deinem Browser über die eingebaute KI von Chrome (Gemini Nano) und stützt sich auf die Inhalte dieser Website.
Läuft vollständig im Browser. Es werden keine Daten an einen Server gesendet.
Architektur
nr-llm nutzt eine dreistufige Konfigurationshierarchie, die Zuständigkeiten sauber trennt. Eine Configuration (Einstellungen für den Anwendungsfall wie System-Prompt, Temperatur und maximale Tokens) verweist auf ein Model (Model-ID, Fähigkeiten, Preise), das auf einen Provider verweist (Endpunkt, verschlüsselter API-Key, Adapter-Typ). So lassen sich mehrere API-Keys pro Provider-Typ vorhalten, eigene Endpunkte wie Azure OpenAI oder eine lokale Ollama- oder vLLM-Instanz ansprechen und Model-Definitionen über Configurations hinweg wiederverwenden. Anfragen durchlaufen eine Middleware-Pipeline, die Fallback-Ketten durchsetzt und die Nutzung nach jedem erfolgreichen Aufruf erfasst. Die Extension setzt PHP 8.2+ und TYPO3 v13.4 LTS oder v14.3 LTS voraus, mit einem PSR-18-HTTP-Client.
TYPO3 v13.4 LTS oder v14.3 LTS und PHP 8.2 oder höher. Zusätzlich ist ein PSR-18-kompatibler HTTP-Client (etwa guzzlehttp/guzzle) erforderlich. Die Extension befindet sich derzeit in der Beta-Phase (Version 0.32.0).
OpenAI, Anthropic Claude, Google Gemini, Ollama, OpenRouter, Mistral, Groq, Azure OpenAI und jeden OpenAI-kompatiblen Endpunkt (vLLM, LocalAI, LiteLLM). Die Fähigkeiten unterscheiden sich je nach Provider — so unterstützen etwa OpenAI, Gemini und OpenRouter Chat, Embeddings, Vision, Streaming und Tools, während Groq auf schnellen Chat und Streaming ausgerichtet ist.
Keys werden als Vault-Identifier (UUIDs) über die Envelope-Verschlüsselung von nr-vault gespeichert. nr-llm speichert oder protokolliert Rohschlüssel nie im Klartext, und das Backend-Modul ist auf Administratoren beschränkt. nr-vault ist eine erforderliche Abhängigkeit.
Ja. nr-llm steht unter der Lizenz GPL-2.0-or-later und wird von der Netresearch DTT GmbH entwickelt. Der Quellcode liegt auf GitHub, das Paket auf Packagist.
Ja. Ollama führt Models lokal aus und benötigt keinen API-Key, sodass KI-Funktionen arbeiten können, ohne Daten an externe APIs zu senden — eine Local-First-Option für datensensible Umgebungen. Ollama unterstützt Chat, Embeddings und Streaming.
netresearch/nr-llm über Composer einbinden, LlmServiceManagerInterface (oder einen bestimmten Feature-Service) injizieren und dessen Methoden für Chat, Completion, Übersetzung, Vision, Embeddings, Streaming oder Tool Calling aufrufen. Zudem lassen sich eigene Provider registrieren. Siehe die Entwickler- und Integrationshandbücher.
Benutzerbezogene Budgets setzen, die die Ausgaben nach Anfragen, Tokens oder geschätzten Kosten begrenzen — täglich oder monatlich über alle Presets hinweg. Das Antwort-Caching über das TYPO3-Caching-Framework reduziert wiederholte Aufrufe, und die Analytics-Ansicht erfasst geschätzte Kosten und Nutzung pro Provider, Model, Service und Benutzer.
Der Provider ist frei wählbar, einschließlich einer lokalen Ollama-Instanz, die die Daten auf der eigenen Infrastruktur hält. Keys werden verschlüsselt gespeichert, der Zugriff ist auf Administratoren beschränkt, und Fehlermeldungen werden um Geheimnisse bereinigt. LLM-Antworten sind wie nicht vertrauenswürdige Inhalte zu behandeln, und Benutzereingaben sind vor dem Senden zu bereinigen — wie bei jeder KI-Integration.
Ja. Alle Provider implementieren eine gemeinsame Schnittstelle, sodass der Wechsel von OpenAI zu Anthropic oder zu einem lokalen Model eine Konfigurationsänderung im Backend ist, keine Code-Änderung. Configurations können zudem Fallback-Configurations auflisten, die bei Verbindungsfehlern, HTTP-5xx oder Rate-Limits erneut versucht werden.
Eine Eigenlösung bedeutet, Schlüsselverschlüsselung, Provider-Wechsel, Caching, Streaming, Tool-Calling, Kostenerfassung, Budgets, Guardrails und Fehlerbehandlung in jeder Extension neu zu bauen — und einen Anbieter fest zu verdrahten. nr-llm bündelt all das einmal, sodass Administratoren Provider und Keys in einem Backend-Modul verwalten und jede Extension der Website sie ohne Vendor-Lock-in wiederverwendet.
Du wählst den Provider je Konfiguration. Ein lokal betriebenes Ollama oder ein anderer OpenAI-kompatibler Endpoint hält alle Prompt-Daten auf deiner eigenen Infrastruktur, ohne externe API-Aufrufe; bei gehosteten Providern kannst du EU-Region-Endpoints wie Azure OpenAI wählen. API-Keys sind über nr-vault verschlüsselt gespeichert, der Zugriff ist nur für Administratoren, und Fehlermeldungen werden um Secrets bereinigt.
nr-llm ist kein Endnutzer-KI-Feature — es ist gemeinsame Infrastruktur, wie das TYPO3-Caching-Framework, auf der andere Extensions aufbauen. Es liefert eine Provider-Abstraktion über sieben und mehr Provider, verschlüsselte Schlüsselspeicherung und typisierte Dienste statt eines einzelnen gebündelten Anwendungsfalls.
Verschlüsselte API-Keys über nr-vault, ein Backend-Modul nur für Administratoren mit kapabilitätsbezogenen Berechtigungen über Backend-Gruppen, eine Guardrail-Pipeline, die Secrets über Eingabe, Ausgabe und Streaming maskiert, optionale Human-in-the-Loop-Freigabe sowie Budgets pro Benutzer mit Nutzungsanalyse. 41 der 48 Built-in-Tools sind nur lesend; die sechs schreibenden werden deaktiviert ausgeliefert und halten den Lauf vor jeder Änderung für eine menschliche Freigabe an. Die Seite „Governance & Sicherheit“ beschreibt jede Kontrolle im Detail.
Wir gehen mit Ihnen durch, welche Fähigkeiten Sie brauchen, welches Betriebsmodell zu Ihren Vorgaben passt und wie ein erster kontrollierter Schritt aussieht.