课时1:简单对话场景搭建和云小蜜接口集成(三)|学习笔记

本文涉及的产品
函数计算FC,每月免费额度15元,12个月
简介: 快速学习课时1:简单对话场景搭建和云小蜜接口集成

开发者学堂课程【3节课走进云小蜜产品:课时1:简单对话场景搭建和云小蜜接口集成】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/298/detail/3495


课时1:简单对话场景搭建和云小蜜接口集成(三)


六、开发新场景实例

首先点击新建对话流单元:

image.png

用系统内置的模板来进行快速配置:

选择无分支空白模板,名称设置为查火车票。点击确定进入画布:

image.png

由于选择的是无分支空白模板,所以此时已经自动创建出了用户说节点,填槽节点,函数节点,回复节点:

image.png

买火车票场景需要多轮交互,首先需要用户表达查火车票的意图,然后机器人访问用户收集参数:出发地、目的地、出发日期,收集到信息之后,机器人调用12306接口获取符合这三个信息的火车票都有哪些,然后将答案告诉用户。以上就是所有流程。首先配置用户说节点:

image.png

填槽节点:

函数节点:

回复节点:

在该流程当中,首先用户说要查车票,然后机器人与人进行多轮交互,收集所涉及到的参数。收集到参数之后,机器人就会查询当前给定信息下的火车票信息。查询完成之后,告诉用户已经查询到的火车票有哪些,以上就是买火车票流程:

接下来需要将每个节点的具体配置内容完善。用户说节点:

在用户说节点当中需要配置意图。也就是用户说什么样的话术能够表达该意图,同时需要配置该意图当中所涉及到的参数。所以新建意图:意图名称为查火车票。新增用户话术,也就是用户说什么样的话可以触发该意图。例如“我要查火车票”,“帮我买一张火车票” 等等:

话术配置完成之后,点击确定:

此时用户说节点已经与意图产生了关联:

当用户所说的话满足了查火车票的意图时,流程就会进行到用户说节点,并且继续向下进行。接下来会进行到集参数节点,参数在意图当中定义点击意图的低低设置。此处定义语义词,语义词就是为了达成意图,机器人需要向用户收集的信息。例如该场景当中需要收集出发地,目的地和出发日期,也就是两个地址类型的参数和一个日期类型的参数:

例如用户可能会说“我要查从明天北京出发到天津的火车票”,此时该话术当中包含了三个所需要的信息,系统做自定义推荐之后会发现可能需要收集的参数有哪些,就会将其提示出来。例如要收集地级市作为出发地,收集地级市作为目的地,收集日期作为出发日期,

此时可以给参数更换名字:

由于机器人自带实体识别的能力,例如会识别出用户的话语当中的北京是一个地级市,天津市一个地级市,明天是时间,会用该能力识别出所需要的信息,此时为该意图定义了三个参数。接下来,在收集参数当中可以选择关联查火车票意图,此时要查的三个参数都被列出:

接下来需要关心的是如何让机器人访问得到这三个参数,例如设置反问问题“您从哪里出发?”,“您到哪里去?”,“哪天出发?”:

针对每一个参数设置了反问话术,用于询问用户该三个参数:

接下来是HTTP接口,HTTP接口就是收集完三个参数之后,通过三个参数去查询接口,查询满足出发地是北京,目的地是天津,时间是明天的火车票有哪些。可以在阿里云的云市场当中查询到许多API,以下是在阿里云市场搜索到的火车票查询的API:

如果是制作demo,还有免费的限额。在下方有调用的说明,例如调用接口的URL是什么,需要传哪些参数,例如火车票查询当中需要传出发地,到达地和时间三个参数,此时只需要将参数传入,就会有返回列表,返回所有满足条件的火车票,只需要让机器人将该结果返回给用户即可。

但其中存在一个问题,机器人返回的是 JSON,但不能将 JSON 直接返回给终端用户,用户体验不好,需要机器人将话术组织,组织为从北京到天津明天的火车票有 G34、G32 等等,所以需要对函数进行后处理,此时可以使用阿里云函数计算控制台:

在此处可以使用无服务的概念,快速开发 HTTP 接口,该 HTTP 接口当中可以做任意事情。新建服务,

新建函数:

进行简单的代码编写之后就可以快速实现 HTTP 接口。此时所展示的代码当中调用的是火车票查询接口,得到结果之后,对结果进行了修改,集合返回了 type、name 和火车班次,将其作拼接,给用户更友好的体验。因为希望呈现的答案是:

北京到天津明天的班次有高铁 g34,高铁 g32。

函数完成之后能够进行快速调试。以下是函数 url:

https://1942022723137282.cn-shanghai.fc.aliyuncs. .com/2016-08-15/proxy/news. headline. service/train. ticket function/

可以点击复制到其他地方。此时定义了三个参数,分别是 depart _city、Arrive_city和 date。传入对应的值北京,杭州,2020-08-20:

执行完成之后,函数的返回符合预期结果:

以上就是自行封装的 HTTP 的返回结果。在该 HTTP 内部可以再加入一些代码,调用其他 HTTP 或做其他更丰富的事情,例如访问阿里云的数据库或发消息队列,发信息都可以在计算代码当中完成。该函数计算为机器人开通了另一片天地,可以做任何用户想做的事情,只需要不超时即可。此时可以单点调试完所有HTTP接口之后。将链接复制,在函数节点粘贴通过函数计算开发的服务:

并且将参数传入:

需要将意图当中收集好的参数作为 HTTP 接口的参数传给接口,所以需要引用,引用完成之后修改名称。可以通过“$” 的方式引用意图当中的参数: 出发地、目的地和出发日期。此时将收集到的三个参数作为 HTTP 集合请求发给 HTTP 接口。此时在回复节点中设置回复文本:“符合条件的火车票有:”,将函数的返回值进行拼接,拼接成完整的答案,返回给用户。

保存之后进行测试:

用户说“我要查火车票”

机器人回复“你从哪里出发?”

用户说“北京”

机器人回复“你到哪里去?”

用户回复“杭州”

机器人回复“哪天出发?”

用户回复“明天”

此时机器人列出所有符合条件的火车票班次:

点击查看详情,可以查看每一轮对话的详情:

例如最后一轮已经收集到的槽位是:出发地是北京,目的地是杭州,出发日期是明天,明天被解析为2020年8月12日,在详情当中有调用情况:调用了 HTTP 接口以及请求参数,函数返回值等等详细的信息帮助给用户调试。此时流程开发完毕,简单的多轮对话能够让机器人帮助用户通过收集用户参数,出发地、目的地和时间,帮助用户

查询到高铁的情况。


七、总结

首先需要定义对话的框架:

也就是说需要制作的多人对话的框架是怎样的,用户表述,希望机器人和用户收集何种参数以及机器人是否要采取一些动作,例如查询接口做运算等等,以及机器人应该给予什么样的回复。以上就是简单的线性基于填槽的流程。可以丰富用户场景,两个较为实用的工具:

1.阿里云市场可以搜索到许多有用的 API,有些是免费,有些是收费,可以根据用户需要使用;

2.函数计算,可以在函数计算的控制台上创建服务函数,在其中可以写简单的脚本函数,做任何想做的事,完成所需要的数据处理及格式处理或是第三方数据的查询,数据的存储等等。函数能力赋予了机器人无穷无尽的想象力,基本上可以完成任何事情,例如调用接口控制电视机或空调的开关或者调用接口查询信息,例如查询用户的账户余额或其他信息,甚至可以做数据的读写,将一些数据放到阿里云 OSS 或数据库上,函数计算赋予了机器人较强的能力。也可以靠开发者的想象力和开发能力扩展。

最后可以定义机器人的回复,以上就是简单的多轮对话场景。后续课程会介绍较为复杂的场景以及效果调优。

相关实践学习
阿里巴巴智能语音交互技术与应用
智能语音交互,是基于语音识别、语音合成、自然语言理解等技术,为企业在多种实际应用场景下,赋予产品“能听、会说、懂你”式的智能人机交互体验。适用于多个应用场景中,包括智能问答、智能质检、法庭庭审实时记录、实时演讲字幕、访谈录音转写等。 本课程主要讲解智能语音相关技术,包括语音识别、人机交互、语音合成等。  
相关文章
|
3月前
|
NoSQL Java Redis
SpringBoot集成Redis解决表单重复提交接口幂等(亲测可用)
SpringBoot集成Redis解决表单重复提交接口幂等(亲测可用)
450 0
|
3月前
|
存储 JSON Java
SpringBoot集成AOP实现每个接口请求参数和返回参数并记录每个接口请求时间
SpringBoot集成AOP实现每个接口请求参数和返回参数并记录每个接口请求时间
124 2
|
26天前
|
XML JSON API
开发者必备:淘宝商品列表接口集成全攻略
淘宝开放平台提供的商品列表数据接口让开发者编程获取商品列表数据。接口支持按关键词、类目等查询条件获取商品详情,包括标题、价格等信息。具备灵活性高、数据丰富及操作便捷等特点。使用流程包括注册账号、构建并发送HTTP请求及处理响应数据。可用于电商数据分析、商品推荐等场景。开发者需遵守规定确保数据安全合法。[体验API](c0b.cc/R4rbK2)
|
1月前
|
SQL Java 数据库
实时计算 Flink版产品使用问题之Spring Boot集成Flink可以通过什么方式实现通过接口启动和关闭Flink程序
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
1月前
|
XML Java 数据格式
支付系统----微信支付20---创建案例项目--集成Mybatis-plus的补充,target下只有接口的编译文件,xml文件了,添加日志的写法
支付系统----微信支付20---创建案例项目--集成Mybatis-plus的补充,target下只有接口的编译文件,xml文件了,添加日志的写法
|
2月前
|
监控 安全 机器人
|
3月前
|
存储 异构计算
System Generator学习——使用 AXI 接口和 IP 集成器(三)
System Generator学习——使用 AXI 接口和 IP 集成器
50 3
|
3月前
|
算法 数据安全/隐私保护 异构计算
System Generator学习——使用 AXI 接口和 IP 集成器(一)
System Generator学习——使用 AXI 接口和 IP 集成器
43 3
|
3月前
|
存储
System Generator学习——使用 AXI 接口和 IP 集成器(二)
System Generator学习——使用 AXI 接口和 IP 集成器
40 2
|
3月前
|
弹性计算 Cloud Native 数据库
OpenLDAP+IDAAS+云SSO集成场景
上周拜访两家客户,有一家是IDAAS的重度用户,在使用Flink产品时发现不支持RAM Role,只能使用RAM User来管理用户,客户问在这种场景下IDaaS如何支持;另外一家用户使用了OpenLDAP来做企业的IDP,现在想使用云SSO来做多账号统一用户身份管理。本篇文章介绍一下这三个产品集成...
OpenLDAP+IDAAS+云SSO集成场景