全部产品
云市场

上传分析规则

更新时间:2018-12-03 09:41:56

接口说明

客户(或者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}

调用示例

  1. UploadRuleRequest uploadRuleRequest = new UploadRuleRequest();
  2. uploadRuleRequest.setAcceptFormat(FormatType.JSON);
  3. String ruleJsonStr = "{\n" +
  4. " \"appKey\": \"********\",\n" +
  5. " \"uploadType\": 0,\n" +
  6. " \"conditions\": [\n" +
  7. " {\n" +
  8. " \"cid\": \"1\",\n" +
  9. " \"check_range\": {\n" +
  10. " \"role\": \"客服\",\n" +
  11. " \"range\": {\n" +
  12. " \"from\": 1,\n" +
  13. " \"to\": 3\n" +
  14. " }\n" +
  15. " },\n" +
  16. " \"operators\": [\n" +
  17. " {\n" +
  18. " \"oid\": \"1\",\n" +
  19. " \"type\": \"REGULAR_EXPRESSION\",\n" +
  20. " \"param\": {\n" +
  21. " \"regex\": \"告诉.*密码\"\n" +
  22. " },\n" +
  23. " \"name\": \"ApiCreateRuleDemo\"\n" +
  24. " }\n" +
  25. " ],\n" +
  26. " \"lambda\": \"1\"\n" +
  27. " },\n" +
  28. " {\n" +
  29. " \"cid\": \"2\",\n" +
  30. " \"check_range\": {\n" +
  31. " \"role\": \"客户\",\n" +
  32. " \"range\": {\n" +
  33. " \"from\": 1,\n" +
  34. " \"to\": -1\n" +
  35. " }\n" +
  36. " },\n" +
  37. " \"operators\": [\n" +
  38. " {\n" +
  39. " \"oid\": \"2\",\n" +
  40. " \"type\": \"REGULAR_EXPRESSION\",\n" +
  41. " \"param\": {\n" +
  42. " \"regex\": \"修改密码\"\n" +
  43. " },\n" +
  44. " \"name\": \"ApiCreateRuleDemo\"\n" +
  45. " }\n" +
  46. " ],\n" +
  47. " \"lambda\": \"2\"\n" +
  48. " }\n" +
  49. " ],\n" +
  50. " \"rules\": [\n" +
  51. " {\n" +
  52. " \"rid\": \"1\",\n" +
  53. " \"lambda\": \"1&&2\",\n" +
  54. " \"triggers\": [\n" +
  55. " \"1\",\n" +
  56. " \"2\"\n" +
  57. " ],\n" +
  58. " \"name\": \"testbyapi\",\n" +
  59. " \"type\": 1,\n" +
  60. " \"comments\": \"comments\",\n" +
  61. " \"scoreSubId\": 277,\n" +
  62. " \"ruleScoreType\": 1,\n" +
  63. " \"business\": [\n" +
  64. " {\n" +
  65. " \"bid\": 264971810,\n" +
  66. " \"name\": \"业务A\"\n" +
  67. " },\n" +
  68. " {\n" +
  69. " \"bid\": 386664996,\n" +
  70. " \"name\": \"业务B\"\n" +
  71. " }\n" +
  72. " ]\n" +
  73. " }\n" +
  74. " ]\n" +
  75. "}";
  76. uploadRuleRequest.setJsonStr(ruleJsonStr);
  77. UploadRuleResponse response = client.getAcsResponse(uploadRuleRequest);

返回示例

  1. {
  2. "code":"200",
  3. "data":[
  4. "318" //数据库存储的规则id
  5. ],
  6. "message":"successful",
  7. "requestId":"*****",
  8. "success":true
  9. }