rasa对话系统踩坑记(五)

上篇谈到增加了第三方闲聊的功能,避免了对话的时候遇到能识别意图之外的问题而回答“不好意思,我听不懂”这样的默认设置回答。最近在优化方面又增加了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文档,里面提供了不少直接修改意图和槽的方法,在项目优化的时候有很大帮助。

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

Recommand

liveportrait
novelling

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 14,472评论 2 59
  • 本文转自中国中文信息学会青年工作委员会作者:李林琳,赵世奇(注:本文的第一部分主要内容基于“Review of s...
    MiracleJQ阅读 9,549评论 0 4
  • 为你保驾护航的第一个755天结束了,我会努力去寻找更好呵护你的方式。——妈妈 今天是2017年2月16日,孩子,你...
    七夕FFF阅读 2,761评论 2 3
  • 这几天出差,因为离家很近,顺便回了一趟家,跟堂哥一起吃饭,见他的第一眼,我愣住了,以前一百六十斤胖乎乎的哥变成了一...
    Forest_3a32阅读 4,077评论 0 0
  • 本章为 scotty 系列教程的第二篇,读者可先阅读 第一篇 学习如何使用 stack 构建一个 Haskell...
    Lupino阅读 3,269评论 0 0