【问题标题】:Facebook Messenger - ChatBot - wit.ai integrationFacebook Messenger - ChatBot - wit.ai 集成
【发布时间】:2016-11-05 10:06:09
【问题描述】:

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

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

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

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

我需要了解如何进行。

【问题讨论】:

标签: java facebook-messenger wit.ai facebook-chatbot


【解决方案1】:

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

【讨论】:

  • 您能否详细说明一下,nodejs 使用哪个服务器,facebook 和 wit 之间的集成是如何发生的,是通过服务器还是通过 API 本身。
【解决方案2】:

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

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

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

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

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

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

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

【讨论】:

  • 更新:使用 Messenger 平台进行测试时,您可能希望将消息中继到本地计算机。我发现像 ngrok 这样的隧道服务对此非常有帮助。
  • ngrok 是否适用于多个开发不同功能并在本地机器上单独测试其实现的开发人员?
  • 使用 ngrok 没有问题。限制在 Facebook 方面,因为您只能为每个应用指定一个 webhook url。这意味着您必须为每个使用 Messenger 平台的开发人员创建一个测试应用程序。这非常简单,因为测试应用程序是原始应用程序的子应用程序并继承它们的所有设置。这还有一个好处是每个开发者都可以在他们自己的应用程序上注册他/她自己的测试页面,避免将测试消息发送给所有开发者。
【解决方案3】:

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

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

您需要将该服务器访问代码粘贴到“集成 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。

【讨论】:

    猜你喜欢
    • 2017-04-26
    • 2016-12-02
    • 1970-01-01
    • 1970-01-01
    • 2017-08-01
    • 2016-09-10
    • 2020-02-26
    • 2021-08-16
    • 1970-01-01
    相关资源
    最近更新 更多