Die AIUtils stehen nur zur Verfügung, wenn man das Modul "KI-Assistent" lizenziert hat.
Version 2026.6
Code
IAIPrompt getPrompt(String promptPlainKey)
IAIPrompt getPrompt(String promptPlainKey, Map<String, Object> promptVars)
IAIPrompt getPrompt(String promptPlainKey, Map<String, Object> promptVars, String entryPk)
Beschreibung
Lädt ein in der Eingabe-Verwaltung definiertes Prompt und verarbeitet dessen Template-Platzhalter mit den übergebenen Werten aus promptVars.
Die Methode liefert im Erfolgsfall ein IAIPrompt zurück, das z. B. für executeCustomPrompt verwendet werden kann.
Einige Prompt-Definitionen benötigen zusätzlich einen Datensatzkontext. In diesem Fall muss entryPk übergeben werden, damit die Prompt-Vorlage auf einen konkreten Datensatz zugreifen kann.
Kann das Prompt nicht aufgelöst oder nicht verarbeitet werden, wird eine ScriptingException ausgelöst.
Parameter
-
promptPlainKey: Der Plain Key des zu ladenden Prompts aus der Eingabe-Verwaltung.
-
promptVars: Optionale Map mit den Werten für die Template-Platzhalter im Prompt.
-
entryPk: Optionaler Primärschlüssel eines Datensatzes, auf den innerhalb der Prompt-Definition zugegriffen werden soll.
Rückgabe und Fehlerverhalten
Im Erfolgsfall gibt die Methode ein IAIPrompt zurück.
Im Fehlerfall wird kein IAIPrompt zurückgegeben. Stattdessen wird eine ScriptingException ausgelöst, z. B. wenn:
-
das Prompt nicht gefunden wird,
-
Template-Platzhalter nicht verarbeitet werden können,
-
oder ein benötigter Datensatzkontext fehlt.
Beispiele
1. Prompt ohne Variablen laden
IAIPrompt prompt = AIUtils.getPrompt("GenericSystemPrompt")
2. Prompt mit Variablen laden
Map<String, Object> promptVars = [
Name : "Rainer Zufall",
Thema: "Produktvorstellung"
]
IAIPrompt prompt = AIUtils.getPrompt("MailPrompt", promptVars)
3. Prompt mit Datensatzbezug laden
Map<String, Object> promptVars = [
FormOfAddress : "formal",
AppointmentTopic: "Brand new product",
Duration : "1 hour",
Location : "on site"
]
List<String> dates = []
Date date = DateUtils.parseDate("01.04.1987 10:00", "dd.MM.yyyy HH:mm")
dates.add(DateUtils.convertDateTimePattern(date, "yyyy-MM-dd'T'HH:mm:ssX"))
date = DateUtils.setDateField(date, DateUtils.HOUR, 12)
dates.add(DateUtils.convertDateTimePattern(date, "yyyy-MM-dd'T'HH:mm:ssX"))
promptVars.put("Date", dates)
IAIPrompt prompt = AIUtils.getPrompt(
"AppointmentScheduling",
promptVars,
"fvvvvvvkarpvi1ium3j2qcAc"
)
4. Prompt für executeCustomPrompt verwenden
IAIPrompt systemPrompt = AIUtils.getPrompt("GenericSystemPrompt")
IAIPrompt userPrompt = AIUtils.createPrompt(
"Formuliere eine freundliche Antwort auf folgende Anfrage: ${custom.text}",
[text: "Ich habe mein Passwort vergessen."]
)
IAIResult result = AIUtils.executeCustomPrompt("MistralConfig", systemPrompt, userPrompt)
if (AIUtils.isAIResponseSuccessful(result)) {
String message = AIUtils.getAIResponseMessage(result)
} else {
String errorMessage = AIUtils.getAIResponseError(result)
}
Version 2025.5
Code
IAIResult getPrompt(String promptPlainKey, Map<String, Object> promptVars, String entryPk)
Beschreibung
Gibt den Prompt mit dem angegebenen Namen zurück, wobei die Platzhalter mit den angegebenen Werten ausgefüllt werden. Die Prompt-Vorlage erfordert möglicherweise einen Datensatz, für den der PK angegeben werden muss.
Parameter
-
promptPlainKey- Der PlainKey einer Eingabe-Verwaltung, welche für den Aufruf der KI verwendet werden soll..
-
promptVars- Die Map welche die Werte für die Platzhalter in der Prompt enthält.
-
entityPk - [optional] Der PK eines Datensatzes, welcher in die Prompt übergeben wird.
Returns
Die IAIPrompt, welche für den Aufruf von executeCustomPrompt verwendet werden kann.
Beispiele
Map promptVars = new HashMap();
promptVars.put("Ansprechform", "Siezen");
promptVars.put("ThemaDesTermins", "Brandneues Produkt");
promptVars.put("AgendaDesTermins", "Funktionen, KI, Günstiger Preis");
List<String> dates = new ArrayList<String>();
Date date = DateUtils.parseDate("01.04.1987 10:00", "dd.MM.yyyy HH:mm");
dates.add(DateUtils.convertDateTimePattern(date, "yyyy-MM-dd'T'HH:mm:ssX"));
date = DateUtils.setDateField(date, DateUtils.HOUR, 12);
dates.add(DateUtils.convertDateTimePattern(date, "yyyy-MM-dd'T'HH:mm:ssX"));
promptVars.put("Datum", dates);
promptVars.put("Dauer", "1 Stunde");
promptVars.put("Ort", "vor Ort");
IAIPrompt userPrompt = AIUtils.getPrompt("Terminvereinbarung", promptVars, 'fvvvvvvkarpvi1ium3j2qcAc');