谷歌提供的dialogflow接口可以非常方便地提供自然语言处理,并很大程度的让使用者可以自行DIY。
这个项目就是尝试用这个接口,来非常简单地实现一个聊天机器人。
首先前端直接采用了Facebook提供的聊天窗口,既节省了前端开发的时间和精力,又是用现成的大平台。
所以我提供的代码主要为python写成的flask后端,再采用mongoDB来储存相应数据。
主要功能为可获取聊天窗口内用户键入的文本,将其NLP处理后发送至后端,根据文本内容查阅数据库并留下记录。
1.项目框架
Facebook messenger + dialogflow + Flask + MongoDB 配件:ngrok
2.项目执行流程
通过这个我画了几个小时的图,可以很清楚的知道整个代码运行流程。根据messenger和dialogflow的协议,用户可以很轻松地通过在两个平台分别授予权限,并勾选一些必要的选项之后,将两者链接起来(后面会提到如何链接messenger和dialogflow)。之后,可以开启dialogflow,实时从messenger的聊天窗口获取用户键入的文本。
文本会被传输到dialogflow平台,再根据我设置好的情况对文本进行关键字检索。当关键词满足固定条件。如同时出现“doctor”、“name”、“time”三个关键词entity时,就会触发webhook的action——“get_dentisttime”。
3.开发流程——后端
采用python的Flask框架为什么不用Django框架。一是Flask足够满足需求,二是Flask轻便开发快速
有机会也写个Spring框架的产物吧。
相关链接视频教程:当时录在了YouTube,有空也换到B站吧。点此进入YouTube相关链接www.youtube.com
2.项目源码:点此进入GitHub相关链接github.com