在前端开发过程中,我们常常需要将自然语言处理(NLP)技术应用到我们的应用程序中。人工智能(AI)领域的 Rasa 是受欢迎的 NLP 框架之一,它允许我们构建有上下文的聊天机器人。现在,我们有一个 npm 包,可以将 Rasa 整合到我们的应用中。这个包就是 botpress-rasa。在这篇文章中,我们将会学习如何使用这个包来构建一个聊天机器人。
botpress-rasa 简介
botpress-rasa 是一个 Rasa 在线学习模块,它可以与 Botpress 集成,使得我们可以使用 Rasa 的自然语言理解(NLU)模型,以及 Botpress 的对话处理模块,从而为我们提供一个完整的聊天机器人解决方案。
安装 botpress-rasa
要使用 botpress-rasa,我们首先需要安装 Botpress。这可以通过使用以下命令完成:
npm install -g botpress
完成安装以后,我们可以使用以下命令在本地创建一个新的 Botpress 应用:
botpress init my-bot
现在,我们需要安装 botpress-rasa。这可以通过使用以下命令完成:
npm install botpress-rasa
安装完成以后,我们需要编辑 Botpress 的配置文件。在 my-bot/config/botpress.config.json
中,我们需要添加 botpress-rasa 插件的配置,如下所示:
{ "modules": { "botpress-rasa": { "rasaEndpoint": "http://localhost:5005" } } }
rasaEndpoint
配置项指定了 Rasa 的端点。如果你在本地启动了 Rasa,那么你需要指定 http://localhost:5005
。如果你使用的是 Rasa 的云端服务,那么你需要指定相应的端点。
现在,我们就完成了 botpress-rasa 的安装和配置。接下来,让我们看一下如何使用 botpress-rasa 来构建一个聊天机器人。
构建一个聊天机器人
我们将创建一个简单的聊天机器人,该机器人可以向用户介绍自己,并回答有关天气的问题。我们将使用 Botpress 的对话流程和 botpress-rasa 的 NLU 模型。
在开始之前,我们需要在 Rasa 中创建一个 NLU 模型,并将其导出到 models/nlu
目录中。有关如何创建 Rasa NLU 模型的详细信息,请参阅 Rasa 文档。
我们的聊天机器人将包含以下两个意图:
- greet:问候 - weather:询问天气
让我们编写一个 intent training 用于训练意图。我们需要创建一个 JSON 文件并将其命名为 intents.json
,然后将其保存在 Botpress 的 content/en
目录中。该文件的内容如下:
-- -------------------- ---- ------- - -------- - ----------- - --- ------- -------- ------ ----- ---- ------- ------ ------- ----------- - -- ---------- - ----------- - ------- --- ------- ---- -------- ------- --- ----------- -------- --- -- --- -------- ------ --- ------- -------- ---- ---- -- -- ---------- ------- --- ------- ---- -- --- ------ - - -
在 intent training 文件中,我们定义了两个意图,并为每个意图提供了一些可能性模式。通常情况下,我们可能需要添加更多的模式。由于篇幅有限,这里就不再详细介绍了。
我们接下来需要定义 Botpress 的流程,以便我们的聊天机器人可以使用已经训练好的意图。我们需要创建一个 JSON 文件并将其命名为 flow.json
,然后将其保存在 Botpress 的 flows
目录中。该文件的内容如下:
-- -------------------- ---- ------- - ----------- - ------- -------- ---- -- -------- - - ----- -------- ------- -------- ------- -------- -------------- - - ------------- -------- -- ----------------------- --------- ------- -- - ------------- ---------- -- ----------------------- --------- --------- - - -- - ----- -------- ------- --------- ------- -------- ------------- --- ------------ -------- ------------ -------------- ------------- -------- ------------- -------------- -------- --- -------------- - - --------- ----- - -- ----------- ----------- -------------------------- - - ------- ---------- ---------- ----- ------------ ----------- ----------- ----- ---------- ------- - -- - ------- ---- --- --- - ---- --- ------- - - -- - ----- ---------- ------- --------- ------- ---------- ------------- --- ------------ -------- ------------ -------------- ------------- -------- ------------- -------------- -------- --- -------------- - - --------- ----- - -- ----------- ----------- -------------------------- - - ------- ---------- ---------- ----- ------------ ----------- ----------- ----- ---------- ---- ------- -- ----- ------- - - -- - ----- ------ ------- ------- ------- ---------- ----------- ----------- -------------------------- - - ------- ---------- ---------- ----- ------------ ----------- ----------- ----- ---------- ---------- - - - - -
在这个 Botpress 流程中,我们定义了三个节点:start
、greet
、weather
和 end
。start
节点是流程的入口,并通过检查意图和转换条件来将会话路由到正确的节点。每个节点都包含了 Botpress 的动作定义,用于回复用户的问候和天气询问。最后,end
节点根据用户的交互结束了对话。
我们的聊天机器人现在已经准备好了。在启动 Botpress 之前,我们需要先启动 Rasa。我们可以在 Rasa 项目的根目录中使用以下命令来启动 Rasa:
rasa run
运行以上命令以后,我们就可以启动我们的 Botpress 应用了。使用以下命令在本地启动 Botpress:
botpress start
现在,访问 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