修改用户规则

接口说明

此API可以修改对应的规则信息。修改的内容是以创建的规则的信息为基础的,在其中修改相应的条件和算子。该接口执行时可以保证规则ID(rid)不变,但对应的条件ID和算子ID会变化。

入参UpdateRuleRequest说明

属性

值类型

是否必须

说明

jsonStr

String

完整JSON字符串信息,具体内容参见以下详细信息

请求参数JSON字符串信息

属性

值类型

是否必须

说明

conditions

List< ConditionBasicInfo>

所有条件的配置信息

rules

List< RuleInfo>

所有规则的配置信息

条件的详细配置字段ConditionBasicInfo描述:

属性

值类型

是否必须

说明

cid

String

条件的ID,必须数字字符,此数字在规则上传后会被修改为系统自生成Id

check_range

CheckRange

条件的检查范围

operators

List<OperatorBasicInfo>

条件包含的算子

lambda

String

条件中算子的逻辑关系

条件检查范围CheckRange描述:

属性

值类型

是否必须

说明

role

String

角色,条件的作用角色范围

anchor

Anchor

条件的锚定关系

range

Range

Role和Anchor共同决定的范围。1~N表示由anchor和role共同限定的第1(N)句,-1表示由anchor和role共同限定的最后一句

条件锚定关系Anchor描述:

属性

值类型

是否必须

说明

location

String

CURRENT:条件命中的当前句,BEFORE:命中句子之前, AFTER: 命中句子之后

cid

String

条件ID:用于确定anchor的条件

hit_time

Integer

hit_time:整数,1~N代表条件第一(N)次命中,-1代表条件最后一次命中

条件范围Range描述:

属性

值类型

是否必须

说明

from

Integer

1~N表示由anchor和role共同限定的第1(N)句,-1表示由anchor和role共同限定的最后一句

to

Integer

1~N表示由anchor和role共同限定的第1(N)句,-1表示由anchor和role共同限定的最后一句

条件所包含算子OperatorBasicInfo描述:

属性

值类型

是否必须

说明

oid

String

算子的ID,必须数字字符,此数字在规则上传后会被修改为系统自生成Id

type

String

算子类型,参考<operator算子type字段说明>

name

String

算子名称、描述

param

Param

算子表达式具体内容

条件所包含算子具体内容Param描述:

属性

值类型

是否必须

说明

keywords

List<String>

算子的ID,必须数字字符,此数字在规则上传后会被修改为系统自生成Id

regex

String

用于正则算子,正则表达式

phrase

String

用于最小编辑距离算子,参考句子

references

List<String>

用于相似度匹配,算子表达式具体内容

interval

Integer

用于时间间隔算子,时间间隔

threshold

Float

用于编辑距离和匹配予以算子,指定的阈值

in_sentence

Boolean

用以判断是否是单句还是整句

target

Integer

目标句子是当前句子的前多少句,为0时间间隔等于本句的结束时间-本句的开始时间

from_end

Boolean

用于时间间隔算子,判断时间间隔,指定时间间隔的计算方式是否用本句的结束时间减目标句子的结束时间

different_role

Boolean

用以时间间隔算子,判断时间间隔,为true则目标句子如果与本句是同一个角色说的话就不参与计算

target_role

String

用于判断重复算子,如果本句匹配上该正则表达式,那么匹配上的部份会在本句之前target_role指定的句子中查找

velocity

Double

用于语速判断算子。单位时间内的语速值,判断本句的语速是否超过指定值。时间单位取决于传入的start、end的时间单位

velocityInMint

Integer

用于语速判断算子。每分钟的语速值,用以判断本句的语速是否超过指定值

规则的详细配置字段RuleInfo描述:

属性

值类型

是否必须

说明

rid

String

规则的ID,必须数字字符,此数字保持不变

lambda

String

规则中条件的逻辑关系

triggers

List<String>

规则中需要返回内容的条件ID。设置规则ID的话,命中结果后将会返回规则所命中的具体内容

Name

String

规则的名字

business

List<BusinessCategoryBasicInfo>

规则所属业务

type

Integer

1/2/3/4:服务规范/舆情监控/业务类/其他

status

Integer

0/1/2:待生效/生效中/已失效

startTime

Date

规则的生效时间

endTime

Date

规则的失效时间

scoreSubId

Integer

规则绑定的计分id

ruleScoreType

Integer

规则是否计分:1:不计分,3:计分

规则所属业务字段BusinessCategoryBasicInfo描述:(若该属性为空,设置为默认的“所有业务”)

属性

值类型

是否必须

说明

bid

String

规则所属业务BID,必须数字字符

name

String

规则所属业务名称,字符串

调用示例

        UpdateRuleRequest updateRuleRequest = new UpdateRuleRequest();
        updateRuleRequest.setAcceptFormat(FormatType.JSON);
        String ruleJsonStr = "{\n" +
                "    \"appKey\": \"**********\",\n" +
                "    \"conditions\": [\n" +
                "        {\n" +
                "            \"cid\": \"a\",\n" +
                "            \"check_range\": {\n" +
                "                \"role\": \"客服\",\n" +
                "                \"anchor\": null\n" +
                "            },\n" +
                "            \"lambda\": \"1\",\n" +
                "            \"operators\": [\n" +
                "                {\n" +
                "                    \"oid\": 1,\n" +
                "                    \"type\": \"REGULAR_EXPRESSION\",\n" +
                "                    \"param\": {\n" +
                "                        \"regex\": \"(你好|您好|早上好|晚上好|下午好|中午好)\"\n" +
                "                    }\n" +
                "                }\n" +
                "            ]\n" +
                "        }\n" +
                "    ],\n" +
                "    \"rules\": [\n" +
                "        {\n" +
                "            \"name\": \"【默认规则】开头说你好\",\n" +
                "            \"type\": -99,\n" +
                "            \"lambda\": \"a\",\n" +
                "            \"startTime\": null,\n" +
                "            \"endTime\": null,\n" +
                "            \"triggers\": [\n" +
                "                \"a\"\n" +
                "            ],\n" +
                "            \"rid\": \"345\",\n" +
                "            \"comments\": \"检测客服是否在对话的开头2句说你好\",\n" +
                "            \"business\": [\n" +
                "                {\n" +
                "                    \"bid\": 264971810,\n" +
                "                    \"name\": \"测试\"\n" +
                "                },\n" +
                "                {\n" +
                "                    \"bid\": 386664996,\n" +
                "                    \"name\": \"信息测试\"\n" +
                "                }\n" +
                "            ],\n" +
                "            \"status\": 1,\n" +
                "            \"autoReview\": 1,\n" +
                "            \"scoreSubId\": 277,\n" +
                "            \"ruleScoreType\": 1\n" +
                "        }\n" +
                "    ]\n" +
                "}";


        updateRuleRequest.setJsonStr(ruleJsonStr);
        UpdateRuleResponse response = client.getAcsResponse(updateRuleRequest);
        System.out.println(com.alibaba.fastjson.JSON.toJSONString(response));

返回示例

{
    "code": "200",
    "message": "successful",
    "requestId": "4E1D0CCB-172D-409E-86F3-2188C634E4D8",
    "success": true
}