Einführung in KI-Prompts#
KI-Prompts erweitern imperia um die Möglichkeit, Large Language Models (LLMs) in redaktionelle Abläufe einzubinden. Damit lassen sich Aufgaben automatisieren, die zuvor viel Handarbeit erforderten – zum Beispiel das Vorschlagen von Tags, das Schreiben kurzer Teasertexte, die Vereinfachung längerer Passagen oder die Generierung von Bildbeschreibungen.
Ein KI-Prompt funktioniert dabei wie ein Vertrag zwischen imperia und dem LLM. Im Systemprompt wird die Aufgabe beschrieben, etwa „Formuliere den Text in einfachem Deutsch“. Das Userprompt liefert die konkreten Inhalte des aktuellen Dokuments, zum Beispiel den Seiten-Preview oder eine bestimmte Eingabe. Schließlich definiert ein Schema, in welcher Form die Antwort zurückgegeben werden muss – in der Regel ein JSON-Objekt mit klar benannten Feldern.
Architektur im Überblick#
Die eigentliche Promptdefinition liegt als YAML-Datei im Verzeichnis site/prompts/. Diese Dateien enthalten alle Angaben,die das LLM benötigt. Das Ergebnis kehrt als JSON zurück und wird über einen Transformer verarbeitet. Der Standardtransformer DEFAULTAI schreibt die Antwort ins Metainfo, sodass die Ergebnisse unmittelbar im Dokument verfügbar sind.
Ein Prompt kann sowohl manuell im Editmode über das Template-PI aiprompt gestartet werden, als auch automatisiert in einem Transformer im imperia Workflow.
Ein erstes Beispiel#
Um das Prinzip zu verdeutlichen, genügt ein sehr einfacher Prompt, der einen Text unverändert zurückliefert.
Die Datei site/prompts/echo.yaml enthält folgende Definition:
id: echo
label: Echo
description: Gibt den Text unverändert zurück
transformer: DEFAULTAI
systemprompt: |
Wiederhole den Text in JSON:
{"echo":"..."}
template: |
Text:
{P[0]}
schema:
type: object
properties:
echo:
type: string
required: [echo]
strict: true
Damit wird ein Feld echo erwartet, in dem das LLM die Eingabe wiedergibt.
Im Editmode kann dieser Prompt beispielsweise in ein Formular eingebunden werden:
<?imperia aiprompt
id: echo_button
prompt: echo
linktext: Test ausführen
_value_0: testinput
_done_copy_echo: testoutput
js: I.prompt.utils.copyResult
?>
<label for="IMPERIA:testinput">Eingabe</label>
<input name="IMPERIA:testinput" id="testinput">
<label for="IMPERIA:testoutput">Ausgabe</label>
<input name="IMPERIA:testoutput" id="testoutput">
Beim Klick auf den Link wird der Wert aus dem Feld testinput an das LLM geschickt. Die Antwort – ein JSON mit dem Feld echo – wird automatisch in das Feld testoutput übertragen.