20.3 Crie seu robô luma - Funções em nuvem

As funções de nuvem permitem que o robô execute o código Node.js personalizado em tempo de execução, dando ao seu robô o poder de exibir conteúdo dinâmico de bate-papo. Vamos adicionar algumas funções de nuvem ao seu Luma Bot que exibirá, entre outras coisas, os dados de produtos Luma obtidos de uma API.

Pré-requisitos

  • Versão mais recente do Node.js instalada. Verifique se você está executando o Nó v12 ou superior
  • Versão mais recente do Github para desktop

20.3.1 Configurar funções da nuvem de espaço reservado

Clique no botão Funções da nuvem no menu do robô para exibir o editor. Existem duas abordagens para criar funções de nuvem - você pode desenvolver o código localmente usando seu Ambiente de desenvolvimento de integração (IDE) favorito, como o Código do Visual Studio (Código VS), e fazer upload do seu código, ou você pode escrever código diretamente no editor de função de nuvem do Stackchat Studio, que é o que faremos. Selecione a opção Start do zero .

demonstração

Há erros que nos impedem de publicar o Luma Bot, que correspondem a funções de nuvem ausentes. Clique no item de menu do robô Erros para ver uma lista dos problemas que você está prestes a corrigir.

Veja a seguir uma lista das funções de nuvem ausentes:

  • getProducts
  • getRecentlyViewedProdutos
  • notificationAEPOfUserIdentified
  • extractMetadaAndPopulateSlots

Colocaremos em nossas funções finais de nuvem um pouco mais tarde, mas por enquanto vamos criar algumas funções de espaço reservado para apaziguar o validador de robô nervoso. Feche o painel Erros de validação, copie o código abaixo e cole-o no editor de robô, substituindo o que está lá, e pressione o botão Salvar na parte superior direita. Eles nos ajudarão a capturar registros quando interagirmos com nosso 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) }`);
}

Agora seu bot não tem nenhum erro e o validador não está mais bravo! Clique no botão Exportar ​4 para ver uma lista de todas as funções que o Stackchat Studio detectou.

demonstração

20.3.2 Publicar e testar seu robô luma

Agora que não há erros, vá em frente e publique seu robô pressionando o botão Publicar no menu do robô.

demonstração

Quando o robô terminar de publicar (pode levar alguns minutos), você verá que o selo do bate-papo não está mais desativado. Clique no selo do bate-papo e cumprimente seu bot Luma para iniciar a conversa.

demonstração

Dê seu nome e selecione o item de menu Preciso de ideias .

OBSERVAÇÃO

Se, em qualquer momento, você se perder, sempre poderá dizer /redefinir para o robô. Isso foi configurado como uma palavra-chave no fluxo Redefinir, que limpa todos os slots e reinicia a sessão de bate-papo. Confira o Fluxo de repouso no CDML se estiver interessado em ver como ele funciona!

demonstração

Você verá isso. Clique em Sim.

demonstração

Em seguida, forneça seu endereço de email e clique em Sim.

demonstração

Você perceberá como seu Luma Bot não exibe nenhum produto para você. Isso ocorre porque nossas funções de nuvem estão vazias, salvo para uma chamada console.info solitária.

demonstração

Antes de dizer mais alguma coisa, vamos dar uma olhada nos registros do seu robô para ter uma ideia do que está acontecendo dentro do Luma Bot. Clique no botão Logs no menu do robô e aguarde um momento para que os logs sejam carregados.

demonstração

As invocações console.info que fizemos em nossas funções de nuvem de marcadores de posição aparecem aqui nos registros. Você deve ser capaz de ver a saída registrada do nosso método getProducts - clique nela para expandir a saída e ver quais dados sua função de nuvem tem disponíveis por meio do argumento userData . Você deve ver seu nome e e-mail capturado.

demonstração

Muito legal, mas o Luma Bot não é muito útil com um monte de funções de nuvem que só criam entradas de log. Precisamos preencher essas funções com lógica real e sorte para vocês, já preparamos essas funções para vocês.

20.3.3 Configurar o projeto de funções da nuvem no VSCode

Em um dos exercícios anteriores, você baixou a versão mais recente dos ativos Stackchat aqui, como um arquivozip, para a área de trabalho local onde você descompactou. Você tem esta pasta na área de trabalho:

demonstração

Em seguida, abra a pasta adobe-experience-league-module-X.X.X no código do Visual Studio arrastando-a e soltando-a na interface do usuário do código do Visual Studio.

demonstração

Uma vez aberto, navegue até o .pasta /cloud-functions .

vsc_cloudfunctions-folder

Agora abra Terminal (Visualização -> Terminal).

vs_terminal-open

Isso abrirá um painel na parte inferior da janela Código VS. Em seguida, é necessário instalar algumas dependências do projeto.

OBSERVAÇÃO

Ao executar comandos no terminal, talvez seja necessário garantir várias coisas.

  • Você tem uma versão atualizada do Node instalada. Verifique se você está executando o Nó v12. visite Node.js para baixar e instalar a versão mais recente. Como alternativa, você pode instalar ou atualizar para a v12 diretamente no Terminal, mas é recomendável usar o nvm para gerenciar as versões do nó, para facilitar a alteração das versões, conforme necessário. More information can be found here.

  • Você tem as permissões corretas para gravar no diretório em que estaremos trabalhando. Caso contrário, você poderá ver erros como Acesso de gravação ausente em /usr/local/lib/node_modules/npm/node_modules… se esse for o caso, aqui está um ótimo blog para explicar o problema e a possível solução.

  • Você está trabalhando no diretório correto. Para as etapas a seguir, precisaremos trabalhar no diretório /funções de nuvem. Para confirmar esse tipo de pwd (diretório de trabalho de impressão) no terminal e pressione enter. Se o caminho que é impresso terminar com funções de /nuvem, então todos estão definidos, se não tentar executar funções de nuvem de cd para definir o diretório correto. Agora, execute novamente o pwd, agora você deve ver o caminho terminar com funções de/nuvem.

É necessário ter uma versão atualizada do Node Package Manager (npm) instalada. Antes de verificar se isso está instalado, verifique se você tem as permissões corretas para usar e gravar no diretório no qual o Gerenciador de pacote de nó (npm) está instalado.

Na janela do terminal, execute este comando: sudo chown -R $USER /usr/local/lib/node_modules. Uma senha é solicitada, que é a senha do usuário que está conectado no momento em seu computador.

vs_npminstall-crunch

Em seguida, verifique se você tem uma versão atualizada do npm instalada. Para fazer isso, digite o comando npm i -g npm na janela Terminal.

vs_npminstall-crunch

Em seguida, navegue até as funções de nuvem da pasta digitando o comando cd cloud-functions na janela Terminal.

vs_npminstall-crunch

Em seguida, é necessário instalar as dependências do projeto usando o Gerenciador de pacotes de nós (npm). Para fazer esse tipo npm i (instalação do Gerenciador de pacotes de nós) na janela do terminal e pressione enter. Você deve ver o npm começar a instalar as dependências do projeto.

vs_npminstall-crunch

Em seguida, abra o arquivo ./src/_constants.ts e tome nota destas duas linhas:

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

vs_cf-src-constantes2

Sua integração com o Adobe Experience Platform ainda não funcionará corretamente, pois você ainda não configurou esses campos, mas voltaremos a isso e corrigiremos isso em um minuto. Por enquanto, você pode obter o restante da funcionalidade do chatbot funcionando.

Quando a instalação do NPM estiver concluída, vamos criar o projeto executando a compilação ​npm no terminal. Para fazer isso, digite npm run build build dentro da janela do terminal e pressione enter.

vs_npminstall-crunch

Isso gerará uma pasta chamada ./dist que conterá um único arquivo chamado cloud-functions.js.

vs-dist-cloud-functions

Abra o arquivo cloud-functions.js e copie tudo.

Volte para Stackchat Studio, em Funções de nuvem.

ui_cloud-functions-updates

Agora, substitua o que você tem atualmente pelo código copiado do Visual Studio Code, do arquivo cloud-functions.js colando esse código no editor de função de nuvem no Stackchat Studio.

Clique em Salvar.

ui_cloud-functions-updates

Em seguida, pressione o botão Publicar na parte inferior da navegação à esquerda.

Integração do Stackchat AEP

Depois que o robô terminar de publicar, abra o widget de bate-papo e envie a mensagem /redefina para limpar a sessão de bate-papo e o start.

demonstração

Você verá isso. Dê seu nome e clique em Enviar.

demonstração

Em seguida, selecione o item de menu Preciso de ideias .

demonstração

Você verá isso. Clique em Sim.

demonstração

Em seguida, forneça seu endereço de email.

demonstração

Confirme seu endereço de email clicando em Sim.

demonstração

Você verá que os produtos Luma são exibidos no chatbot.

demonstração

Seu robô Luma está tomando forma! Em breve, você vai procurar integrar a Adobe Experience Platform para melhorar a experiência e ajudar a juntar conversas entre canais, mas primeiro você configurará uma jornada usando o Journey Orchestration que será acionado quando um cliente curtir um produto como parte do fluxo do chatbot.

Próxima etapa: 20.4 Use o Journey Orchestration para acionar um e-mail de acompanhamento após interagir com o robô de bate-papo

Voltar ao módulo 20

Voltar para todos os módulos

Nesta página