npm 包 botpress-rasa 使用教程

阅读时长 8 分钟读完

在前端开发过程中,我们常常需要将自然语言处理(NLP)技术应用到我们的应用程序中。人工智能(AI)领域的 Rasa 是受欢迎的 NLP 框架之一,它允许我们构建有上下文的聊天机器人。现在,我们有一个 npm 包,可以将 Rasa 整合到我们的应用中。这个包就是 botpress-rasa。在这篇文章中,我们将会学习如何使用这个包来构建一个聊天机器人。

botpress-rasa 简介

botpress-rasa 是一个 Rasa 在线学习模块,它可以与 Botpress 集成,使得我们可以使用 Rasa 的自然语言理解(NLU)模型,以及 Botpress 的对话处理模块,从而为我们提供一个完整的聊天机器人解决方案。

安装 botpress-rasa

要使用 botpress-rasa,我们首先需要安装 Botpress。这可以通过使用以下命令完成:

完成安装以后,我们可以使用以下命令在本地创建一个新的 Botpress 应用:

现在,我们需要安装 botpress-rasa。这可以通过使用以下命令完成:

安装完成以后,我们需要编辑 Botpress 的配置文件。在 my-bot/config/botpress.config.json 中,我们需要添加 botpress-rasa 插件的配置,如下所示:

rasaEndpoint 配置项指定了 Rasa 的端点。如果你在本地启动了 Rasa,那么你需要指定 http://localhost:5005。如果你使用的是 Rasa 的云端服务,那么你需要指定相应的端点。

现在,我们就完成了 botpress-rasa 的安装和配置。接下来,让我们看一下如何使用 botpress-rasa 来构建一个聊天机器人。

构建一个聊天机器人

我们将创建一个简单的聊天机器人,该机器人可以向用户介绍自己,并回答有关天气的问题。我们将使用 Botpress 的对话流程和 botpress-rasa 的 NLU 模型。

在开始之前,我们需要在 Rasa 中创建一个 NLU 模型,并将其导出到 models/nlu 目录中。有关如何创建 Rasa NLU 模型的详细信息,请参阅 Rasa 文档

我们的聊天机器人将包含以下两个意图:

让我们编写一个 intent training 用于训练意图。我们需要创建一个 JSON 文件并将其命名为 intents.json,然后将其保存在 Botpress 的 content/en 目录中。该文件的内容如下:

-- -------------------- ---- -------
-
  -------- -
    ----------- -
      --- -------
      --------
      ------
      -----
      ---- -------
      ------ -------
      -----------
    -
  --
  ---------- -
    ----------- -
      ------- --- ------- ---- --------
      ------- --- ----------- --------
      --- -- --- --------
      ------ --- ------- --------
      ---- ---- -- -- ----------
      ------- --- ------- ---- -- --- ------
    -
  -
-

在 intent training 文件中,我们定义了两个意图,并为每个意图提供了一些可能性模式。通常情况下,我们可能需要添加更多的模式。由于篇幅有限,这里就不再详细介绍了。

我们接下来需要定义 Botpress 的流程,以便我们的聊天机器人可以使用已经训练好的意图。我们需要创建一个 JSON 文件并将其命名为 flow.json,然后将其保存在 Botpress 的 flows 目录中。该文件的内容如下:

-- -------------------- ---- -------
-
  ----------- -
    ------- -------- ----
  --
  -------- -
    -
      ----- --------
      ------- --------
      ------- --------
      -------------- -
        -
          ------------- -------- -- -----------------------
          --------- -------
        --
        -
          ------------- ---------- -- -----------------------
          --------- ---------
        -
      -
    --
    -
      ----- --------
      ------- ---------
      ------- --------
      ------------- ---
      ------------ --------
      ------------ --------------
      ------------- --------
      ------------- --------------
      -------- ---
      -------------- -
        -
          --------- -----
        -
      --
      ----------- -----------
      -------------------------- -
        -
          ------- ----------
          ---------- -----
          ------------ -----------
          ----------- -----
          ---------- ------- - -- - ------- ---- --- --- - ---- --- -------
        -
      -
    --
    -
      ----- ----------
      ------- ---------
      ------- ----------
      ------------- ---
      ------------ --------
      ------------ --------------
      ------------- --------
      ------------- --------------
      -------- ---
      -------------- -
        -
          --------- -----
        -
      --
      ----------- -----------
      -------------------------- -
        -
          ------- ----------
          ---------- -----
          ------------ -----------
          ----------- -----
          ---------- ---- ------- -- ----- -------
        -
      -
    --
    -
      ----- ------
      ------- -------
      ------- ----------
      ----------- -----------
      -------------------------- -
        -
          ------- ----------
          ---------- -----
          ------------ -----------
          ----------- -----
          ---------- ----------
        -
      -
    -
  -
-

在这个 Botpress 流程中,我们定义了三个节点:startgreetweatherendstart 节点是流程的入口,并通过检查意图和转换条件来将会话路由到正确的节点。每个节点都包含了 Botpress 的动作定义,用于回复用户的问候和天气询问。最后,end 节点根据用户的交互结束了对话。

我们的聊天机器人现在已经准备好了。在启动 Botpress 之前,我们需要先启动 Rasa。我们可以在 Rasa 项目的根目录中使用以下命令来启动 Rasa:

运行以上命令以后,我们就可以启动我们的 Botpress 应用了。使用以下命令在本地启动 Botpress:

现在,访问 http://localhost:3000,聊天机器人就在那儿等着你了。在聊天框中输入“hi”或者“hello”,聊天机器人应该会向你问好并询问如何为你服务。试试输入“what's the weather like today”,聊天机器人会回答“太阳很大”。

总结

在这篇文章中,我们已经学习了如何使用 npm 包 botpress-rasa 来构建一个简单的聊天机器人。我们已经学习了如何使用 Botpress 的对话流程和 botpress-rasa 的 NLU 模型来实现上下文感知的聊天交互。通过这篇文章的内容,你可以掌握如何整合 Botpress 和 Rasa,从而为你的应用程序添加人工智能功能。希望这篇文章对你的学习和开发有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60057aeb81e8991b448eb6fd

纠错
反馈