Frage
Warum kann mein dynamisches Karussell für meinen Fortschrittlichen KI Agenten nicht geladen werden?
Antwort
Dieser Fehler kann auftreten, selbst wenn alles richtig eingerichtet ist. Wenn das dynamische Karussell zeitweise nicht geladen wird, gibt die API-Integration möglicherweise kein richtig formatiertes Array zurück, das das Karussell lesen kann.
Dieser Block erwartet einen Parameter vom Typ „array“. Manche API-Endpunkte geben jedoch möglicherweise nicht immer ein Array zurück, besonders wenn nur ein Produkt gefunden wird. Statt das einzelne Element in ein Array zu packen, gibt die Antwort möglicherweise nur das Element selbst zurück. Ohne ein Array in der Nutzlast kann das Karussell nicht geladen werden.
Die Symptome dieses Verhaltens:
In den Konversationsprotokollen wird eine technische Fehlerantwort beobachtet, obwohl es nicht viele Hinweise auf den Fehler gibt.
Wenn Sie die Registerkarte Netzwerk in den Entwicklertools des Browsers überprüfen, wird das Karussellfeld leer zurückgegeben:
Um dieses Problem zu beheben, aktualisieren Sie die JSONata-Query in der API-Integration, um Antworten ohne Array zu verarbeiten, und geben Sie eine Struktur zurück, die das Karussell verarbeiten kann.
Hier ist ein Beispielfall:
data.payload.items.{
"title": title,
"description": description,
"imageURL": imageURL
}Um dieses Problem zu vermeiden, wenden Sie den folgenden Workaround an, indem Sie das Objekt data.payload umschließen:
($items := data.payload.items; $exists($items[0]) ? $items : [$items])
Dadurch wird sichergestellt, dass das Karussell auch dann richtig funktioniert, wenn nur ein einziges Ergebnis zurückgegeben wird.
Wenn ein Endpunkt nur ein Produkt anstelle eines Arrays zurückgibt, erscheint der Parameter „products“ nicht in der Antwort:
Das Objekt data gibt kein Array zurück. In den API-Integrationseinstellungen sehen wir, dass der Test fehlschlägt, weil er einen products-Parameter erwartet, der nicht zurückgegeben wird, wenn nur ein Element gefunden wird.
Das data Objekt gibt kein Array zurück, und der API-Integrationstest schlägt fehl, da es erwartet, dass ein products parameter nicht enthalten ist, wenn nur ein Element zurückgegeben wird.
Um dieses Problem zu beheben, können Sie das folgende Beispiel verwenden:
($data := data; $exists($data.products) ? $data.products[[0..2]] : [$data]).{
"title": title,
"description": $length(description) 128 ? $substring(description, 0, 125) & "..." : description,
"thumbnail": thumbnail,
"id": id
}
Weitere Informationen finden Sie in den folgenden Beiträgen:
- Verwenden von JSONata mit Fortschrittlichen KI Agenten
- JSONata-Referenz für Fortschrittliche KI Agenten
Hinweis zur Übersetzung: Dieser Beitrag wurde mit automatischer Übersetzungssoftware übersetzt, um dem Leser ein grundlegendes Verständnis des Inhalts zu vermitteln. Trotz angemessener Bemühungen, eine akkurate Übersetzung bereitzustellen, kann Zendesk keine Garantie für die Genauigkeit übernehmen.
Sollten in Bezug auf die Genauigkeit der Informationen im übersetzten Beitrag Fragen auftreten, beziehen Sie sich bitte auf die englische Version des Beitrags, die als offizielle Version gilt.