KI im Editmode benutzen¶
Ein Prompt wird definiert (oder aus dem Lieferumfang verwendet), eine Processing-Instruction (PI) im Edittemplate löst ihn aus, und eine JavaScript-Callbackfunktion schreibt das Ergebnis in Metafelder.
Beispiel A – Einfach: „Zusammenfassung“ ohne Parameter¶
Hier der beispielhafte Prompt Summary. Er benötigt keine {P[n]}-Parameter, sondern liest die Seiten-Vorschau über das direkt verwendbare <!--XX-PREVIEW:page--> ein
Ziel: Zusammenfassung erzeugen und in ein Eingabefeld schreiben.
Der Prompt:
label: Summary
description: Simple summary of the previewed document
systemprompt: |
You are an assistant that summarizes a given document.
Return the result in JSON as {"summary": "..."}.
template: |
Please provide a short summary of the following content:
```
<!--XX-PREVIEW:page-->
```
transformer: DEFAULTAI
schema:
type: object
properties:
summary:
type: string
required:
- summary
Edittemplate (Ausschnitt):
<label for="page_summary">Zusammenfassung</label>
<textarea name="IMPERIA:page_summary" id="page_summary" rows="4"></textarea>
<?imperia aiprompt
id: summarize_btn
prompt: summary
linktext: Zusammenfassung erzeugen
_done_copy_summary: page_summary
js: I.prompt.utils.copyResult
?>
Was passiert?
- Die PI ruft den Prompt
Summaryauf. - Der Systemprompt mit dem template für die zu übergebenden Daten (Usernachricht) sowie des Schemas werden auf Klick an die KI übermittelt.
- Der Callback
copyResulterwartet im JSON einen Schlüsselsummaryund schreibt dessen Wert in das Metafeldpage_summary.
Beispiel B – Parametrisiert: „Einfaches Englisch“ mit {P[n]}¶
Jetzt eine parametrisierte Variante mit Platzhalter: simplify_en (eingebauter Default-Prompt).
Der Prompt enthält {P[0]} – dort soll der spezifische Inhalt eines Feldes aus dem Dokument landen.
Ziel: Freitext vereinfachen, Ergebnis nach vorheriger Prüfung direkt ins gleiche Feld zurückschreiben.
Der Prompt:
---
description: Simplify the provided text
label: Simplify
schema:
properties:
simplified_en:
type: string
required:
- simplified_en
strict: true
type: object
systemprompt: 'Rewrite the provided text in plain English suitable for CEFR A2 readers. Use short sentences and everyday vocabulary, avoiding complex grammar. Keep any existing HTML markup unchanged. Return only the JSON {"simplified_en": "the simplified text"}.'
template: |-
Here is the provided text:
```{P[0]}```
transformer: DEFAULTAI
Edittemplate (Ausschnitt):
<label for="complex">Introduction</label>
<textarea name="IMPERIA:complex" id="complex" rows="6"><!--XX-TEXT:complex--></textarea>
<?imperia aiprompt
id: simplify_btn
prompt: simplify_en
linktext: Simplify Introduction Text
_value_0: complex
_done_review_simplified_en: complex
js: I.prompt.utils.reviewResult
?>
Erläuterungen zur PI:
_value_0: complex→ PositionsslotP[0]wird mit dem Wert des Metafeldscomplexbefüllt.- Der Prompt verwendet
{P[0]}imtemplate(Usernachricht). _done_review_simplified_en: complex→ der Callback öffnet zuerst einen Review-Dialog (zum Vergleich Vorher-Nachher) und schreibt nach erfolgter Bestätigung in das gleiche Feldcomplex.
Beispiel C – Vorschlagslisten: „Tags/Teaser/Titel“¶
Das Sample Vorschläge / Suggestions liefert im Prompt definierte Arrays (hier: tags_de, teaser_50_de, teaser_100_de, titles_de). Der passende Callback ist I.prompt.utils.suggestResult. Er rendert Vorschlagslinks in ein *_suggestions-Element und schreibt den per Klick ausgewählten Wert in das zugehörige Feld.
Der Prompt:
---
description: Titel-, Tag- und Teaservorschläge
label: Vorschläge de
schema:
properties:
tags_de:
items:
type: string
type: array
teaser_100_de:
items:
type: string
type: array
teaser_50_de:
items:
type: string
type: array
titles_de:
items:
type: string
type: array
required:
- tags_de
- teaser_50_de
- teaser_100_de
- titles_de
strict: true
type: object
systemprompt: 'Sie sind ein Assistent, der Tags basierend auf der bereitgestellten Nachrichtenmeldung vorschlägt. Sie erstellen auch Vorschläge für Zusammenfassungen mit etwa 50 und 100 Token sowie Titelvorschläge. Geben Sie die Ergebnisse im JSON-Format zurück {"tags_": ["tag1", "tag2"], "teaser_50_":["KurzTeaser 1....","KurzTeaser 2...."], "teaser_100_": ["LangTeaser 1....","LangTeaser 2...."], "titles_":["Titelalternative 1","Titelalternative 2"]}.\n\nErstellen Sie wenn möglich je 3 Alternativen. Wenn Sie nicht genügend Informationen haben, generieren Sie leere Felder.\n\nAntworten Sie nur mit dem JSON!!!'
template: |-
Hier ist der bereitgestellte Text:
```
<!--XX-PREVIEW(de):page-->
```
transformer: DEFAULTAI
TODO: check multilang implementation
Edittemplate (Ausschnitt):
<label for="IMPERIA:tags">Tags</label>
<textarea name="IMPERIA:tags" id="tags" rows="2"></textarea>
<div id="tags_suggestions"></div>
<label for="IMPERIA:teaser">Teaser (kurz)</label>
<input name="IMPERIA:teaser" id="teaser" type="text">
<div id="teaser_suggestions"></div>
<?imperia aiprompt
id: suggest_de
prompt: Vorschläge
linktext: Vorschläge erzeugen lassen
_done_suggest_tags_de: tags
_done_suggest_teaser_50_de: teaser
js: I.prompt.utils.suggestResult
?>
Verhalten:
suggestResulterwartet Schlüssel mit Präfixsuggest_….- Für jedes Array-Feld baut der Callback Links in den entsprechenden
*_suggestions-Container. - Ein Klick füllt das konfigurierte Ziel-Formularfeld.