20.3 Erstellen Sie Ihren Luma Bot - Cloud-Funktionen

Mit Cloud-Funktionen kann Ihr Bot benutzerdefinierten Node.js -Code zur Laufzeit ausführen, sodass Ihr Bot dynamische Chat-Inhalte anzeigen kann. Fügen wir einige Cloud-Funktionen zu Ihrem Luma Bot hinzu, die unter anderem Luma-Produktdaten anzeigen, die wir von einer API abrufen.

Voraussetzungen

  • Die neueste Version von Node.js wurde installiert. Stellen Sie sicher, dass Sie Node v12 oder höher ausführen.
  • Neueste Version von Github für Desktop

20.3.1 Einrichten von Platzhalter-Cloud-Funktionen

Klicken Sie im Bot-Menü auf die Schaltfläche Cloud-Funktionen , um den Editor aufzurufen. Es gibt zwei Ansätze zum Erstellen von Cloud-Funktionen: Sie können den Code lokal mit Ihrer bevorzugten Integrate Development Umgebung (IDE) entwickeln, z. B. Visual Studio-Code (VS-Code), und Ihren Code hochladen, oder Sie können Code direkt im Cloud-Funktionseditor von Stackchat Studio schreiben. Wählen Sie die Option " Beginn von Grund auf "aus.

demo

Es gibt Fehler, die uns daran hindern, Luma Bot zu veröffentlichen, die alle mit fehlenden Cloud-Funktionen korrespondieren. Klicken Sie auf das Menüelement Fehler , um eine Liste der Probleme anzuzeigen, die Sie beheben möchten.

Im Folgenden finden Sie eine Liste der fehlenden Cloud-Funktionen:

  • getProducts
  • getRecentlyViewedProducts
  • notificationAEPOfUserIdentified
  • extractMetadaAndPopulateSlots

Wir werden unsere finalen Cloud-Funktionen ein wenig später einbauen, aber für jetzt erstellen wir einige Platzhalterfunktionen, um den wütenden Bot Validator zu beschwichtigen. Schließen Sie das Bedienfeld " Überprüfungsfehler ", kopieren Sie den unten stehenden Code und fügen Sie ihn in den Bot-Editor ein, indem Sie die vorhandenen Elemente ersetzen, und klicken Sie dann oben rechts auf die Schaltfläche " Speichern ". Diese werden uns helfen, Protokolle zu erfassen, wenn wir mit unserem Luma Bot interagieren.

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) }`);
}

Jetzt hat Ihr Bot keine Fehler und der Validator ist nicht mehr wütend! Klicken Sie auf die Schaltfläche 4 Exporte , um eine Liste aller Funktionen anzuzeigen, die Stackchat Studio erkannt hat.

demo

20.3.2 Luma Bot veröffentlichen und testen

Da keine Fehler vorliegen, veröffentlichen Sie den Bot, indem Sie im Bot-Menü auf die Schaltfläche " Veröffentlichen "klicken.

demo

Sobald der Bot die Veröffentlichung abgeschlossen hat (es kann einige Minuten dauern), werden Sie sehen, dass die Chat-Markierung nicht mehr deaktiviert ist. Klicken Sie auf die Chat-Abzeichen und sagen Sie Hallo zu Ihrem Luma Bot, um das Gespräch zu starten.

demo

Geben Sie Ihren Namen ein und wählen Sie dann den Menüpunkt Ich brauche Ideen .

HINWEIS

Wenn Sie sich irgendwann verlieren, können Sie immer sagen /zurücksetzen auf den Bot. Dies wurde als Suchbegriff für den Fluss Zurücksetzen konfiguriert, der alle Slots löscht und die Chat-Sitzung neu startet. Sehen Sie sich den Rest Fluss in der CDML an, wenn Sie interessiert sind, wie es funktioniert!

demo

Dann sehen Sie das. Klicken Sie auf Ja.

demo

Geben Sie als Nächstes Ihre E-Mail-Adresse ein und klicken Sie auf Ja.

demo

Sie werden dann feststellen, dass Ihr Luma Bot keine Produkte für Sie anzeigt. Dies liegt daran, dass unsere Cloud-Funktionen leer sind, mit Ausnahme eines einzigen console.info -Aufrufs.

demo

Bevor Sie etwas Anderes sagen, schauen wir uns die Bot-Protokolle an, um eine Vorstellung davon zu bekommen, was in Luma Bot passiert. Klicken Sie im Bot-Menü auf die Schaltfläche Protokolle und warten Sie einen Moment, bis die Protokolle geladen werden.

demo

Die console.info Aufrufe, die wir in unseren Platzhalterwolkenfunktionen gemacht haben, erscheinen hier in den Protokollen. Sie sollten die aufgezeichnete Ausgabe aus unserer getProducts -Methode sehen können - klicken Sie darauf, um die Ausgabe zu erweitern und zu sehen, welche Daten Ihre Cloud-Funktion über das userData -Argument zur Verfügung hat. Sie sollten Ihren Namen und Ihre E-Mail-Erfassung sehen.

demo

Luma Bot ist nicht sehr nützlich bei einer Reihe von Cloud-Funktionen, die nur Logeinträge erstellen. Wir müssen diese Funktionen mit echter Logik und Glück für Sie füllen, wir haben diese Funktionen bereits für Sie vorbereitet.

20.3.3 Cloud-Funktionsprojekt in VSCode einrichten

Bei einer der vorherigen Übungen haben Sie die neueste Version der Stackchat-Assets hier als ZIP-Dateiauf Ihren lokalen Desktop heruntergeladen, wo Sie die ZIP-Datei entpackt haben. Sie haben diesen Ordner auf Ihrem Desktop:

demo

Öffnen Sie anschließend den Ordner adobe-experience-league-module-X.X.X in Visual Studio-Code, indem Sie ihn in die Code-Benutzeroberfläche von Visual Studio ziehen und dort ablegen.

demo

Nach dem Öffnen navigieren Sie zum .Ordner /cloud-features .

vsc_cloudFunctions-folder

Öffnen Sie jetzt Terminal (Ansicht -> Terminal).

vs_terminal-open

Dadurch wird ein Bedienfeld am unteren Rand des VS-Code-Fensters geöffnet. Als Nächstes müssen Sie einige Projektabhängigkeiten installieren.

HINWEIS

Beim Ausführen von Befehlen im Terminal müssen Sie möglicherweise mehrere Dinge sicherstellen.

  • Sie haben eine aktuelle Version von Node installiert. Stellen Sie sicher, dass Sie Node v12 ausführen. Unter Node.js können Sie die neueste Version herunterladen und installieren. Alternativ dazu können Sie die Version 12 direkt in Terminal installieren oder aktualisieren. Es wird jedoch empfohlen, nvm zur Verwaltung Ihrer Node-Versionen zu verwenden, um die Versionsänderung nach Bedarf zu erleichtern. Weitere Informationen finden Sie hier.

  • Sie haben die richtigen Berechtigungen, um in das Verzeichnis zu schreiben, in dem wir arbeiten werden. Andernfalls werden möglicherweise Fehler wie fehlender Schreibzugriff auf /usr/local/lib/node_modules/npm/node_modules angezeigt… Wenn dies der Fall ist, hier ist ein toller Blog, um das Problem und mögliche Lösung zu erklären.

  • Du arbeitest im richtigen Verzeichnis. Für die folgenden Schritte müssen wir im Ordner /cloud-function arbeiten. Zur Bestätigung dieses Typs pwd (Druckarbeitsverzeichnis) im Terminal und drücken Sie die Eingabetaste. Wenn der gedruckte Pfad mit /cloud-Funktionen endet, werden Sie alle eingestellt, wenn nicht versuchen, cd-Cloud-Funktionen auszuführen, um den richtigen Ordner festzulegen. Nun, wieder ausführen pwd, sollten Sie sehen, der Pfad Ende mit /cloud-Funktionen.

Sie benötigen eine aktuelle Version von Node Package Manager (npm). Bevor Sie überprüfen können, ob Sie diese Version installiert haben, müssen Sie sicherstellen, dass Sie über die erforderlichen Berechtigungen verfügen, um Node Package Manager (npm) zu verwenden und in den Ordner zu schreiben, in dem Node Package Manager (npm) installiert ist.

Führen Sie im Terminalfenster folgenden Befehl aus: sudo chown -R $USER /usr/local/lib/node_modules. Es wird ein Kennwort angefordert, das das Kennwort des Benutzers ist, der derzeit auf Ihrem Computer angemeldet ist.

vs_npminstall-crunch

Als Nächstes müssen Sie überprüfen, ob eine aktuelle Version von npm installiert ist. Geben Sie dazu den Befehl npm i -g npm im Terminal-Fenster ein.

vs_npminstall-crunch

Navigieren Sie dann zu den Ordnercloud-Funktionen, indem Sie den Befehl cd cloud-function im Terminal-Fenster eingeben.

vs_npminstall-crunch

Als Nächstes müssen Sie die Abhängigkeiten des Projekts mit Node Package Manager (npm) installieren. Um diesen Typ npm i (Node Package Manager install) innerhalb des Terminalfensters zu tun, klicken Sie auf enter. Sie sollten sehen, dass npm mit der Installation der Abhängigkeiten des Projekts beginnt.

vs_npminstall-crunch

Next, open the file ./src/_constants.ts und beachten Sie die beiden folgenden Zeilen:

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

vs_cf-src-constants2

Ihre Adobe Experience Platform-Integration funktioniert noch nicht richtig, da Sie diese Felder noch nicht konfiguriert haben, aber wir kommen darauf zurück und beheben dies in einer Minute. Für den Moment können Sie den Rest der Chatbot-Funktionalität nutzen.

Nachdem die NPM-Installation abgeschlossen ist, erstellen wir das Projekt, indem wir npm Build innerhalb des Terminals ausführen. Geben Sie dazu npm run build innerhalb des Terminalfensters ein und drücken Sie die Eingabetaste.

vs_npminstall-crunch

Dadurch wird ein Ordner namens ./dist , die eine einzelne Datei namens cloud-function.js enthalten wird.

vs-dist-cloud-function

Öffnen Sie die Datei cloud-features.js und kopieren Sie alles.

Gehen Sie zurück zu Stackchat Studio, zu Cloud-Funktionen.

ui_cloud-features-updated

Ersetzen Sie nun das, was Sie derzeit haben, durch den Code, den Sie aus Visual Studio-Code kopiert haben, aus der Datei cloud-features.js , indem Sie diesen Code in Ihren Cloud-Funktionseditor in Stackchat Studio einfügen.

Klicken Sie auf Speichern.

ui_cloud-features-updated

Klicken Sie anschließend unten im Navigationsbereich auf die Schaltfläche " Veröffentlichen ".

Stackchat AEP-Integration

Nachdem der Bot die Veröffentlichung abgeschlossen hat, öffnen Sie das Chat-Widget und senden Sie die Nachricht /das Zurücksetzen , um Ihre Chat-Sitzung und Ihren Beginn zu löschen.

demo

Dann sehen Sie das. Geben Sie Ihren Namen ein und klicken Sie auf Senden.

demo

Wählen Sie als Nächstes das Menüelement Ich benötige Ideen .

demo

Dann sehen Sie das. Klicken Sie auf Ja.

demo

Geben Sie als Nächstes Ihre E-Mail-Adresse ein.

demo

Bestätigen Sie Ihre E-Mail-Adresse, indem Sie auf Ja klicken.

demo

Dann sehen Sie, dass Luma-Produkte im Chatbot angezeigt werden.

demo

Dein Luma Bot nimmt Gestalt an! Sie werden sich bald mit der Integration von Adobe Experience Platform beschäftigen, um das Erlebnis zu verbessern und Konversationen über Kanal hinweg zu begleiten, aber zunächst werden Sie eine Reise mit Journey Orchestration starten, die ausgelöst wird, wenn ein Kunde ein Produkt im Rahmen des Chatbot-Flusses mag.

Nächster Schritt: 20.4 Verwenden Sie Journey Orchestration, um eine E-Mail-Nachverfolgung nach der Interaktion mit dem Chat-Bot auszulösen

Zurück zu Modul 20

Zurück zu allen Modulen

Auf dieser Seite