如何将Dialogflow与Django python集成并使用RESTful API?

时间:2018-11-26 08:43:04

标签: python django django-rest-framework dialogflow chatbot

大家好,我目前正在使用Google的Dialogflow开发聊天机器人,我确实需要帮助。

我已经看过How to integrate Dialogflow with Django (Python)?,但是我仍然感到困惑,我也不知道下一步该怎么做。我们的 Django项目已经设置好,并且我已经在Dialogflow中创建了 agent ,我还学习了如何使用 ngrok 连接Dialogflow。实现/网络挂钩。我也是 Django python 的新手,而这些只是我到目前为止所做的事情。

我已经搜索了几乎(如果不是全部)关于如何使用RESTful API将 Dialogflow 集成到 Django python 的教程/文章/视频,我发现了没有。大多数教程使用 Flask NodeJS 作为后端。

尽管本教程使用 Flask https://www.pusher.com/tutorials/chatbot-flask-dialogflow/,但我尝试这样做只是为了对如何将dialogflow集成到后端并调用RESTful API有所了解。我设法复制了本教程中所做的事情,但是不幸的是,由于我很陌生,所以我不理解后端的编码部分或设置Webhook的代码。

我现在真的迷失了,我真的不知道在 backend(Django)中编码什么,以便将 RESTful API 连接到 Dialogflow 。非常感谢你们的帮助,并给出了一些详细的代码解释或分步介绍如何将Dialogflow与Django集成并使用RestFUL API。

1 个答案:

答案 0 :(得分:0)

虽然您可以使用Dialogflow Python API进行文本请求,但我个人仅使用其POST接口。因为对我来说使用起来更简单。好处是,您无需弄乱网络挂钩。

所有您需要的是Dialogflow控制台中的客户端访问令牌。 上面写着:YOUR_CLIENT_ACCESS_TOKEN',您只需输入访问令牌即可。

然后,您可以像这样发送HTTP POST请求:

curl \
https://api.dialogflow.com/v1/query?v=20150910 \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_CLIENT_ACCESS_TOKEN' \
-d '{
  "lang": "en",
  "query": "I need apples",
  "sessionId": "12345",
  "timezone": "America/New_York"
}'

https://dialogflow.com/docs/reference/agent/query

我通常使用Python的“请求”包,您可以通过

安装该包
pip install requests

Requests example

我认为它非常漂亮且易于使用。 仅当您要使用的功能不仅仅是向Dialogflow发送查询(例如,添加或删除Intent)时,您将需要的不止于此。但是出于您的目的,这就足够了。 希望对您有所帮助,请随时提出更多信息。