dAi – Handbuch
Von der Installation bis zum laufenden Chatbot – in acht Schritten
Dieses Handbuch beschreibt die kostenlose TYPO3-Erweiterung dAi. Wenn Sie alles der Reihe nach durchgehen, steht am Ende ein Chatbot, der Fragen zu Ihren TYPO3-Seiten beantwortet.
Planen Sie für den ersten Durchlauf etwa eine Stunde ein – der größte Teil davon entfällt auf die Datenbank.
1. Voraussetzungen prüfen
- TYPO3 12.4, 13.4 oder 14, installiert über Composer.
- PHP 8.2 oder neuer, mit der Erweiterung
pdo_pgsql. - PostgreSQL mit
pgvector. Eine eigene Datenbank je Projekt hat sich bewährt. - Einen API-Schlüssel bei Mistral, OpenAI, Google Gemini oder Anthropic.
Ob pdo_pgsql vorhanden ist, verrät ein Blick auf die Kommandozeile:
2. Erweiterung installieren
dAi wird über Composer installiert. Der Weg über den Extension-Manager funktioniert nicht, weil die Erweiterung vier Laufzeit-Abhängigkeiten mitbringt.
3. Vektordatenbank einrichten
Die semantische Suche braucht einen Vektorindex. Legen Sie dafür eine PostgreSQL-Datenbank an und schalten Sie darin einmalig die Erweiterung vector frei – das erfordert Superuser-Rechte:
Danach tragen Sie die Verbindung in TYPO3 ein und weisen die fünf dAi-Tabellen dieser Verbindung zu. Alle übrigen Tabellen bleiben, wo sie sind:
<?php
$GLOBALS['TYPO3_CONF_VARS']['DB']['Connections']['pgvector'] = [
'driver' => 'pdo_pgsql',
'host' => '127.0.0.1',
'port' => 5432,
'dbname' => 'typo3_dai',
'user' => 'typo3_dai',
'password' => 'ihr-passwort',
'charset' => 'utf8',
];
foreach ([
'tx_dai_domain_model_project',
'tx_dai_llm_config',
'tx_dai_data_source',
'tx_dai_ingest_job',
'tx_dai_domain_model_document',
] as $table) {
$GLOBALS['TYPO3_CONF_VARS']['DB']['TableMapping'][$table] = 'pgvector';
}
Wichtig ist die Reihenfolge: erst die Zuordnung eintragen, dann den Datenbankvergleich ausführen. Andernfalls legt TYPO3 die Tabellen auf der Standardverbindung an, und sie liegen anschließend doppelt vor.
Anschließend die Erweiterung einrichten:
Solange an der Einrichtung noch etwas fehlt, zeigt das Backend-Modul dAi statt der Sammlungen eine Prüfseite an: Sie sehen dort in sechs Stufen, woran es hakt – von der fehlenden PHP-Erweiterung bis zur nicht freigeschalteten vector-Erweiterung – und was jeweils zu tun ist.
4. Sprachmodell hinterlegen
Öffnen Sie im Backend das Modul dAi und dort LLM-Konfigurationen. Legen Sie je Anbieter eine Konfiguration an: Provider-Typ wählen, API-Schlüssel eintragen, Modell bestätigen. Die Adresse der Schnittstelle füllt sich beim Wechsel des Provider-Typs von selbst.
Sie brauchen zwei Fähigkeiten: ein Chat-Modell, das die Antworten schreibt, und ein Embedding-Modell, das die Inhalte für die Suche in Vektoren übersetzt. Mistral, OpenAI und Gemini können beides. Anthropic (Claude) bietet keine Embedding-Schnittstelle – wer mit Claude antworten möchte, legt zusätzlich eine der drei anderen Konfigurationen für die Einbettung an.
5. Sammlung anlegen
Eine Sammlung ist eine abgeschlossene Wissensbasis: eigene Inhalte, eigene Sprachmodelle, eigene Sprachen, eigenes Verbrauchskonto. Jede Sammlung bekommt ein eigenes Schema in der PostgreSQL-Datenbank.
In der Regel genügt eine Sammlung je Website. Mehrere lohnen sich, wenn Sie unterschiedliche Zielgruppen bedienen – etwa eine öffentliche Sammlung für Besucher und eine interne für Mitarbeitende.
6. TYPO3-Seiten einlesen
Jede Sammlung bezieht ihre Inhalte aus Datenquellen. In der freien Version gibt es genau einen Typ – und der deckt den häufigsten Fall ab: TYPO3-Seiten.
Konfiguriert wird eine Quelle mit drei Angaben:
- Wurzelseiten. Die IDs der Seiten, ab denen gelesen wird – kommagetrennt, wenn es mehrere sind.
- Tiefe. Wie viele Ebenen darunter mitgenommen werden.
- Sprache. Die Sprach-IDs, die eingelesen werden sollen. Mehrere Sprachen tragen Sie als Liste ein (etwa
0,1); dAi macht daraus je Sprache einen eigenen Durchlauf.
Nach Synchronisieren erscheinen die gefundenen Seiten als Dokumente in der Liste.
7. Dokumente verarbeiten
Eingelesen heißt noch nicht durchsuchbar. Markieren Sie die gewünschten Dokumente und klicken Sie Verarbeiten: dAi zerlegt die Texte in sinnvolle Abschnitte und lässt sie vom Embedding-Modell in Vektoren übersetzen. Der Status springt dabei von crawled auf indexed.
Über das Häkchen in der Spalte Aktiv steuern Sie dokumentgenau, was der Chatbot kennt. Ein deaktiviertes Dokument bleibt erhalten, wird aber bei keiner Antwort mehr herangezogen – praktisch für veraltete Seiten, die Sie noch nicht löschen möchten.
8. Chatbot auf einer Seite einbauen
Legen Sie auf der gewünschten Seite ein Inhaltselement dAi: Chatbot an und wählen Sie im Reiter die Sammlung und die Sprache. Zwei weitere Felder sind optional:
- Prompt. Zusätzliche Anweisungen für dieses eine Element – etwa eine Anrede oder ein thematischer Schwerpunkt.
- Schwelle für Themenferne. Ab welchem Abstand eine Frage als „gehört nicht hierher" gilt.
0überlässt dAi die Entscheidung.
Speichern, Seite aufrufen, fragen. Mehr ist nicht nötig.
Im Hintergrund arbeiten lassen
Das Verarbeiten größerer Bestände läuft über eine Warteschlange, damit kein Browser-Aufruf darauf wartet. Abgearbeitet wird sie entweder per Cron …
… oder über den Scheduler: Dort finden Sie die Aufgabe dAi: Ingest-Warteschlange verarbeiten. Eines von beiden genügt – nicht beides gleichzeitig einrichten.
Ändern sich Inhalte, wiederholen Sie einfach Synchronisieren und Verarbeiten. dAi erkennt, was gleich geblieben ist, und arbeitet nur die Änderungen ab.
Verbrauch und Kosten
Jeder Aufruf beim Sprachmodell wird protokolliert. Unter Verbrauch sehen Sie je Sammlung, wie viele Token an welchem Tag und zu welchem Zweck verbraucht wurden. Hinterlegen Sie unter Preise konfigurieren die Listenpreise Ihrer Modelle, rechnet dAi den Verbrauch in Euro um – exportierbar als Excel- oder CSV-Datei.
Mehrsprachige Websites
Eine Sammlung kann mehrere Sprachen führen. Die Wissensbasis wird je Sprache getrennt gehalten, ebenso Prompts und Hilfetexte. Auf der Website setzen Sie je Sprachversion ein Chatbot-Element mit der passenden Sprache – gefragt und geantwortet wird dann jeweils dort, wo Ihre Besucher sind.
Die Bedienoberfläche selbst gibt es auf Englisch, Deutsch, Niederländisch, Französisch, Italienisch, Polnisch und Ukrainisch; sie folgt der Sprache des Backend-Benutzers.
Wenn etwas klemmt
- Das Modul zeigt statt der Sammlungen eine Prüfseite
Dann fehlt noch ein Baustein der Einrichtung. Die Prüfseite geht sechs Stufen durch – PHP-Erweiterung, Verbindung, Datenbank,
vector-Erweiterung, Tabellenzuordnung, Schema – und benennt genau die Stelle, an der es hängt. Vieles davon kann dAi auf Klick selbst reparieren.- Es wird nichts indexiert, obwohl Dokumente da sind
Prüfen Sie, ob die Sammlung wirklich eine eigene LLM-Konfiguration verknüpft hat. Steht dort „Standard", greift der globale Rückfall – und wenn dafür kein Schlüssel hinterlegt ist, läuft die Verarbeitung ohne Fehlermeldung ins Leere.
- Der Chatbot antwortet, nennt aber keine Quellen
Quellen erscheinen nur für Seiten, die tatsächlich im Index liegen. Antwortet der Bot aus einem CAG-Bündel, das noch von einem älteren Stand stammt, bauen Sie es in der Sammlungsansicht neu auf.
- Eine geänderte Seite kennt der Chatbot noch nicht
Synchronisieren stößt das Neueinlesen an, Verarbeiten erzeugt die Vektoren. Läuft die Warteschlange per Cron, geschieht der zweite Schritt von selbst – sonst genügt ein Klick auf Verarbeiten.
Lieber gemeinsam einrichten?
Wir haben dAi gebaut und betreiben es selbst. Wenn Sie die Einrichtung abgeben oder das Ergebnis auf Ihre Inhalte abstimmen möchten, sprechen Sie uns an – ohne Verkaufsdruck, mit ehrlicher Einschätzung, ob sich der Aufwand für Ihr Vorhaben lohnt.