夯实机器人开发的基础-QnA Maker 使用指南

转载:AzureDeveloper

我们先来看一下微软提供的LUIS服务和QnA Maker服务之间的区别和使用场景。

LUIS和QnA Maker

QnA Maker和LUIS是微软Azure平台提供的两大自然语言处理的API, 我们前面有文章介绍了LUIS(语言理解服务), 简而言之, LUIS处理的场景是对用户输入的自然言语进行意图分类以及提取言语中的实体数据,但是并不会直接给用户进行一个回应,如果需要给用户一个回应,那么用户的应用需要基于已经确定的意图和实体数据向其他应用提出需求,然后基于业务逻辑返回给用户回应,这些业务逻辑的范围非常广,例如帮助客户创建日历,发送邮件,订酒店机票等等。但是QnA Maker是收集用户的言语输入,然后根据用户的言语输入直接会给出用户需要的答案,也就是说QnA Maker虽然也是自然语言处理的API, 但是QnA Maker的业务逻辑很单一,就是为了会话,根据用户的提问返回用户答案,无法完成其他的业务。这就是LUIS服务和QnA Maker最大的区别。

那么我们什么时候使用LUIS,什么时候使用QnA Maker呢?假如你需要更强的业务逻辑,更强的业务处理,只能选择LUIS, 如果是为了分享知识,回答问题,那么QnA Maker是好的选择,那么我们可以两者都使用吗?当然可以,假如你有一个机器人应用,既要回答客户问题,又要其他的业务支持,那么完全可以同时结合二者来使用,甚至微软的已经提供了一个的工具,无需您写代码,可以自动用该工具生成一个路由,您的应用直接引用就可以了,会自动判断是使用LUIS应用还是将查询发送到QnA Maker服务上。

QnA Maker的知识库(KB)

我们在创建QnA Maker时已经发现了,创建QnA Maker服务时,会同时创建以及的资源,同时我们确认不保存数据,它只是根据你提供的资料使用模型生成问答对以及使用模型分析用户的输入,由来提供数据保以及搜索的功能,比提供答案排名等功能。所以一个知识库就相当于一个的索引,因此能创建多少个知识库取决于您的定价层可以存储多少个索引数n-1, 加入您的最多支持15个索引,那么你的知识库最多就是14个。

QnA 问答对

刚刚我们讨论了QnA Maker服务本身不存储数据,数据的存储是在Azure Search中,那么Azure Search存储哪些数据呢?这里就需要提到我们这里概念,也就是QnA 的问答对,我们可以给出一个图片来说明这个问题,如下图:

QnA Maker模型的作用就是从用户提供的数据中自动判断并生成问答对,用户需要通过SDK(API)或者Portal给出的工具向QnA Maker提供数据,然后数据提交成功后,使用Portal上的工具保存并训练,最后发布到endpoint上即可。

QnA Maker支持的数据源

当前QnA Maker支持如下的类型的数据:

可以公开访问的Web URL

PDF/Word文档: 包括常见问题解答,产品手册,小册子,论文,传单,使用指南,结构化的问答等等。

Excel 文档

SharePoint 文档或者URL

TxT文档

在QnA Maker Portal上编辑的问答对。

用户可以使用SDK(API)将这些文档上传到QnA Maker中,同时再保存和训练就可以了。

QnA 问答对支持的特性

我们除了可以直接向QnA Maker里添加问答对之外,为了更加精确的返回结果和适应更多的使用场景,QnA Maker问答对支持更多的特性。

打开APP阅读更多精彩内容