Facebook Messenger - ChatBot - wit.ai 集成

Facebook Messenger - ChatBot - wit.ai integration

我的应用程序 运行 在 AWS 上 tomcat 实例上 Java 代码和 mongodb 数据库。

我现在需要将其与 Facebook Messenger ChatBot 和 wit.ai 集成。

我真的很难开始,我找到了一些示例代码,但使用不同的语言。

我可以 运行 并在 Tomcat 上与我的门户网站 运行 集成吗?它应该同时调用 Facebook Messenger 和 wit api.

我需要获得关于如何继续的高层次想法。

您可以使用官方存储库中的 witai 和 facebook messenger 示例 nodejs 实现。首先,你要训练witai的模型来理解表达式和提取实体。然后在 fb 上设置 Messenger bot 并将其附加到某个 fb 页面。一旦您能够从 webhook 回调中获取消息,将它们发送到 witai API。您还必须在代码中定义操作,以便 witai 执行模型中定义的操作。

首先想想你的机器人应该做什么。它将提供什么功能,用户会问哪些问题,以及您希望如何回应这些问题。 如果您对自己的问题有一个大概的了解 space,您就可以开始考虑技术挑战了。

请注意,Messenger 平台和 wit.ai 都是完全独立的产品,它们都为其服务提供 HTTP 接口。这意味着您可以使用任何您喜欢的语言与这些平台进行交互。您的应用程序充当这些服务的中间人。

开始建立与 Messenger 平台的集成,以便您能够接收和发送消息。 为此,您必须创建一个 Facebook 页面作为您产品的标识。用户将通过您页面的名称在 Messenger 中找到您。您还需要创建一个 Facebook 应用程序,您可以在其中订阅您的页面并指定 webhook 设置,以便将消息中继到您自己的后端服务。

这方面的文档非常好,建议您仔细阅读。你可以找到它 here。 阅读文档后,您将很好地了解可以使用 Messenger 平台做什么以及可以发送和接收哪些类型的消息。

一旦您能够发送和接收消息,您就可以开始从中提取一些意义。为此,您可以使用 wit.ai,但您也可以考虑其他服务。例如 Google 刚刚发布了他们自己的 NLP 平台,该平台提供了类似的功能。参见 here 还有api.ai 通常,您必须将收到的消息发送到您喜欢的服务,并返回有关用户意图和提取的值的结构化信息。有了这些信息,您就可以采取相应的行动。

如果您想坚持使用 wit.ai,请阅读他们的入门指南和食谱部分。这使我能够使用他们的平台。

我希望这能让您大致了解集成的工作原理。这是相当高层次的,很多细节(尤其是在 NLP 方面)取决于您的具体用例。

要将 wit.ai 连接到您的 Facebook 页面,您只需使用 wit.ai 创建一个帐户,然后创建一个新应用程序(或使用默认的起始应用程序)。

然后您可以进入应用程序的设置,您将看到服务器访问令牌代码。

您需要将该服务器访问代码粘贴到字段 "Integrated NLP" 中,您可以在您的 Facebook for Developers 帐户中找到它,然后在 Messenger 的设置中访问您想要使用 NLP 的应用程序。为此,您必须已经创建了 Messenger 应用程序并配置了它的 webhook,我想您已经拥有了。

完成后,自然语言处理 (NLP) 将作为消息中的另一个字段自动发送到您的服务器。从 wit.ai

中理解和训练非常简单

用户的消息将由 wit.ai 分析,如果它发现任何默认实体或您从 wit.ai 训练机器人定义的实体,会将其发送到 Messenger , 而这个将在消息中插入 NLP。

因此,您将收到一条来自 Messenger 的正常 JSON 消息,其中包含一个名为 NLP 的额外字段,其中将包含类似于以下示例的内容:

"text":"reservar una pista","nlp":{"entities":{"tipo_cita":[{"confidence":0.98398202482107,"value":"pista","_entity":"tipo_cita"}]},"detected_locales":[{"locale":"es_XX","confidence":0.9935}]}}}]

我的聊天机器人是西班牙语的,但有一个示例说明如何在 JSON 消息中查看 NLP。

我介绍的文字:"reservar una pista"

它识别出值:"pista",置信度为 0.9839。 Wit 还检测到语言 "es_XX" 是西班牙语,置信度为 0.9935。