Skip to main content
 首页 » 编程设计

python之如何将 Dialogflow 与 Django (Python) 集成

2024年08月15日41sky-heaven

我正在使用 Dialogflow 开发一个助手(机器人),我有这个 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') 
    

这就是我不知道如何在此之后继续进行的所有事情,我被阻止了,我不知道如何进行集成以及缺少什么,有什么建议吗?

请您参考如下方法:

步骤

  • 通过使用一个 url-endpoint 和 view 呈现它来为您的聊天机器人 UI 制作一个 html 文件,以显示您的 html 文件的目的,比如 bot.html。
  • 对于 dialogflow,我首先建议您根据需要构建一个 dialogflow agent。
  • agent 的 webhook 由您的 djangoserver 提供,通过 localtunnel 的 public IP 路由(用于开发目的使用像 ngrok 这样的本地隧道到你的 django 的 server)
  • 然后将此链接添加到 agent 的 fulfillment。

嘿,你可以引用这个LINK使用它你只需要

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