Facebook Messenger - ChatBot - wit.ai集成

时间:2016-07-03 16:03:41

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

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

我现在需要将它与Facebook messenger ChatBot和wit.ai进行整合。

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

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

我需要对如何继续进行高级别的了解。

3 个答案:

答案 0 :(得分:1)

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

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

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

我介绍了文字:“储水罐pista”

它识别出值为:“ pista”,置信度为0.9839。机智还检测到西班牙语的“ es_XX”语言,其置信度为0.9935。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

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

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

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

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

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

我希望这能让您全面了解集成如何发挥作用。这是相当高级的,许多细节(特别是在NLP方面)取决于您的具体用例。