动作和参数

动作是用户提问匹配到的场景执行后触发的一个特定操作,它可以从用户提问语料中提取信息参数。动作相当于代码中的函数,其具体实现在开发者端,一个AI系统端只是一个标识,相当于函数声明。

在调用query接口时获得的JSON返回结果内,动作对应的数据格式如下:

"action": {
    "name": "order_car",
    "complete": true,
    "parameters": [
        {
            "type": "yige.time",
            "name": "time",
            "value": "2016-08-20 16:00:00",
            "original": "明天下午4点"
        },
        {
            "type": "yige.quantity_number",
            "name": "quantity_number",
            "value": "5",
            "original": "5"
        }
    ]
}

例如,要查询某个地方某天的天气时,动作包含的参数需要包括地点和日期,而开发者实现的动作search_weather需要完成查询天气的具体行为,比如对接气象台的天气查询接口。

image

参数列表管理

自动参数标识

在添加用户提问语料时,系统会自动识别用户输入语句中包含的系统和开发者词库,识别成功会高亮显示词库标识。参数列表中会自动添加对应的参数标识,参数名称和取值将关联词库类别和用户输入语句中的词:

自定义的参数

如果需要改变参数的名称,可以在用户提问语料列表中点击高亮显示的词,然后在弹出的词库标识列表窗口更改即可;对应的参数名称也会随之更改。

image

另一种修改参数名称的方法是通过“动作”栏的参数列表进行修改。如果从“动作”栏的参数列表修改名称,那么对应上边所有用户提问语料中对应的参数名称都会同步改变。

image

修改取值

参数的取值一般来自于用户提问中识别出的值,或者通过输入状态传递进来的参数值。也可以为参数设置默认值,默认值在参数获取值失败时会被使用。

参数取值为用户提问中识别出的值:

image

参数取值为输入状态里的参数值:

image

设置默认值的方法:

image

在如上图中设置默认值后,当用户输入“帮我查看一下天气”时,返回的JSON格式是这样的:

"action": {
    "name": "search_weather",
    "parameters": [
        {
            "type": "yige.quantity_area",
            "name": "area",
            "value": "北京",
            "original": "北京"
        }
    ]
}

设置“必须参数”

“动作”栏的第一列为“是否必须”。勾选“是否必须”表明对应参数必须被赋值,如果用户提问中不包含此参数对应的取值,则机器人在聊天时会使用已添加的提示语进行回复,以便收集此参数的值。

image

删除参数

点击参数所在行最后面的一列小点,会弹出删除此行的“删除”按钮:

image

results matching ""

    No results matching ""