如果意图之间的引导需要通过函数解决,怎么办?
dora的叔叔 发布于2017-07 浏览:1626 回复:2
0
收藏

以注册为场景,比较容易说明我的意思。

需求:

1. 用户的某些话语激活了注册/登录意图,此时需要判断,这个用户是否是已登录用户,如果登录应该引导至“提供服务”的意图,否则是“注册/登录“。----<这里如何引导>

2. 如果判断是的确是需要注册,那么先要填手机号,此时词槽是手机号,但是拿到手机号后,我需要做一些处理,比如检查手机是否是空号的检查,或者检查手机号是否在库中等等;----<这里如何引导>

3. 下一步是填写手机收到的验证码了,这里关键在于检查填写是否正确,如果不正确还要返回让用户充填。-----<当填写了词槽,但是填写非法,如何引导用户充填>,<另外,如何添加这种固定模式但是又不能穷尽的词槽模板>


所以总结下来,就是如果意图是树状的,并且之间的引导不是通过用户的点击,而是需要函数判断,此时如何引导到下一个意图。


还有就是,有些意图,只能实现一次,这个应该放在哪一步去做?


还有就是,某些意图的词槽,填了之后如何清空?


我现在尝试的方式是,设置一些自己懂的话术去触发我需要链接的意图,比如填完手机号之后,应该触发填验证码意图,因此设置"##check_test_num##"为触发验证码意图的话术(目的是,用户小概率会输入,但是我通过程序向UNIT输入),但是,目前尝试的结果是,即使输入,check_test_num也能触发,输入check test也能触发,这样并不能满足我的“命令与意图匹配1对1”的需求。请问,我的这种尝试是不是错的?还是说我的场景不适用UNIT,还是说这的确是问题?


也不指望着有人答复吧,如果最终尝试不出来,就放弃UNIT的使用。

收藏
点赞
0
个赞
共2条回复 最后由dora的叔叔回复于2017-07
#4dora的叔叔回复于2017-07

感谢回复,

您说的方式是由UNIT判断用户query意图,client端来实现意图的逻辑,这个方法我理解了。


现在有一个问题,如果由client向UNIT发query,需要做到哪些方面才能尽量保证,这个query只有由client发送,UNIT才会识别出意图,并且用户的query是不会触发这种意图。

典型的例子就是,向用户发送验证码这样的意图应该是由client触发,如果用户的query触发了,岂不是很奇怪,在某些场景中,也会不安全。


我目前的办法是设计触发这些特定意图的query模板,设计的方式就是让这类query是用户小概率会输入的。但是现在不太能满足我的需求。请问您有什么建议吗?




0
#3赵扶风回复于2017-07

1. 用户的某些话语激活了注册/登录意图,此时需要判断,这个用户是否是已登录用户,如果登录应该引导至“提供服务”的意图,否则是“注册/登录“。----<这里如何引导>

——“用户是否已登录”这个信息是存在client端(就是你调用UNIT接口的程序)的,如果想UNIT来实现这个逻辑,需要client端将这个信息发给UNIT。具体做法是client把用户话语发给UNIT后,当UNIT返回是注册/登录意图时,client如果发现该用户是已登录用户,发一个“用户已登录”的query给UNIT,由UNIT返回USER_IS_LOGIN意图(在USER_IS_LOGIN对话单元下配置引导到“提供服务”意图);当UNIT返回是注册/登录意图时,client如果发现该用户是未登录用户,发一个“用户未登录”的query给UNIT,由UNIT返回USER_IS_NOT_LOGIN意图(在USER_IS_NOT_LOGIN对话单元下配置引导到“注册/登录”意图)。


2. 如果判断是的确是需要注册,那么先要填手机号,此时词槽是手机号,但是拿到手机号后,我需要做一些处理,比如检查手机是否是空号的检查,或者检查手机号是否在库中等等;----<这里如何引导>

——“检查手机是否是空号的检查”,“或者检查手机号是否在库中”,这是针对用户槽位的具体操作,这部分的代码放在client端处理即可,给用户的提示可以由client端完成,也可以在UNIT配置一个“手机空号”/“手机已在库中”的意图


3. 下一步是填写手机收到的验证码了,这里关键在于检查填写是否正确,如果不正确还要返回让用户充填。-----<当填写了词槽,但是填写非法,如何引导用户充填>,

——同样道理,“用户所填手机号非法”这个信息只有client端有,UNIT没有,所以需要client端通过发query的方式把这个信息发给UNIT,在UNIT中配置该query对应意图引导到其他意图


4. <另外,如何添加这种固定模式但是又不能穷尽的词槽模板>

——这个功能正在开发中,完成后我们会开放给开发者。


总结来说,你所说的几个问题大部分是需要在client端做一些处理,然后再使用UNIT,这样才能把整个系统逻辑搭建起来。

如果还有疑问的话,可以到官方QQ群里找UNIT客服具体再问一下,群号是:584835350

1
TOP
切换版块