使用 Dialogflow
Dialogflow 是一个 Google 的开发工具,主要作用是进行自然语言处理的服务,能在不需撰写程序的状况下,透过 Dialogflow 快速打造聊天机器人,这篇教学会介绍如何使用 Dialogflow,并在 Dialogflow 里建立语意的数据库,快速完成一个简单的聊天机器人。
快速导览:
认识 Dialogflow
Dialogflow 的前身是 Speaktoit 的 Api.ai,是一个 Google 的开发工具,在 Dialogflow 里可以加入许多的对话“意图 Intent”,每个意图可以包涵许多不同的语句,例如“今天天气好吗?”和“今天天气如何?”是属于“问天气”的对话意图,透过许多的语句,就能进行自然语言的处理,例如就算语句数据库中没有“天气怎么样”这句话,输入时仍然会将其归类到“问天气”的对话意图里,当建立了足够的语句和意图,机器人就很容易理解人类所讲的“自然语言”。
建立意图数据库之后,Dialogflow 提供许多聊天机器人的串接方式,例如 Facebook、Slack、LINE...等,只要简单几个步骤,就能在各大平台上创建聊天机器人,此外,Dialogflow 也支援串接 Webhook,可以让用户在聊天时串接自己的服务,透过自己的服务进行更多后端的应用,例如爬虫、分析...等。
Dialogflow 提供“基本免费”的使用 ( ES Agent Trial Edition 版本 ),但如果请求数 ( request ) 数过多,或需要额外串接 Google Cloud 相关服务,就必须要负担额外的费用,相关费用可以参考:Dialogflow 定价
开始使用 Dialogflow
前往 Dialogflow 平台,使用自己的 Google 账号登录 ( 第一次使用需要先同意条款 )。
Dialogflow:https://dialogflow.cloud.google.com/
进入后,点击“Creat Agent”就可以建立第一个聊天代理人 Agent。
建立 Agent 时需要输入名称、设定语系 ( 如果聊天机器人的主要自然语言为中文,就选择中文语系 )、设定时区 ( 如果在台湾就设定为香港时区 )。
完成后如果出现 Intents 的页签内容,左侧也出现各种选单,表示 Agent 已经建立完成。
建立对话意图 ( Intent )
点击 Intents 页签,从中可以建立“对话意图”,对话意图 Intent 的意思是“某一段话代表什么意思”,例如“早安”、“大家早”、“Good morning”这三句话都可以看做“说早安”的对话意图,在 Dialogflow 里默认有 Default Fallback Intent 和 Default Welcome Intent 两组对话意图。
Default Fallback Intent 表示“未知的意图”,也就是如果无法解析传送消息的意图,就会归类到这一类,这时 Agent 就会从下方所列的消息里,自动选择一个进行回复 ( 在 Responses 区块按下 + 号就可以增加回复的消息 )。
Default Welcome Intent 表示“欢迎意图、打招呼意图”,也就是如果输入了“嗨”、“哈啰”之类的打招呼语句,Agent 就会从下方所列的消息里,自动选择一个进行回复 ( 在 Responses 区块按下 + 号就可以增加回复的消息 )。
除了 Default Fallback Intent,Default Welcome Intent 和其他所有新建立的 Intent,都需要在 Training Phrases 区块加入词句进行训练,例如原本的欢迎意图中没有 hi 和 hello,就可以将其加入。
了解原理后,就可以尝试建立一个名为 Weather 的“问气象意图 Intent”,内容只要输入的寻问气象相关的语句,就会回答简单的对应消息。
机器人聊天测试
对话意图完成后,从右侧上方的 Try it now,就可以输入一些询问的语句,输入后就会看见机器人自动回复,如果有发现一些语句不符合意图,就可以返回相关的 Intent 进行修改。
小结
能够用 Dialogflow 进行一问一答的功能后,接下来就可以开始串接自己后端所建立的 Webhook,或是使用 Dialogflow 本身的功能串接 LINE、Facebook...等平台服务。
延伸阅读:
微信扫码关注
抖音扫码关注