我一直在互联网和Dialogflow文档中寻找解决方案,但我无法弄清楚,对我朝正确方向的任何帮助表示赞赏。
我正在创建FB Messenger机器人,我想使用DialogFlow处理NLP。但是,我正在努力弄清楚如何将DialogFlow集成到我的Python应用程序中。
这是我想要的结果:
Bot: You have not recorded activity for 3-4pm today, what did you do?
User: I did jogging
Bot: Added "Jogging" to your calendar from 3-4pm
如您所见,机器人启动了对话,我相信使用DialogFlows FB集成是不可能的。这就是为什么我要使用PyMessenger创建一个Python机器人来处理FB集成的原因。
是否有使用Python获取实体和参数的方法?我在想类似的东西:
message = "I did jogging from 2pm-5pm"
result = dialogflow.message(intent="Update Day Tracker")
print(result)
{"activity": "jogging", "time-period": "2pm-5pm"}
这样,我可以处理Python应用程序中的大多数逻辑,而只需使用DialogFlow即可处理NLP。
这是我想到的唯一方法。请让我知道是否有更好的解决方案。
我发现了这一点:https://miningbusinessdata.com/initiating-the-conversation-from-dialogflow-a-summary/,但并没有涉及太多信息
它提到使用REST API创建您自己的集成-我认为这是我想要做的,但是我查看了Dialogflow REST API文档,但看不到任何允许我执行操作的请求我想做。
我们非常感谢您的帮助,如果您需要澄清,请告诉我。感谢您的宝贵时间。
答案 0 :(得分:1)
您接近了!您正在寻找的是使用Detect Intent in the REST API。这可以获取您从用户那里获得的文本,并确定最适合它的Intent并提取相关参数。然后它将返回匹配的Intent,该匹配的可信度,与该匹配关联的参数以及其他信息。如果触发了实现,则包括实现的结果。
如果您将python library用于Dialogflow,则设置和调用非常接近REST API。拨打电话并获得响应可能看起来像这样:
text_input = dialogflow.types.TextInput(
text=text, language_code=language_code)
query_input = dialogflow.types.QueryInput(text=text_input)
response = session_client.detect_intent(
session=session, query_input=query_input)
响应本身也将与REST query response相匹配。因此,要获取匹配的Intent及其参数,您可能会有类似的
intent = response.query_result.intent.display_name
parameters = response.query_result.parameters