20.3 Création de votre bot Luma - Fonctions Cloud

Les fonctions Cloud permettent à votre robot d’exécuter le code personnalisé Node.js au moment de l’exécution, ce qui vous permet d’afficher du contenu de discussion dynamique. Ajoutons quelques fonctions de cloud à votre Luma Bot qui, entre autres, afficheront les données de produit Luma que nous récupérons à partir d'une API.

Conditions préalables

  • Dernière version de Node.js installée. Assurez-vous d’exécuter Node v12 ou version ultérieure.
  • Dernière version de Github for Desktop

20.3.1 Configuration des fonctions de cloud d’espace réservé

Cliquez sur le bouton Fonctions ​Cloud dans le menu du robot pour afficher l’éditeur. Il existe deux approches pour créer des fonctions de cloud : vous pouvez développer le code localement à l'aide de votre Environnement IDE (Integrate Development ) favori, tel que Visual Studio Code (VS Code), et télécharger votre code, ou vous pouvez écrire du code directement dans l'éditeur de fonction de cloud de Stackchat Studio, ce que nous ferons. Sélectionnez l’option Début à partir de zéro .

démo

Des erreurs nous empêchent de publier Luma Bot, qui correspondent toutes à des fonctions de cloud manquantes. Cliquez sur l’option de menu Erreurs pour afficher la liste des problèmes que vous êtes sur le point de résoudre.

Voici une liste des fonctions de cloud manquantes :

  • getProducts
  • getLastViewedProducts
  • notificationAEPOfUserIdentified
  • extractMetadaAndPopulateSlots

Nous mettrons dans nos fonctions finales de cloud un peu plus tard, mais pour l'instant créons des fonctions d'espace réservé pour apaiser le validateur de robots en colère. Fermez le panneau Erreurs de validation, copiez le code ci-dessous et collez-le dans l’éditeur de robots en remplaçant les éléments qui s’y trouvent, puis cliquez sur le bouton Enregistrer en haut à droite. Ils nous aideront à capturer les journaux lorsque nous interagirons avec notre bot Luma.

export function getProducts(userData) {
  console.info(`getProducts called :: userdata:\n ${ JSON.stringify(userData) }`);
}

export function getRecentlyViewedProducts(userData) {
  console.info(`getRecentlyViewedProducts called :: userdata:\n ${ JSON.stringify(userData) }`);
}

export function notifyAEPOfUserIdentified(userData) {
  console.info(`notifyAEPOfUserIdentified called :: userdata:\n ${ JSON.stringify(userData) }`);
}

export function extractMetadaAndPopulateSlots(userData) {
  console.info(`extractMetadaAndPopulateSlots called :: userdata:\n ${ JSON.stringify(userData) }`);
}

Maintenant votre robot n'a aucune erreur et le validateur n'est plus en colère ! Cliquez sur le bouton 4 export pour voir une liste de toutes les fonctions que Stackchat Studio a détectées.

démo

20.3.2 Publication et test de votre bot Luma

Maintenant qu’il n’y a aucune erreur, allez-y et publiez votre robot en appuyant sur le bouton Publier dans le menu du robot.

démo

Une fois la publication du bot terminée (il peut prendre quelques minutes), vous verrez que le badge de chat n'est plus désactivé. Cliquez sur le badge de chat et dites bonjour à votre bot Luma pour lancer la conversation.

démo

Donnez votre nom, puis sélectionnez l'option de menu J'ai besoin d'idées .

REMARQUE

Si à un moment donné, vous vous perdez, vous pouvez toujours dire /réinitialiser au robot. Il a été configuré en tant que mot-clé dans le flux Réinitialiser, ce qui efface tous vos créneaux horaires et redémarre la session de discussion. Consultez le flux de repos dans le CDML si vous êtes intéressé par son fonctionnement !

démo

Vous verrez alors ceci. Cliquez sur Oui.

démo

Indiquez ensuite votre adresse électronique et cliquez sur Oui.

démo

Vous remarquerez alors comment votre Luma Bot n'affiche aucun produit pour vous. Cela est dû au fait que nos fonctions de cloud sont vides, sauf pour un appel console.info unique.

démo

Avant de dire quoi que ce soit d'autre, jetons un coup d'oeil à vos journaux de bots pour avoir une idée de ce qui se passe à l'intérieur de Luma Bot. Cliquez sur le bouton Journaux dans le menu de robots et attendez un instant que les journaux se chargent.

démo

Les invocations console.info que nous avons faites dans nos fonctions de nuage d'espace réservé apparaissent ici dans les journaux. Vous devriez être en mesure de voir la sortie enregistrée de notre méthode getProducts - cliquez dessus pour développer la sortie et voir les données que votre fonction de cloud a à sa disposition via l'argument userData . Vous devriez voir que votre nom et votre adresse électronique ont été capturés.

démo

Plutôt chouette, mais Luma Bot n'est pas très utile avec un tas de fonctions de cloud qui ne créent que des entrées de journal. Nous devons remplir ces fonctions avec une réelle logique et de la chance pour vous, nous avons déjà préparé ces fonctions pour vous.

20.3.3 Configuration du projet Fonctions du cloud dans VSCode

Dans l'un des exercices précédents, vous avez téléchargé la dernière version des ressources Stackchat ici, sous la forme d'un fichierzip, sur votre bureau local où vous l'avez décompressé. Vous disposez de ce dossier sur votre bureau :

démo

Ensuite, ouvrez le dossier adobe-experience-league-module-X.X.X dans le code Visual Studio en le faisant glisser et en le déposant dans l’interface utilisateur du code Visual Studio.

démo

Une fois ouvert, accédez au .dossier /cloud-features .

vsc_cloudfeatures-folder

Ouvrez maintenant Terminal (Vue -> Terminal).

vs_terminal-open

Un panneau s'ouvre alors au bas de la fenêtre Code VS. Ensuite, vous devez installer certaines dépendances de projet.

REMARQUE

Lors de l'exécution de commandes dans le terminal, vous devrez peut-être vous assurer de plusieurs choses :

  • Une version à jour de Node est installée sur votre ordinateur. Assurez-vous d’exécuter Node v12. rendez-vous sur Node.js pour télécharger et installer la dernière version. Vous pouvez également installer ou mettre à niveau vers la version 12 directement dans Terminal, mais il est recommandé d'utiliser nvm pour gérer vos versions de noeud, afin de faciliter la modification des versions, le cas échéant. D'autres informations sont disponibles ici.

  • Vous disposez des autorisations appropriées pour écrire dans le répertoire dans lequel nous travaillerons. Si vous ne le faites pas, vous pouvez voir des erreurs telles que l'accès en écriture Manquant à /usr/local/lib/node_modules/npm/node_modules… si c'est le cas, voici un excellent blog pour expliquer le problème et la solution possible.

  • Vous travaillez dans le bon répertoire. Pour les étapes suivantes, nous devrons travailler dans le répertoire /cloud-features (fonctionsde cloud). Pour confirmer ce type de pwd (répertoire de travail d'impression) dans le terminal et appuyez sur Entrée. Si le chemin d’accès imprimé se termine par des fonctions ​/cloud, vous êtes tous définis, si vous n’essayez pas d’exécuter les fonctions de cloud cd pour définir le répertoire approprié. Maintenant, réexécutez pwd, vous devriez maintenant voir la fin du chemin avec des fonctions /cloud.

Vous devez disposer d’une version à jour de Node Package Manager (npm) installée. Avant de vérifier si vous avez installé ce logiciel, vous devez vérifier que vous disposez des autorisations appropriées pour l’utilisation et l’écriture dans le répertoire dans lequel Node Package Manager (npm) est installé.

Dans la fenêtre du terminal, exécutez la commande suivante : sudo chown -R $USER /usr/local/lib/node_modules. Un mot de passe est demandé, c'est-à-dire le mot de passe de l'utilisateur actuellement connecté sur votre ordinateur.

vs_npminstall-crunch

Ensuite, vous devez vérifier si une version à jour de npm est installée. Pour ce faire, saisissez la commande npm i -g npm dans la fenêtre Terminal.

vs_npminstall-crunch

Ensuite, accédez au dossier cloud-fonctions en saisissant la commande cd cloud-fonctions dans la fenêtre Terminal.

vs_npminstall-crunch

Ensuite, vous devez installer les dépendances du projet à l’aide de Node Package Manager (npm). Pour ce faire, tapez npm i (Node Package Manager install) dans la fenêtre du terminal et appuyez sur Entrée. Vous devriez voir npm commencer à installer les dépendances du projet.

vs_npminstall-crunch

Next, open the file ./src/_constants.ts et prenez note de ces deux lignes :

export const CUSTOM_EVENT_SCHEMA_ID = 'XXXX';
...
export const CUSTOM_EVENT_DATASET_ID = 'XXXX';

vs_cf-src-constantes2

Votre intégration Adobe Experience Platform ne fonctionnera pas encore correctement, car vous n’avez pas encore configuré ces champs, mais nous y reviendrons et y remédier dans une minute. Pour l'instant, vous pouvez faire fonctionner le reste de la fonctionnalité de chatbot.

Une fois l'installation du module NPM terminée, créons le projet en exécutant npm run build dans le terminal. Pour ce faire, tapez npm run build dans la fenêtre du terminal et appuyez sur Entrée.

vs_npminstall-crunch

Ceci génère un dossier appelé ./dist qui contiendra un seul fichier appelé cloud-features.js.

vs-dist-cloud-fonctions

Ouvrez le fichier cloud-features.js et copiez tout.

Revenez à Stackchat Studio, dans Cloud Functions.

ui_cloud-features-update

Maintenant, remplacez ce que vous avez actuellement par le code que vous avez copié à partir du code Visual Studio, à partir du fichier cloud-features.js en collant ce code dans votre éditeur de fonctions de cloud dans Stackchat Studio.

Cliquez sur Enregistrer.

ui_cloud-features-update

Ensuite, cliquez sur le bouton Publier au bas du volet de navigation de gauche.

Intégration de Stackchat AEP

Une fois la publication du robot terminée, ouvrez le widget de discussion et envoyez le message /réinitialisez pour effacer votre session de discussion et votre début.

démo

Vous verrez alors ceci. Donnez votre nom et cliquez sur Envoyer.

démo

Ensuite, sélectionnez l'option de menu J'ai besoin d'idées .

démo

Vous verrez alors ceci. Cliquez sur Oui.

démo

Indiquez ensuite votre adresse électronique.

démo

Confirmez votre adresse électronique en cliquant sur Oui.

démo

Vous verrez alors que les produits Luma sont affichés à l'intérieur du chatbot.

démo

Votre bot Luma prend forme ! Vous allez bientôt intégrer Adobe Experience Platform afin d'améliorer l'expérience et de faciliter la mise en correspondance des conversations entre les canaux, mais vous allez d'abord configurer un voyage à l'aide d'un Journey Orchestration qui sera déclenché lorsqu'un client aime un produit dans le flux du chatbot.

Étape suivante : 20.4 Utiliser le Journey Orchestration pour déclencher un suivi de courriel après avoir interagi avec un robot de discussion

Revenir au module 20

Revenir à tous les modules

Sur cette page