Comment connecter un flux RSS à un chatbot ?
Utiliser un flux RSS est une façon maligne de communiquer des données dynamiques sans avoir à modifier l'implémentation de son assistant. En plus, c'est très simple à mettre en place dans la console de Prisme.ai
Parution le
10/12/2021
, par
Hadrien Lanneau
Le web propose depuis de nombreuses années un standard utilisé par de nombreux sites web permettant de stocker un index de pages web : le flux RSS. C'est une sorte de base de données accessible publiquement, mise à jour en temps réel et structurée selon un format standard. Ce flux est le plus souvent utilisé pour donner la liste chronologique des articles d'un blog, mais il peut aussi servir à fournir n'importe quelle liste de données : des points d'intérêts géolocalisés, des offres d'emplois, etc.
Dans le cadre d'un agent conversationnel, il peut être courant de vouloir donner accès à vos usager à l'une de ces listes d'articles de façon plus conviviale qu'une simple liste de liens. Vous pourriez par exemple afficher un carrousel de cartes pour chaque article. Mais avant d'en arriver là, il faut d'abord être capable de consommer votre flux RSS depuis la console. Nous allons découvrir comment une fonction très simple peut nous permettre d'arriver à nos fins.
Voici son code source en javascript :
La première étape est d'importer un paquet npm qui sert à transformer un flux rss en données exploitable. La seconde est de la retourner pour pouvoir l'utiliser dans un workflow.
Insérez une instruction Fonction et choisissez la fonction "Feed RSS". En paramètre, indiquez l'adresse de votre flux RSS. Et finalement, donnez un nom pour le résultat de la fonction.

La fonction va donc retourner un objet dont la structure est décrite dans la documentation de la librairie utilisée. Ce qui nous intéresse c'est la propriété `items` qui est un tableau contenant chaque élément de notre flux. Il va nous falloir boucler dessus pour générer une carte pour chacun. Nous allons donc insérer une instruction `repeat` pour laquelle nous allons indiquer que nous voulons boucler sur `$feed.items` :

Nous pouvons enfin glisser une instruction `card` dans le repeat que nous allons compléter en utilisant les propriétés de chaque item :

Un bouton de type lien permettra à l'utilisateur de visiter la page web :

Voici finalement notre workflow complet :

En mode Manifest, cela correspondra à :
Et voici le résultat au sein de votre boite de dialogue :
