20.3构建Luma Bot —— 云功能

云函数允许您的机器人在运 行时执行自定义Node .js代码,从而使您的机器人能够显示动态聊天内容。 让我们向Luma Bot添加一些云功能,其中将显示我们从API获取的Luma产品数据。

先决条件

20.3.1设置占位符云函数

单击机器 人菜单 中的“云功能”按钮以调出编辑器。 有两种创建云函数的方法——您可以使用您喜爱的集成开发环境(IDE)在本地开发代码(如 Visual Studio Code(VS Code)),并上传您的代码,或者您可以直接在Stack Studio的云函数编辑器中编写代码,这正是我们的工作。 从头开 始选择开始

演示

有错误阻止我们发布Luma Bot,这些错误都与缺少的云函数相对应。 单击“ 错误 ”机器菜单项,查看要修复的问题列表。

以下是缺失云函数的列表:

  • getProducts
  • getRecentlyViewedProducts
  • notifyAEPOfUserIndified
  • extractMetadaAndPopulateSlots

稍后我们将加入最终的云功能,但现在,我们创建一些占位符功能来安抚愤怒的bot validator。 关闭“ 验证错误 ”面板,复制下面的代码,并通过替换其中的内容将其粘贴到机器人编辑器中,然后点 击右上 方的“保存”按钮。 这些将帮助我们在与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) }`);
}

现在,您的bot没有任何错误,验证程序不再生气! 单击4导 出按钮 ,查看Stackchat Studio检测到的所有功能的列表。

演示

20.3.2发布并测试Luma Bot

既然没有错误,请点击机器人菜单中的“发布”按钮, 继续 并发布您的机器人。

演示

在机器人完成发布后(可能需要几分钟),您将看到聊天徽章不再被禁用。 单击聊天徽章, 向Luma Bot打个招呼,开始对话。

演示

请指定您的姓名,然后选择“ 我需要创意 ”菜单项。

注意

如果您在任何时候都迷路了,您始终可以对 机器人说 /重置。 此设置已在重置流 上配置 为关键字,它将清除您的所有插槽并重新启动聊天会话。 如果您想了解内容开发套件的工作原理,请查看内容开发套件中的Rest Flow!

演示

你们会看到这个。 单击

演示

然后,提供您的电子邮件地址并单 击“是”。

演示

然后,您会注意到Luma Bot不会为您显示任何产品。 这是因为我们的云函数为空,保存为一个 console.info调用

演示

在你说别的话之前,我们先看看你的机器人日志,了解鲁玛机器人的内部情况。 单击 机器 菜单中的“日志”按钮,等待日志加载。

演示

我们 在place holder cloud函数中进行的console.info调用显示在日志的此处。 您应该能够查看getProducts方法的已记 录输出 -单击它可展开输出,并通过userData参数查看您的云函数对它有 哪些数据 。 您应当看到您的姓名和电子邮件已捕获。

演示

很巧妙,但Luma Bot对于一堆只创建日志条目的云函数并不是特别有用。 我们需要用真正的逻辑来填充这些函数,而且我们已经为您准备了这些函数。

20.3.3在VSCode中设置云功能项目

在之前的一个练习中,您将Stackchat资 源的最新版本作为zip文件下载到您解压到的本地桌面。 您的桌面上有此文件夹:

演示

然后,将文 件夹拖放到Visual Studio代码UI中,打开Visual Studio代码中的 adobe-experience-league-module-X.X.X。

演示

打开后,导航到 。/cloud-functions文件夹

vsc_cloudfunctions-folder

现在打开终端(视图->终端)。

vs_terminal-open

这将打开VS代码窗口底部的面板。 接下来,您需要安装一些项目依赖项。

注意

在终端中运行命令时,可能需要确保几件事;

  • 您已安装最新版本的节点。 请确保您正在运行Node v12。 请 访问Node .js下载并安装最新版本。 或者,您也可以直接在终端中安装或升级到v12,但建议您使用 nvm 来管理节点版本,以便根据需要轻松更改版本。 更多信息可在此 找到

  • 您具有写入我们将要处理的目录的正确权限。 如果不这样做,您可能会看 到以下错误:缺少对/usr/local/lib/node_modules/npm/node_modules的写访问。 …如果出现这种情况, 🔗 请在此提供一个很好的博客来解释问题和可能的解决方案。

  • 您正在正确的目录中工作。 对于以下步骤,我们需要在/cloud-functions 目录中工作 。 要在终端中确 此类型pwd(打印工作目录),然后按Enter键。 如果打印的路径以/cloud-functions结 ,则您已全部设置,如果不尝试运行 cd cloud-functions来设置正确的目录 。 现在,重新运 行pwd,您应该看到路径结尾 为/cloud-functions

您需要安装最新版本的节点包管理器(npm)。 在检查是否已安装该软件之前,您需要验证您是否具有使用和写入安装了节点包管理器(npm)的目录的正确权限。

在终端窗口中,执行以下命令: sudo chown -R $USER /usr/local/lib/node_modules。 请求密码,该密码是当前登录到您计算机的用户的密码。

vs_npminstall-crunch

接下来,您需要验证是否安装了最新版本的npm。 为此,请在“终端” 窗口中输入命令npm i -g npm。

vs_npminstall-crunch

然后,在“终端”窗口中键入命令 cd cloud-functions ,导航到文件夹cloud-functions。

vs_npminstall-crunch

接下来,您需要使用节点包管理器(npm)安装项目的依赖项。 要在终端窗口 中执行此 类型npm i(Node Package Manager安装),请按 Enter。 您应当看到npm开始安装项目的依赖项。

vs_npminstall-crunch

然后,打开文件 。/src/_constants.ts 并注意以下两行:

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

vs_cf-src-constants2

您的Adobe Experience Platform集成暂时无法正常工作,因为您尚未配置这些字段,但我们稍后会返回并修复此问题。 目前,您可以使聊天机器人的其余功能正常工作。

NPM安装完成后,我们在终端中运行npm运行 内部版本 ,构建项目。 为此,在终端窗 口中键入npm run build ,然后按Enter键。

vs_npminstall-crunch

这将生成一个名为的文件夹 。/dist ,它将包含一个名 为cloud-functions.js的文件

vs-dist-cloud-functions

打开文 件cloud-functions.js ,并复制所有内容。

返回Stackchat Studio并转到“云功能”。

ui_cloud-functions-updated

现在,通过将您当前拥有的代码粘贴到Stackchat Studio的 云函数编辑器中 ,替换您从Visual Studio代码复制的代码。

单击​保存

ui_cloud-functions-updated

然后,点击 左侧 导航底部的“发布”按钮。

Stackchat AEP集成

在机器人完成发布后,打开聊天构件并发送消 息/重置 ,以清除聊天会话和开始。

演示

你们会看到这个。 指定您的姓名,然后单 击“发送”。

演示

接下来,选择“ 我需要创意 ”菜单项。

演示

你们会看到这个。 单击

演示

然后,提供您的电子邮件地址。

演示

单击“是”确认您的电子邮 件地址

演示

然后您将看到Luma产品显示在聊天机器人中。

演示

你的Luma机器人正在成形! 您很快将考虑整合Adobe Experience Platform,以增强体验并帮助渠道之间拼接对话,但首先您将使用Journey Orchestration建立旅程,当客户喜欢作为聊天机器流的一部分的产品时,将触发该旅程。

下一步: 20.4使用Journey Orchestration触发与聊天机器人交互后的电子邮件跟进

返回模块20

返回到所有模块

在此页面上