Zum Inhalt

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 so in ein Template 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.

Beachten Sie bitte die folgenden Zusammenhänge innerhalb der Syntax:

<?imperia aiprompt
    id: echo_button # die Id des Links, den die PI erzeugt 
    prompt: echo # der Name bzw. die gleichlautende Id des Prompts
    _value_0: testinput # das Feld, welches P[0] im Prompt template belegt und das zugehörige Input Feld innerhalb des Templates
    _done_copy_echo: testoutput # _done_copy_ + der im Prompt definierte Rückgabeschlüssel und das zugehörige Output Feld innerhalb des Templates
    js: I.prompt.utils.copyResult # die callback Methode: hier copyResult
?>