全部产品
阿里云办公

Bot Framework 配置意图

更新时间:2018-06-29 16:18:47

什么是Bot Framework

Bot Framework是一个供开发者构建自助服务的工具,它可以识别机器人访问者(下称“访问者”)的意图、可以通过多轮会话向访问者收集意图的参数、调用外部服务处理访问者的意图,从而实现诸如天气查询、订单查询、物流查询、退货等自助功能。

什么是意图

意图指访问者想要做的事情,包含表述和参数两类信息。访问者向机器人表述自己想要做什么,若表述不完全,机器人会自动反问以收集意图参数。当意图被完全理解后,机器人即可帮助访问者实现所想。

比如:访问者意图查询天气。那么,机器人处理意图、与访问者交流的流程如下:

【意图识别】访问者:天气如何?

【收集参数】机器人:请问您想查询哪里的天气?

【参数给出】访问者:杭州

【收集参数】机器人:请问您想查询什么时候的天气?

【参数给出】访问者:明天

【提供服务】机器人:杭州明天天气晴、最高气温33℃。

使用Bot Framework配置意图

配置意图的四个步骤:

  • 添加意图:为意图指定一个名字。
  • 填写访问者表述:尽可能覆盖访问者的多种问法。
  • 定义意图的参数及参数缺失时的反问:机器人基于反问问题进行多轮会话来收集参数。
  • 定义回复:回复固定文本或调用外部服务处理意图。

步骤1 添加意图

  1. 在云小蜜控制台,选中需要添加意图的机器人,单击Bot Framework > 意图 > 创建新意图,创建一个新的意图。

    add_intent

  2. 在打开的意图编辑界面上,为意图添加名称。比如:查询天气。

    查询天气

步骤2 填写访问者表述

在输入及参数部分,填写用户表述。此例中,需填写若干个查询天气意图下访问者可能的表述方式,如:

  • 杭州天气如何?
  • 出门要带伞吗?
  • 天气如何?
  • 明天会下雨吗?

用户表述

步骤3 定义参数

  1. 您可以直接从用户表述中,通过划词操作,划取意图的参数。

    比如,使用鼠标选中“杭州天气如何”中的杭州一词,在弹出菜单中单击系统.城市实体专有名词,即可将“杭州”代表的“城市实体”作为查询天气意图的一个参数。

    划取参数

  2. 对于查询天气意图,定义citydate二个参数。定义参数时您会遇到如下条目:

    • 必填:机器人会一直反问直到成功收集到此参数。
    • 参数名:机器人收集到参数后,会使用参数名将参数值保存在上下文中,供意图处理服务使用。
    • 来源名词:参数所属的专有名词。访问者输入的自然语言中若包含专有名词的任一成员,那么便会匹配到此参数。
    • 参数提示反问:当必填参数缺失时,机器人会使用此处的参数提示反问与访问者进行多轮会话,直至收集到参数值为止。

    edit_intent_add_argument_sample

什么是专有名词?

专有名词是一组词语的总称,这组词语中的每个词也有自己的同义词。比如,天气作为专有名词,是晴天、打雷、阴天等的总称。而晴天的同义词有艳阳高照、天晴等,下雨的同义词有雨天、降雨等。

专有名词可能对应访问者输入的自然语言中的一个意图参数,名词对应的词语(及词语的同义词)是意图参数的所有可选值的集合。

比如:专有名词 天气

天气的成员 成员同义词
晴天 艳阳高照、天晴、阳光、太阳
打雷 打雷、闪电
阴天 阴沉
下雨 雨天、降雨
刮风 大风、飞沙走石

比如:专有名词 咖啡杯型

咖啡杯型的成员 成员同义词
小杯 Short杯、儿童杯、Espresso杯
中杯 Tall杯
大杯 Grande杯
超大杯 Venti杯

步骤4 定义回复

意图的回复可以使用纯文本的回复,也可以使用外部http服务进行意图的处理和回复。比如,查询天气场景下,使用yahoo提供的天气查询api,在api url中原本需要输入城市名称处使用意图参数${city}代替

  1. https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20woeid%20in%20(select%20woeid%20from%20geo.places(1)%20where%20text=%22${%E5%8C%97%E4%BA%AC}%22)&format=json&env=store://datatables.org/alltableswithkeys

edit_inent_set_dynamic_component

步骤5 使用调试器调试意图

在调试器中询问天气,提供city参数后,机器人便会按照意图回复中的配置,调用yahoo api查询city的天气。例:下图中调试窗中的杭州下一条中的json串即为云小蜜机器人调用yahoo api获取的天气信息。

test_bot_framework