从零开始玩人工智能-机器人服务-03

简介:

    机器人服务应该是个比较容易上手的AI服务,发展也非常的快。距离我之前写的随笔没多久吧,已经从原来的独立站点,变为Azure中的Bot Services了。而且支持的机器人种类也更加清晰和增多了。

    更新的Bot Service的文档可以看到,现在机器人可以分为五类。之前我尝试的应该是Basic类和Form类,而上次没来得及尝试的语义识别单列了Language类,主动触发机器人服务是Proactive类,而今天想玩的是QnA Maker类机器人。

Template Description
Basic Creates a bot that uses dialogs to respond to user
input.
Form Creates a bot that collects input from a user via a
guided conversation that is created using FormFlow in C#
or waterfalls in
Node.js.
Language understanding Creates a bot that uses natural language models
(LUIS) to understand user intent.
QnA Maker Creates a bot that uses the QnA Maker service to
answer user’s FAQs.
Proactive Creates a bot that uses Azure Functions to alert
users of events.

     QnA Maker的站点在:https://qnamaker.ai/ 这个站点很简洁,但是需要的信息都有了。QnA机器人应用场景类似问题和答案简单匹配,其实大部分的对话机器人和这个类似。结合其他的功能,比如Card,比如分支,就会让机器人流光溢彩。我觉得QnA应该是快速让机器人具备回答问题的最佳选择吧,至少比我上次写一堆代码来做人机交互快多了。站点提供了一张图来说明QnA机器人的逻辑,可从多种来源输入问题/回答,并将机器人服务连接到不同的频道。问题/回答可以提供索引和评分,便于机器人不断学习和优化回答。

clip_image001

    对于QnA机器人,我初步打算做两个测试,第一,尝试使用QnA机器人建立一个KB自动答复。对于常见的问题,构建一个框架让机器人自动根据提问提供解决问题的KB文章。第二,尝试把这个机器人放到Azure的Bot Service上。

    QnA Maker使用两个UUID管理不同的机器人,首先要有一个订阅ID,才能够访问QnA的服务。其次每个QnA服务都有个KB ID,这样就能把不同用处的机器人分开了。每个服务都可以对指定的用户进行授权。

    为机器人准备问题/答案并训练它再简单不过了,在QnA Maker网站上就可以导入QnA的文本文件。文本文件的格式也非常简单,前面是问题,使用Tab分隔,然后是答案。导入文件后,点击“保存并训练”,导入的内容就被服务接受了。然后你在服务中就能够看到导入的问题/答案了。有了问题和答案,马上就能在TEST页面进行测试。

image

    看到这里,估计你会说,这哪里看得出人工智能了?我写个脚本按照输入查找输出字符串不就搞定了?请仔细观察上图哦~ 第一次提问,我是按照导入的完整问题输入的,很准确的给出了预设的答案。第二次提问,我只输入了几个关键字哦,QnA服务自己进行了匹配,给出了最接近的答案。

    实际上QnA服务确实会对答案进行评分,从它返回的JSON格式就能看出来。对于QnA的Service使用方法,给了一个非常好的说明站点和Swagger实现。例如,调用服务来做应答,就可以使用POST方法,具体可以参考:

https://westus.dev.cognitive.microsoft.com/docs/services/58994a073d9e04097c7ba6fe/operations/58994a073d9e041ad42d9ba9

    除了在QnA站点的Test页面,使用Swagger可以也很快的验证你的机器人。   

image

    输入你的订阅ID和机器人对应的KB ID,内容类型使用JSON。

image

    页面会按照提供的信息自动构造HTTP请求。

image

    点击发送后,QnA Maker Bot服务就会给出响应,对于可能的响应都给出了具体说明。

    方法很简单,所以写一个Python的实现也不难(虽然Pylint给示例代码打了个无比负的分哈哈)

image

    可以看到,代码返回的HTTP响应和之前Swagger测试的一致,同样包含问题、答案和评分。

    回到导入问题/答案导入的环节。需要注意的是,开始我发现每次导入文件时,中文都变成了乱码,我立即意识到,默认的notepad使用的ANSI编码可能有问题。改成UNICODE就正常了。

    除了使用TXT导入之外,QnA Maker的Service还支持添加URL,对于自动导入以前的QnA页面也非常方便。这个方式我是在测试Create Knowledge Base的POST方法时发现的,示例直接添加了文档的QnA页面:https://docs.microsoft.com/en-in/azure/cognitive-services/qnamaker/faqs

    我还奇怪它是如何识别问题和答案的,后来发现起作用的是问号~ 为了验证,我把TXT文本改成类似的格式,导入也成功了。

    限于篇幅,后续再继续写Azure Bot Service部分和学习Node.JS部分。



     本文转自HaoHu 51CTO博客,原文链接:http://blog.51cto.com/haohu/2064359,如需转载请自行联系原作者





相关文章
|
1月前
|
人工智能 自然语言处理 API
Google Gemma 模型服务:开放的生成式 AI 模型服务
Google Gemma 模型服务:开放的生成式 AI 模型服务
109 4
|
1月前
|
机器学习/深度学习 人工智能 搜索推荐
云知声蓝藻AI服务升级
【2月更文挑战第20天】云知声蓝藻AI服务升级
41 1
云知声蓝藻AI服务升级
|
2月前
|
人工智能 自然语言处理 搜索推荐
魔搭ModelScope社区作为一个AI模型开源平台,提供了丰富的模型资源和便捷的服务
【2月更文挑战第9天】魔搭ModelScope社区作为一个AI模型开源平台,提供了丰富的模型资源和便捷的服务
144 3
|
11天前
|
人工智能 自然语言处理 机器人
|
24天前
|
人工智能 监控 Serverless
如何基于ACK Serverless快速部署AI推理服务
通过上述步骤,可以在ACK Serverless上快速部署AI推理服务,实现高可用、弹性扩展的服务架构。
19 1
|
1月前
|
人工智能 机器人 芯片
英伟达最强 AI 芯片、人形机器人模型炸场!黄仁勋放言英语将成最强大编程语言
在2024年的GTC大会上,英伟达创始人黄仁勋揭幕了新一代AI芯片Blackwell,号称是史上最强AI芯片,目标是推动AI领域的重大进步。
|
1月前
|
人工智能 机器人 Go
人类发明及研究AI机器人是在作死吗?
生化武器、X战警,当时看电影时只是感觉电影很精彩,佩服导演的脑洞大,制作团队技术精湛。但自从 alpha go、chatGPT 越来越多的AI 场景被大众认知,越来越相信总有一天这个美丽的蓝色星球未来的主人会变成机器人,人类将不复存在。
41 3
|
1月前
|
人工智能 自然语言处理 安全
F5怎么样?保障AI服务的安全性和交付
F5怎么样?保障AI服务的安全性和交付
24 2
|
1月前
|
机器学习/深度学习 人工智能 算法
海尔、乐聚联手,发布国内首款家庭服务人形机器人
近日,乐聚机器人在全网了发布了一段人形机器人进入家庭干活的视频,视频中机器人进入家庭开始学习并执行洗衣、浇花、插花、晾衣服等任务。 据悉,这是海尔、乐聚机器人在面向家庭场景应用的首次探索,目前这款机器人也正在2024年中国家电及消费电子博览会(简称:AWE)上联合展出。
|
1月前
|
人工智能 搜索推荐 UED
京东推出“AI 全能服务包”,帮助商家免费生成图文、视频和直播
【2月更文挑战第21天】京东推出“AI 全能服务包”,帮助商家免费生成图文、视频和直播
50 1
京东推出“AI 全能服务包”,帮助商家免费生成图文、视频和直播