如何将Dialogflow与Django(Python)集成?

时间:2018-06-19 05:58:30

标签: python django machine-learning webhooks dialogflow

我正在使用Dialogflow开发助手(bot),我有这个Django项目,我必须提取数据然后通过机器人公开它,这将存储在本地平台。

我之前使用过Dialogflow及其集成,但是使用Node.js和Javascript,Django(python)是一个全新的挑战,我感到很困惑。

到目前为止,我有以下内容:

  • 我知道我可以使用此软件包执行此操作:https://github.com/dialogflow/dialogflow-python-client-v2
  • 我为webhook添加了一个url,现在这只在本地工作,如下所示:

    from django.http import HttpResponse
    from django.views.decorators.csrf import csrf_exempt
    import dialogflow
    
    
    @csrf_exempt
    def webhook(request):
        return HttpResponse('Works like a charm!')
    

    在urls.py中我有:

    url(r'^webhook$', views.webhook, name='webhook')
    

在此之后,我不知道该怎么办,我被封锁了,我不知道如何进行整合以及缺少什么,有什么建议吗?

1 个答案:

答案 0 :(得分:2)

步骤

  • 通过使用一个url-endpointview来呈现一个用于聊天机器人UI的html文件,以显示您的html文件的目的,例如说bot.html
  • 对于对话流,我首先建议您根据需要构建dialogflow agent
  • 由您的agent提供的djangoserver的Webhook,并与localtunnel's public IP路由(出于开发目的,请使用1之类的本地隧道到您的{{1 }} django's
  • 然后将此链接添加到server中的fulfillment

嘿,您可以使用此ngrok,只需使用

  • 创建一个agent,然后url-endpointview 它将接受机器人通过/chatbot请求发送的文本。然后将此AJAX传递给链接中上述函数中的参数text。但是请对该功能进行一些更改,例如不打印texts就返回它。
  • 然后,fulfillment text url-endpoint中的响应将由链接中的该函数返回/chatbot作为返回。
  • 如果要使用数据库的某些数据,则可以将fulfillmentText创建为普通数据库中的表,为此检查LINK。 那么您可以使用django-models等访问数据。