rasa

rasa对话系统踩坑记(五)

2018-12-05  本文已影响0人  colin_gao

上篇谈到增加了第三方闲聊的功能,避免了对话的时候遇到能识别意图之外的问题而回答“不好意思,我听不懂”这样的默认设置回答。最近在优化方面又增加了button的功能。效果如下:


button.jpg

这样做的原因是在优化识别名字、年龄、职业的时候总会有些问题,后面干脆做成button让用户选择和输入,意图和槽都很明确,这样用户体验方面会更好(最主要的是老板喜欢这个交互,我咋感觉越做越像平安医生的交互方式的,(⊙o⊙)…)。

界面方面是前端的工作,这里不做过多说明。这篇要说的是作为接口提供方的我们,如何在rasa-core这个框架上实现前端需要的数据。其实rasa-core提供了很多http-api的接口,现有的需求几乎全部实现,不需要你重复造轮子。

这里有button的详细用法,而我们做的改进是单选和多选的问题。在domain.yml文件中:

utter_ask_gender:
    - text: "请选择患者性别:"
      buttons:
      - mulplity: "0"
        intent: 'enter_data'
      - title: "男"
        prop: 'slots'
        payload: '{"gender": "男"}'
      - title: "女"
        prop: 'slots'
        payload: '{"gender": "女"}'
      - title: "保密"
        prop: 'intent'
        payload: 'deny'

我们加了mulplity这个字段来告诉前端是否是单选,以及前端需要自己拼接/intent{payload}传递给接口,这样意图和槽就十分明确。

汗~~
说了一通,好像没什么技术含量。

后面还增加了/conversations/{id}/tracker/eventspost的接口。业务中我们允许用户返回去修改按钮操作,但是只能允许最近的一个。所以在每次修改的时候需要调用一下新增的接口push一个undo操作,这样的话对话才不会乱。

emmm,有点像流水账,主要想讲的就是多看看rasa-core的http-api文档,里面提供了不少直接修改意图和槽的方法,在项目优化的时候有很大帮助。

这一系列的文章就写到这儿吧,后续要在知识图谱这块花时间,等有点收获再写点图谱的学习心得吧。原创文章,转载请说明出处

上一篇下一篇

猜你喜欢

热点阅读