使用 DialogFlow、Node.js 和 React 构建聊天机器人

对我们人类来说,交谈是第二天性。 它对我们来说很自然,但对于机器人来说却不能这样说。 即使是一个简单的问题,例如“你今天过得怎么样?”,也可以用几种方式重新表述(例如,“最近怎么样?”、“你好吗?”),机器人通常无法理解这些问题。

我们可以解释问题背后的意图,但是构建逻辑以促进与机器人进行更智能的对话,而且对于大多数开发人员来说,从头开始编写代码是不可行的。

好吧,幸运的是,有一种叫做 NLU(自然语言理解)的东西,它可以实现更好的人机对话——换句话说,一个利用机器学习和其他技术更好地理解人类交互的智能聊天机器人。

NLU 算法不仅可以识别文本,还可以解释其背后的意图。 因此,它是聊天机器人的理想算法。 阅读有关 NLU 在此处 的更多信息。

这就是本文的目的所在。我们将使用 Google 的 NLU 平台 DialogFlow 构建我们的聊天机器人。 继续阅读以了解有关 DialogFlow 的更多信息,以及如何通过本后续教程将其集成到 React 应用程序中。

  • 开始使用 DialogFlow

  • 什么是代理?

  • 什么是意图?

  • 添加常规意图

  • 连接 NodeJS 服务器

    • 建立我们的服务器<

    • 公开服务器

    • 启用网络钩子

  • 验证

    • DialogFlow ES:通信集成

    • 将 Kommunicate 聊天小部件集成到 React 应用程序中

开始使用 DialogFlow

简单来说,DialogFlow 是一个由 NLU 提供支持的端到端工具,用于设计聊天机器人并将其集成到我们的界面中。 它使用由我们提供的语言训练的机器学习 (ML) 模型将自然语言翻译成机器可读的数据。 它是如何工作的? 让我们在构建聊天机器人的同时学习。

打开 DialogFlow 控制台并使用您的 Google 帐户登录。 登录成功后,我们看到如下界面:

可能引起您注意的第一件事是 创建代理 选项。

什么是代理?

没有什么花哨! 聊天机器人本身就是一个代理。 收集用户的查询,对其进行操作,最后发送响应都由我们的代理处理。


超过 20 万开发人员使用 LogRocket 来创造更好的数字体验 了解更多 →


让我们创建我们的聊天机器人; 例如,咖啡店的机器人怎么样? 猜测我的咖啡店灵感没有奖品。

这就是控制台现在的样子:

现在,屏幕上出现了更多的行话—— 意图 。

什么是意图?

控制台说,“意图是用户查询和您的软件实现的操作之间的映射”。 那么这是什么意思?

Let me explain: in the case of our bot, we expect to receive queries like, “I would like a cappuccino” and, “When does the shop open?”, etc. We can categorize these queries into user intentions such as “Take Order”, “Timings”, etc. To handle them, we define these categories as intents in our agent.

We also see that our agent comes with two default intents; Default Welcome Intent and Default Fallback Intent. Let’s explore them in a little more detail:

这里有很多行话; 让我们一一介绍:

上下文

在人类对话中,要理解短语,我们通常需要一些上下文。 同样,对于机器人,意图需要知道查询的上下文。 为了使这成为可能,我们通过上下文连接一个或多个意图。 我们将在本文后面部分了解更多信息。

训练短语

这些是用于训练和帮助我们的代理以正确意图匹配查询的示例短语。 更多的短语和变体将提高意图匹配的准确性。

通过查看默认的短语列表,很明显这个意图是用来向我们的用户打招呼的。

活动

我们刚刚了解到代理会寻找训练短语来触发意图。 但是,意图也可以由事件触发。 有两种类型的事件:

  • 平台事件 :这些由平台本身提供,并在特定于平台的事件发生时发生(例如, 欢迎 事件)

  • 自定义事件 :这些是由我们定义的(例如,我们进行的 API 调用的响应)

动作和参数

一旦查询与正确的意图相匹配,接下来就是对其采取行动。 为了采取行动,有时我们需要从查询中提取一些数据。 为了提取,我们用实体类型定义参数。 举个例子:“咖啡店今天开门吗?”&

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pxr007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值