LOKI AI Bundle für Contao - Smarte Content-Generierung mit ChatGPT 🤖

Mit dem LOKI AI Bundle bringst du die Power von KI direkt in dein Contao CMS. ✨ Erstelle automatisierte Inhalte, generiere individuelle Prompts aus DCA-Feldern und nutze ChatGPT flexibel im Backend, per Konsole oder manuell. So sparst du Zeit, erhöhst deine Content-Qualität und machst Contao noch smarter.

Installation

Installation über den Contao Manager

Suche im Contao Manager einfach nach ChatGPT, AI oder OpenAI und du findest unsere Erweiterung.

Installation mittels Composer

composer require plenta/loki-ai-bundle

Systemvoraussetzungen

  • PHP: ^8.3
  • Contao: ^4.13 || ^5.3 und höher

Konfiguration

Melde dich bei der OpenAI-Plattform an und hinterlege deine Zahlungsdaten.

Danach kannst du deinen geheimen API-Schlüssel hier erstellen und verwalten.

Füge den folgenden Parameter - inklusive deines API-Schlüssels - in deine .env oder .env.local Datei ein.

OPENAI_API_KEY=##YOUR-API-KEY##

Prompts anlegen

Deine Prompts kannst du unter System > Loki AI Prompts anlegen, bearbeiten, löschen und manuell ausführen.

Titel: Der Titel dient zur Identifikation des Prompts und wird auf dem Button zum Starten des Prompts angezeigt.

Alias: Der Alias ist deine eindeutige Referenz. Mit ihm kannst du den Prompt direkt über die Kommandozeile aufrufen.

Tabelle: Hier wählst du die Tabelle aus. Die darin enthaltenen Felder kannst du anschließend für den Prompt auswählen.

Eingebundene Felder: Bestimme hier, welche Felder in den Prompt eingebunden werden. Die Werte dieser Felder kann die KI später bei der Generierung nutzen.

Seitenbaum: Dieses Feld ist nur bei tl_page und tl_content sichtbar. Wenn der Prompt auf einen bestimmten Seitenbaum beschränkt werden soll, kannst du ihn hier auswählen.

Prompt: Gib den Prompt für die AI ein. Felder kannst du mit ##include_fields## einfügen, den aktuellen Feldwert mit ##current_value## und Optionen von Select-Feldern oder Checkboxen mit ##field_options##.

Modell: Hier wählst du dein entsprechendes Modell aus, das für die Generierung verwendet werden soll.

Maximale Token-Anzahl: Lege die maximale Token-Anzahl fest. Mehr Tokens = vollständigere Antworten, aber auch höhere Kosten.

Temperatur: Die Temperatur kann Werte zwischen 0 und 1 annehmen. Niedrige Werte (z. B. 0,2) führen zu präziseren und vorhersagbaren Antworten. Höhere Werte (z. B. 0,8) erzeugen kreativere, aber weniger vorhersehbare Ergebnisse.

Prompt automatisch ausführen: Der Prompt wird automatisch beim Konsolen-Kommando ausgeführt.

Prompt schützen: Aktiviere diese Option, um den Prompt nur bestimmten Benutzergruppen anzuzeigen.

Prompt veröffentlichen: Der Prompt wird veröffentlicht und ist anschließend sowohl über den Button am Feld als auch über die Kommandozeile nutzbar.

Prompts ausführen

Kommandozeile

Du kannst die Prompts direkt auf der Kommandozeile ausführen. Es werden nur die Prompts ausgeführt, bei denen die Option "Prompt automatisch ausführen" aktiviert ist. Standardmäßig werden nur die Datensätze bearbeitet, bei denen das Zielfeld leer ist.

php vendor/bin/contao-console loki:prompts:run

Folgende Parameter stehen dir dabei zur Verfügung:

--limit=[Anzahl] | -l [Anzahl]

Limitiert die Anzahl der Datensätze, die bearbeitet werden. Standard-Wert ist 10.

--prompt=[Alias] | -p [Alias]

Du kannst den Alias eines bestimmten Prompts mit übergeben, um nur diesen Prompt auszuführen. Die Ausführung ist dabei unabhängig von der Option "Prompt automatisch ausführen".

--all | -a

Es werden alle Datensätze bearbeitet, auch die, bei denen das Zielfeld nicht leer ist.

Beispiel:

php vendor/bin/contao-console loki:prompts:run -l 10 -p seo-title -a

Es werden 10 Datensätze (pro Zielfeld) des Prompts mit dem Alias "seo-title" bearbeitet, unabhängig davon, ob das Zielfeld leer ist oder nicht.

Backend

Beispielsweise kannst du auch mehrere Prompts für ein Feld platzieren.

Du kannst jeden Prompt auch manuell starten. Dabei werden alle Datensätze dieses Prompts bearbeitet, auch die, bei denen das Zielfeld nicht leer ist.

Anwendungsbeispiele

Hinweis: Es ist oft notwendig, den Prompt noch zu verfeinern, z.B. mit der Anweisung, nur den gewünschten Text ohne Anführungszeichen zurückzugeben. Der Übersichtlichkeit halber haben wir hier nur den Prompt an sich, ohne weitere Verfeinerung angegeben. Der Prompt wird genauso, wie du ihn formulierst, an ChatGPT geschickt (natürlich mit ersetzten Insert Tags und Simple Tokens). Es ist sinnvoll, den Prompt z.B. im Backend an wenigen Datensätzen zu testen, bevor du die Stapelverarbeitung über den Command aktivierst.

Suchmaschinenoptimierter Seitentitel anhand des Seiteninhalts

Erstelle mir einen für Suchmaschinen optimierten Seitentitel mit maximal 160 Zeichen.
Verwende als Grundlage folgende Seite: {{ link_url::##include_fields##::absolute }}

Suchmaschinenoptimierte Seitenbeschreibung

Erstelle eine suchmaschinenoptimierte Meta-Description (max. 160 Zeichen) basierend auf Jobtitel und Stellenbeschreibung ##include_fields##. Gehalt nicht erwähnen. Text ohne . und "

Übersetzungen

Übersetzungen innerhalb eines Objekts

Wenn du ein Backend-Modul anlegst, das z.B. mehrere Spalten für die gleichen Texte in verschiedenen Sprachen hat (z.B. text_en und text_de), kannst du diese Texte leicht mit einem Prompt pro Sprache übersetzen lassen. Als Zielfeld wählst du dabei den Text der Übersetzung aus (text_de), als eingebundenes Feld den Originaltext (text_en). Dann kannst du folgenden Prompt verwenden:

"Übersetze den folgenden Text ins Deutsche: ##include_fields##"

Übersetzung eines gesamten Seitenbaums

Du kannst auch einen gesamten Seitenbaum automatisiert übersetzen, beispielsweise um eine neue Sprache hinzuzufügen. Dazu kopierst du deinen Original-Seitenbaum, legst den Prompt mit entsprechenden Zielfeldern, die du übersetzen willst, für die Tabelle tl_page an und wählst den neuen Seitenbaum im Feld "Seitenbaum" aus. Der Prompt wird dann nur für die ausgewählte Seite und deren Kindseiten ausgeführt. Mit dem folgenden Prompt kannst du dann automatisiert alle Seitentitel übersetzen:

"Übersetze den folgenden Text ins Deutsche: ##current_value##"

Wir haben dein Interesse geweckt?
Lass uns zusammenarbeiten!

Worauf wartest du noch?

Was ist die Summe aus 4 und 4?

Mit dem Absenden deiner Anfrage erklärst du dich mit der Verarbeitung deiner angegebenen Daten zum Zweck der Bearbeitung deiner Anfrage einverstanden.
Mehr erfährst du in unserer Datenschutzerklärung.