上传分析规则

接口说明

客户(或者ISV)通过调用该API将一条分析规则上传给分析系统,返回本条分析规则在分析系统中的规则Id。

入参UploadRuleRequest说明

属性

值类型

是否必须

说明

jsonStr

String

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

请求参数Json字符串信息

属性

值类型

是否必须

说明

appKey

String

业务方或者业务场景的标记

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; 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>

用于测试是否包含某些关键词,关键词列表

regex

String

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

phrase

String

用于语义匹配算子,参考句子

references

List< String>

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

interval

Integer

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

threshold

Float

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

in_sentence

Boolean

关键词或者正则表达式检测时,是否限定在一个句子中(以逗号、句号等标号分开的算不同句子);true:限定在一个句子中;false:不限定。

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,必须数字字符,此数字在规则上传后会被修改为系统自生成Id

lambda

String

规则中条件的逻辑关系

business

List< BusinessCategoryBasicInfo>

规则所属业务

triggers

List< String>

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

Name

String

规则的名字

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

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

算子中Param配置示例

算子类型

算子名称

param示例

INCLUDE_KEYWORDS

包含全部关键字

{“in_sentence”:false,”keywords”:[“你好”]}

INCLUDE_KEYWORDS

包含全部关键字并开启同义词

{“in_sentence”:false,”keywordExtension”:1,”keywords”:[“医疗”]}

HIT_ANY_KEYWORDS

包含任意一个关键词

{“in_sentence”:false,”keywords”:[“你好”]}

HIT_ANY_KEYWORDS

包含任意一个关键词并开启同义词

{“in_sentence”:false,”keywordExtension”:1,”keywords”:[“你好”]}

REGULAR_EXPRESSION

匹配正则表达式

{“in_sentence”:false,”regex”:”你好.*”}

PARAPHRASE

匹配语义

{“in_sentence”:false,”references”:[“你好”,”服务”],”threshold”:0.8}

INTERVAL_GREATER

与上句时间间隔大于给定值

{“different_role”:false,”from_end”:false,”in_sentence”:false,”interval”:10000,”target”:1}

INTERROGATIVE_SENTENCE

判断本句是否疑问句

{“in_sentence”:true}

REPETITION_DETECT

判断匹配上的内容是否之前有出现过

{“in_sentence”:false,”regex”:”你好.*”,”target_role”:”客服”}

SPEECH_SPEED_CHECK

判断本句的语速是否超过指定值

{“in_sentence”:false,”velocity”:0.00416667,”velocityInMint”:250}

GRAB_WORDS

抢话算子

{“in_sentence”:false,”interval”:10,”threshold”:10.0}

EMOTION_ENERGY

能量值判断

{“in_sentence”:false}

调用示例

UploadRuleRequest uploadRuleRequest = new UploadRuleRequest();
        uploadRuleRequest.setAcceptFormat(FormatType.JSON);
        String ruleJsonStr = "{\n" +
                "    \"appKey\": \"********\",\n" +
                "    \"uploadType\": 0,\n" +
                "    \"conditions\": [\n" +
                "        {\n" +
                "            \"cid\": \"1\",\n" +
                "            \"check_range\": {\n" +
                "                \"role\": \"客服\",\n" +
                "                \"range\": {\n" +
                "                    \"from\": 1,\n" +
                "                    \"to\": 3\n" +
                "                }\n" +
                "            },\n" +
                "            \"operators\": [\n" +
                "                {\n" +
                "                    \"oid\": \"1\",\n" +
                "                    \"type\": \"REGULAR_EXPRESSION\",\n" +
                "                    \"param\": {\n" +
                "                        \"regex\": \"告诉.*密码\"\n" +
                "                    },\n" +
                "                    \"name\": \"ApiCreateRuleDemo\"\n" +
                "                }\n" +
                "            ],\n" +
                "            \"lambda\": \"1\"\n" +
                "        },\n" +
                "        {\n" +
                "            \"cid\": \"2\",\n" +
                "            \"check_range\": {\n" +
                "                \"role\": \"客户\",\n" +
                "                \"range\": {\n" +
                "                    \"from\": 1,\n" +
                "                    \"to\": -1\n" +
                "                }\n" +
                "            },\n" +
                "            \"operators\": [\n" +
                "                {\n" +
                "                    \"oid\": \"2\",\n" +
                "                    \"type\": \"REGULAR_EXPRESSION\",\n" +
                "                    \"param\": {\n" +
                "                        \"regex\": \"修改密码\"\n" +
                "                    },\n" +
                "                    \"name\": \"ApiCreateRuleDemo\"\n" +
                "                }\n" +
                "            ],\n" +
                "            \"lambda\": \"2\"\n" +
                "        }\n" +
                "    ],\n" +
                "    \"rules\": [\n" +
                "        {\n" +
                "            \"rid\": \"1\",\n" +
                "            \"lambda\": \"1&&2\",\n" +
                "            \"triggers\": [\n" +
                "                \"1\",\n" +
                "                \"2\"\n" +
                "            ],\n" +
                "            \"name\": \"testbyapi\",\n" +
                "            \"type\": 1,\n" +
                "            \"comments\": \"comments\",\n" +
                "            \"scoreSubId\": 277,\n" +
                "            \"ruleScoreType\": 1,\n" +
                "            \"business\": [\n" +
                "                {\n" +
                "                    \"bid\": 264971810,\n" +
                "                    \"name\": \"业务A\"\n" +
                "                },\n" +
                "                {\n" +
                "                    \"bid\": 386664996,\n" +
                "                    \"name\": \"业务B\"\n" +
                "                }\n" +
                "            ]\n" +
                "        }\n" +
                "    ]\n" +
                "}";

        uploadRuleRequest.setJsonStr(ruleJsonStr);

        UploadRuleResponse response =     client.getAcsResponse(uploadRuleRequest);

返回示例

{
    "code":"200",
    "data":[
        "318" //数据库存储的规则id
    ],
    "message":"successful",
    "requestId":"*****",
    "success":true
}
阿里云首页 智能对话分析 相关技术圈