Domanda
Perché la sequenza dinamica per il mio agenti AI avanzata non viene caricata?
Risposta
Questo errore può verificarsi anche quando tutto è configurato correttamente. Se la sequenza dinamica non viene caricata in modo intermittente, è possibile che l’integrazione API non restituisca un array formattato correttamente che la sequenza possa leggere.
Questo blocco prevede un parametro di tipo "array". Tuttavia, alcuni endpoint API potrebbero non restituire sempre un array, specialmente quando viene trovato un solo prodotto. Invece di racchiudere il singolo elemento in un array, la risposta potrebbe restituire solo l’elemento stesso. Senza un array nel payload, il caricamento del carosello non riuscirà.
Ecco i sintomi di questo comportamento:
Nei registri delle conversazioni viene rilevata una risposta di errore tecnico , sebbene non ci siano molti suggerimenti su quale sia l’errore.
L’ispezione della scheda Rete negli Strumenti per sviluppatori del browser rivela che l’array del carosello viene restituito vuoto:
Per risolvere questo problema, aggiorna la query JSONata nell’integrazione API per gestire le risposte non array e restituire una struttura che il carosello può elaborare.
Per illustrare, ecco un esempio di caso:
data.payload.items.{
"title": title,
"description": description,
"imageURL": imageURL
}Per evitare questo problema, applica la soluzione alternativa seguente eseguendo il wrapping dell’oggetto data.payload:
($items := data.payload.items; $exists($items[0]) ? $items : [$items])
Ciò garantisce il corretto funzionamento della sequenza, anche quando viene restituito un solo risultato.
Quando un endpoint restituisce un solo prodotto anziché un array, il parametro "products" non viene visualizzato nella risposta:
L’oggetto data non restituisce un array e, dalle impostazioni di integrazione API, possiamo notare che il test non riesce a recuperare i dati perché prevede un products parametro, che non viene restituito quando viene trovato un solo elemento.
Il data non restituisce un array e il test di integrazione API ha esito negativo perché prevede a products parameter che non viene incluso quando viene restituito un solo articolo.
Per risolvere il problema, puoi usare il seguente esempio:
($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
}
Per ulteriori informazioni, consulta i seguenti articoli:
Avvertenza sulla traduzione: questo articolo è stato tradotto usando un software di traduzione automatizzata per fornire una comprensione di base del contenuto. È stato fatto tutto il possibile per fornire una traduzione accurata, tuttavia Zendesk non garantisce l'accuratezza della traduzione.
Per qualsiasi dubbio sull'accuratezza delle informazioni contenute nell'articolo tradotto, fai riferimento alla versione inglese dell'articolo come versione ufficiale.