addExpectedListReturn
Versionshinweise | 26.4 | ||
|---|---|---|---|
Code
StructuredOutputConfig addExpectedListReturn(StructuredOutputConfig config, String path, Class<?> elementType, boolean optional, Object defaultValue, String description);
StructuredOutputConfig addExpectedListReturn(StructuredOutputConfig config, String path, Class<?> elementType, boolean optional, String description);
StructuredOutputConfig addExpectedListReturn(StructuredOutputConfig config, String path, Class<?> elementType, boolean optional);
Beschreibung
Fügt der Konfiguration ein Feld hinzu, das eine Liste von Elementen (Array) erwartet. Über die description können der KI präzise Extraktionsregeln gegeben werden (z.B. Mengenbegrenzungen oder inhaltliche Kriterien).
Hinweis
Wenn Sie eine Liste von Objekten (z. B. eine Liste von Adressen) benötigen, verwenden Sie Map.class oder Object.class als elementType und definieren Sie die Unterfelder über die Punkt-Notation in addExpectedReturn.
Parameter
config: Das zu erweiternde
StructuredOutputConfig-Objekt.path: Der Name des Feldes (Punkt-Notation für Verschachtelung möglich).
elementType: Der Java-Typ der Listenelemente (z. B.
String.class,Integer.class).optional: Gibt an, ob die Liste im Ergebnis fehlen darf.
defaultValue: [optional] Eine Fallback-Liste, falls die KI kein Ergebnis liefert.
description: [optional] Instruktion für die KI (z. B. zur Extraktionslogik oder Mengenbegrenzung).
Rückgabe
Die modifizierte StructuredOutputConfig.
Beispiele
Liste mit Größenbeschränkung definieren
// 1. Konfiguration erstellen
def config = AIUtils.createStructuredConfig();
// 2. Liste von Strings mit expliziter Vorgabe in der Description
AIUtils.addExpectedListReturn(
config,
"tags",
String.class,
false,
[],
"Extrahiere maximal 3 prägnante Schlagworte, die den Inhalt zusammenfassen."
);
// 3. Liste von numerischen Werten
AIUtils.addExpectedListReturn(config, "gefundeneMesswerte", Double.class, true, "Alle im Text erwähnten Temperaturwerte");
// 4. Ausführung
IAIResult result = AIUtils.executePrompt("ContentAnalyzer", config, [:], [:], null);
if (AIUtils.isAIResponseSuccessful(result)) {
Map data = AIUtils.getAIStructuredResponse(result);
List allTags = data.get("tags"); // Enthält max. 3 Strings
}