20.3 Crea il tuo bot Luma - Funzioni cloud

Le funzioni cloud consentono al bot di eseguire operazioni personalizzate Node.js codice in fase di esecuzione, fornendo al tuo bot la capacità di visualizzare il contenuto dinamico della chat. Aggiungiamo alcune funzioni cloud al Bot Luma che mostreranno, tra le altre cose, i dati di prodotto Luma che recuperiamo da un’API.

Prerequisiti

  • Versione più recente di Node.js installato. Assicurati di eseguire Node v12 o versione successiva
  • Versione più recente di Github per desktop

20.3.1 Impostazione delle funzioni cloud dei segnaposto

Fai clic sul pulsante Funzioni cloud dal menu bot per visualizzare l'editor. Esistono due approcci per la creazione di funzioni cloud: puoi sviluppare il codice localmente utilizzando il tuo ambiente di sviluppo integrato (IDE) preferito, ad esempio Codice di Visual Studio (codice VS), e carica il tuo codice, o puoi scrivere il codice direttamente nell'editor di funzioni cloud di Stackchat Studio, che è ciò che faremo. Seleziona la Inizia da zero opzione .

demo

Ci sono errori che ci impediscono di pubblicare Luma Bot, che corrispondono tutte alle funzioni cloud mancanti. Fai clic sul pulsante Errori voce di menu bot per visualizzare un elenco dei problemi che stai per risolvere.

Di seguito è riportato un elenco delle funzioni cloud mancanti:

  • getProducts
  • getRecentlyViewedProducts
  • notifyAEPOfUserIdentified
  • extractMetadaAndPopulateSlots

Inseriremo le nostre funzioni di nuvola finale un po' più tardi, ma per ora creiamo alcune funzioni di portautensili per alleggerire il validatore di bot arrabbiato. Chiudi Errori di convalida , copia il codice seguente e incollalo nell’editor bot sostituendo ciò che è presente, quindi premi il Salva in alto a destra. Questi ci aiuteranno a catturare i log quando interagiamo con il nostro Luma Bot.

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

Ora il tuo bot non ha errori e il validatore non è più arrabbiato! Fai clic sul pulsante 4 esportazioni per visualizzare un elenco di tutte le funzioni rilevate da Stackchat Studio.

demo

20.3.2 Pubblicare e testare il bot Luma

Ora che non ci sono errori, vai avanti e pubblica il tuo bot colpendo il Pubblica nel menu bot.

demo

Una volta che il bot ha finito la pubblicazione (potrebbero volerci un paio di minuti), vedrete che il badge della chat non è più disabilitato. Fare clic sul badge della chat e dire hi alla tua Luma Bot per dare il via alla conversazione.

demo

Assegna il tuo nome, quindi seleziona il Ho bisogno di idee voce di menu.

NOTA

Se ad un certo punto ti perdi, puoi sempre dire /reset al robot. È stato configurato come keyword sul flusso Reset, che cancella tutti gli slot e riavvia la sessione di chat. Se sei interessato a vedere come funziona, controlla il flusso del resto nel CDML!

demo

Vedrete questo. Fai clic su .

demo

Quindi, fornisci il tuo indirizzo e-mail e fai clic su .

demo

Noterai poi come il tuo Luma Bot non mostra alcun prodotto per te. Questo perché le nostre funzioni cloud sono vuote, salva per un solo console.info chiama.

demo

Prima di dire qualsiasi altra cosa, diamo un'occhiata ai vostri log di bot per avere un'idea di cosa sta succedendo all'interno di Luma Bot. Fai clic sul pulsante Registri dal menu bot e attendi un attimo il caricamento dei log.

demo

La console.info le invocazioni che abbiamo fatto nel nostro posto titolare funzioni cloud vengono visualizzate qui nei log. Dovresti essere in grado di vedere l'output registrato dal nostro getProducts metodo : fai clic su di esso per espandere l'output e vedere quali dati la tua funzione cloud ha a disposizione tramite il userData argomento. Dovresti vedere il tuo nome e l'e-mail che hai acquisito.

demo

Abbastanza bello, ma Luma Bot non è molto utile con una serie di funzioni cloud che creano solo voci di log. Dobbiamo riempire queste funzioni con una logica reale e fortunati per voi, abbiamo già preparato queste funzioni per voi.

20.3.3 Configurazione del progetto Cloud Functions in VSCode

In uno degli esercizi precedenti, hai scaricato l'ultima versione delle risorse Stackchat qui, come file zip, sul desktop locale in cui è stato decompresso. Questa cartella è presente sul desktop:

demo

Apri quindi la cartella adobe-experience-league-module-X.X.X in Codice di Visual Studio trascinandolo e rilasciandolo nell'interfaccia utente di Visual Studio Code.

demo

Una volta aperta, passa alla ./funzioni cloud cartella.

vsc_cloudfunction-folder

Apri il terminale (Visualizza -> Terminale).

vs_terminale-aperto

Verrà aperto un pannello nella parte inferiore della finestra Codice VS. Successivamente è necessario installare alcune dipendenze del progetto.

NOTA

Quando esegui i comandi nel terminale, potrebbe essere necessario assicurarsi diverse cose;

  • È installata una versione aggiornata di Node. Assicurati di eseguire Node v12. visita Node.js per scaricare e installare la versione più recente. In alternativa, è possibile installare o aggiornare la versione v12 direttamente in Terminal, ma si consiglia di utilizzare nvm per gestire le versioni dei nodi, per semplificare la modifica delle versioni in base alle esigenze. Ulteriori informazioni sono disponibili qui.

  • Hai le autorizzazioni corrette per scrivere nella directory in cui lavoreremo. In caso contrario, è possibile che vengano visualizzati errori quali Accesso in scrittura mancante a /usr/local/lib/node_modules/npm/node_modules… in tal caso, ecco un ottimo blog per spiegare il problema e la possibile soluzione.

  • Stai lavorando nella directory corretta. Per i seguenti passaggi dovremo lavorare all’interno di /funzioni cloud directory. Per confermare questo tipo pwd (stampare la directory di lavoro) all'interno del terminale e premere enter. Se il percorso stampato termina con /funzioni cloud allora sei tutto pronto, se non provi a correre funzioni cloud cd per impostare la directory corretta. Ora, riesegui pwd, ora dovresti vedere la fine del percorso con /funzioni cloud.

È necessaria una versione aggiornata di Node Package Manager (npm) installata. Prima di verificare se è installato, è necessario verificare di disporre delle autorizzazioni corrette per utilizzare e scrivere nella directory in cui è installato Node Package Manager (npm).

Nella finestra del terminale, esegui questo comando: sudo chown -R $USER /usr/local/lib/node_modules. Viene richiesta una password, ovvero la password dell'utente attualmente connesso al computer.

vs. npminstall-crunch

Successivamente, è necessario verificare di disporre di una versione aggiornata di npm installata. A questo scopo, immetti il comando npm i-g npm nella finestra Terminal.

vs. npminstall-crunch

Quindi, accedi alla cartella funzioni cloud digitando il comando funzioni cloud cd nella finestra Terminal.

vs. npminstall-crunch

Successivamente, devi installare le dipendenze del progetto utilizzando Node Package Manager (npm). Per eseguire questo tipo npm i (Installazione di Node Package Manager) nella finestra del terminale e premi enter. Dovresti vedere npm iniziare a installare le dipendenze del progetto.

vs. npminstall-crunch

Quindi, apri il file ./src/_constants.ts e prendere atto di queste due linee:

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

vs_cf-src-constants2

L’integrazione di Adobe Experience Platform non funzionerà ancora correttamente, perché non hai ancora configurato questi campi, ma torneremo su questo e correggerlo tra un minuto. Per il momento, potete far funzionare il resto della funzionalità del chatbot.

Una volta completata l'installazione di NPM, costruiamo il progetto eseguendo build di esecuzione npm all'interno del terminale. A questo scopo, digita build di esecuzione npm nella finestra del terminale e premere invio.

vs. npminstall-crunch

Verrà generata una cartella denominata ./dist che conterrà un singolo file denominato cloud-function.js.

funzioni vs-dist-cloud

Apri il file . cloud-function.js e copia tutto.

Torna a Stackchat Studio in Cloud Functions.

ui_cloud-features-update

Sostituisci ora il codice copiato da Visual Studio Code dal file cloud-function.js incollando il codice nell'editor di funzioni cloud in Stackchat Studio.

Fai clic su Salva.

ui_cloud-features-update

Quindi, premi il Pubblica nella parte inferiore della navigazione a sinistra.

Integrazione di Stackchat AEP

Al termine della pubblicazione del bot, apri il widget della chat e invia il messaggio /reset per cancellare la sessione di chat e ricominciare da capo.

demo

Vedrete questo. Assegna il tuo nome e fai clic su Invia.

demo

Quindi, seleziona la Ho bisogno di idee voce di menu.

demo

Vedrete questo. Fai clic su .

demo

Quindi, fornisci il tuo indirizzo e-mail.

demo

Conferma l’indirizzo e-mail facendo clic su .

demo

Vedrete che i prodotti Luma vengono visualizzati all’interno del chatbot.

demo

Il tuo robot Luma sta prendendo forma! A breve, inizierai a integrare Adobe Experience Platform per migliorare l’esperienza e aiutare a unire le conversazioni tra i vari canali, ma prima configurerai un percorso utilizzando un Journey Orchestration che verrà attivato quando un cliente ama un prodotto come parte del flusso del chatbot.

Passaggio successivo: 20.4 Utilizza il Journey Orchestration per attivare un follow-up e-mail dopo aver interagito con chat bot

Torna al modulo 20

Torna a tutti i moduli

In questa pagina