創建規則。一般用于客戶需要自己提供規則編輯界面的場景。
接口說明
調試
您可以在OpenAPI Explorer中直接運行該接口,免去您計算簽名的困擾。運行成功后,OpenAPI Explorer可以自動生成SDK代碼示例。
授權信息
下表是API對應的授權信息,可以在RAM權限策略語句的Action
元素中使用,用來給RAM用戶或RAM角色授予調用此API的權限。具體說明如下:
- 操作:是指具體的權限點。
- 訪問級別:是指每個操作的訪問級別,取值為寫入(Write)、讀取(Read)或列出(List)。
- 資源類型:是指操作中支持授權的資源類型。具體說明如下:
- 對于必選的資源類型,用背景高亮的方式表示。
- 對于不支持資源級授權的操作,用
全部資源
表示。
- 條件關鍵字:是指云產品自身定義的條件關鍵字。
- 關聯操作:是指成功執行操作所需要的其他權限。操作者必須同時具備關聯操作的權限,操作才能成功。
操作 | 訪問級別 | 資源類型 | 條件關鍵字 | 關聯操作 |
---|---|---|---|---|
sca:UploadRule | *全部資源 * |
| 無 |
請求參數
名稱 | 類型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
JsonStr | string | 是 | 完整 JSON 字符串信息,具體內容參見下方詳細信息。 | {“conditions”:“xxxxx”,"rules":"xxxx"} |
BaseMeAgentId | long | 否 | 業務空間 Id |
請求參數 JSON 字符串信息
屬性 | 值類型 | 是否必選 | 描述 |
---|---|---|---|
appKey | String | 是 | 業務方或者業務場景的標記。 |
conditions | List | 是 | 所有條件的詳細配置信息,具體內容參見下方的條件的詳細配置信息字段 ConditionBasicInfo 描述 。 |
rules | List | 是 | 規則的配置信息,具體內容參見下方的規則的配置信息字段 RuleInfo 描述 。 |
一、條件的詳細配置信息字段 ConditionBasicInfo 說明
屬性 | 值類型 | 是否必選 | 示例值 | 描述 |
---|---|---|---|---|
cid | String | 是 | "1" | 條件的 ID,必須數字字符(建議從 1 開始以正整數向上累加),此數字在規則上傳后會被修改為系統自生成 Id。 |
check_range | CheckRange | 是 | 具體內容參見下方的條件檢查范圍 CheckRange 描述 | 條件的檢查范圍。 |
operators | List | 是 | 具體內容參見下方的條件所包含算子 OperatorBasicInfo 描述 | 條件包含的算子。 |
lambda | String | 是 | 一個算子:"1",多個算子:1&&2&&3 | 條件中算子的邏輯關系,由算子 ID(oid)與邏輯運算符(與、或、非)組成的表達式,示例值中的 1、2、3 均代表算子 ID(oid),oid 在條件所包含算子 OperatorBasicInfo 描述 中有詳細說明。 |
條件檢查范圍 CheckRange 描述:
屬性 | 值類型 | 是否必選 | 示例值 | 描述 |
---|---|---|---|---|
role | String | 否 | 客服 | 適用角色,條件的作用角色范圍,可取值:“客服”;“客戶”。不傳表示所有角色。 |
anchor | Anchor | 否 | 具體內容參見下方的前置條件 Anchor 描述 | 前置條件詳細信息。 |
range | String | 否 | {"from":1,"to":3} | 檢測范圍,具體使用說明請查看本文檔特殊說明中的檢測范圍 range 使用說明 。 |
前置條件 Anchor 描述:
屬性 | 值類型 | 是否必選 | 示例值 | 描述 |
---|---|---|---|---|
cid | String | 是 | "3" | 前置條件的條件 id(cid),用于確定 anchor 的條件。 |
location | String | 是 | AROUND | 用來指定前置條件命中時,當前條件檢測前置條件命中句子的之前 XX 句、之后 XX 句、前后部分句子、當前句,取值:BEFORE(前置條件命中句子之前)、AROUND(前置條件命中位置前后)、AFTER(前置條件命中句子之后)、CURRENT(前置條件命中的當前句)。通過該字段限定一個范圍,然后配合上面的 range 中的 from、to 來指定具體的句子。 |
hit_time | Integer | 是 | 3 | 前置條件的命中次數,有以下三種情況:1、正整數 1~N 代表前置條件第一(N)次命中;2、0 代表前置條件每次命中;3、-1 代表前置條件任意一次命中。 |
條件所包含算子 OperatorBasicInfo 描述:
屬性 | 值類型 | 是否必選 | 示例值 | 描述 |
---|---|---|---|---|
oid | String | 是 | "1" | 算子的 ID,必須數字字符(建議從 1 開始以正整數向上累加),此數字在規則上傳后會被修改為系統自生成 ID。 |
name | String | 是 | 我是算子名稱 | 算子名稱、描述。 |
type | String | 是 | INCLUDE_KEYWORDS | 算子類型,具體內容參見下方的算子類型以及算子具體內容 Param 描述 。 |
param | Param | 是 | 具體內容參見下方的算子類型以及算子具體內容 Param 描述 | 算子表達式具體內容。 |
算子類型以及算子具體內容 Param 描述:
param 中的屬性較多,有一些是公用屬性,有一些是特定算子類型專用的,所以我們按照算子類型維度,來逐一說明每個算子類型都可以使用哪些屬性,并且提供配置示例供您參考,以下標題為算子名稱(name)、算子類型(type),內容為該算子可用參數列表,以及使用示例:
1、關鍵詞檢查:
包含任意一個關鍵字(HIT_ANY_KEYWORDS)、包含全部關鍵字/包含任意 N 個關鍵字/全部不包含(INCLUDE_KEYWORDS)
屬性 | 值類型 | 是否必選 | 示例值 | 描述 |
---|---|---|---|---|
keywords | List | 是 | ["你好","您好","上午好"] | 關鍵詞列表 |
contextChatMatch | Boolean | 否 | false | 是否多句分析,用來指定分析方式,可選值:true(多句分析);false(單句分析),默認 false。詳見下方的分析方式詳細說明 |
keywordMatchSize | Integer | 否 | 3 | 匹配關鍵字的數量,不同的檢測類型與該參數取值的關系:包含任意一個關鍵字(取值為 1)、包含全部關鍵字(取值為-1)、包含任意 N 個關鍵字(取值為大于等于 1 并且小于等于關鍵字的個數正整數)、全部不包含(取值為 0)。默認值根據關鍵字檢測類型(type 值)的不同而不同:HIT_ANY_KEYWORDS(1)、INCLUDE_KEYWORDS(-1) |
in_sentence | Boolean | 否 | true | 匹配時是否限制在單句話中(單句話是指中間沒有逗號、句號等,以逗號、句號等標號分開的算不同句子);可取值:true(限定在一個句子中);false(不限定);默認 false。若 contextChatMatch 為 true,則該參數無效,因為分析方式為多句分析時,與單句話生效是沖突的。 |
keywordExtension | Integer | 否 | 0 | 是否開啟同義詞擴展,可取值:1(開啟);0(關閉);默認:0。 |
分析方式詳細說明
- 單句分析、多句分析針對的是當前條件所限定的句子。
- 限定句子:通過當前條件的適用角色、前置條件及檢測范圍所限定的 1 個或多個句子。
- 單句分析:對限定句子逐句進行分析,例如檢測包含全部關鍵詞,只有限定句子中的某一句包含了全部的關鍵詞,才算命中。
- 多句分析:將限定句子合并為一個段落進行一次分析,例如檢測包含全部關鍵詞,只要合并后的段落中包含全部的關鍵詞就算命中。
請求示例: ①單句分析、包含任意一個關鍵字
{
"keywords":[
"您好",
"你好",
"上午好"
],
"contextChatMatch":false,
}
②多句分析、包含全部關鍵字
{
"keywordMatchSize":-1,
"keywords":[
"您好",
"你好",
"上午好"
],
"contextChatMatch":true
}
③單句分析、包含任意 2 個關鍵字、單句話內生效、開啟同義詞擴展
{
"keywordMatchSize":2,
"keywordExtension":1,
"keywords":[
"您好",
"你好",
"上午好"
],
"in_sentence":true,
"contextChatMatch":false
}
④單句分析、全部不包含
{
"keywordMatchSize":0,
"keywords":[
"您好",
"你好",
"上午好"
],
"contextChatMatch":false
}
2、正則表達式檢查(REGULAR_EXPRESSION)
屬性 | 值類型 | 是否必選 | 示例值 | 描述 |
---|---|---|---|---|
regex | String | 是 | 請看下方代碼示例 | 命中的正則表達式。 |
notRegex | String | 否 | 請看下方代碼示例 | 排除的正則表達式。 |
in_sentence | Boolean | 否 | true | 默認為 false,匹配時是否限制在單句話中(單句話是指中間沒有逗號、句號等,以逗號、句號等標號分開的算不同句子);true:限定在一個句子中,false:不限定,默認:false。 |
{
"regex":"請問.*(車牌號|發動機號|駕駛證號碼)",
"notRegex":"發一下|告訴我",
"in_sentence":true
}
3、文本相似度檢查(SIMILAR_MATCH)
屬性 | 值類型 | 是否必選 | 示例值 | 描述 |
---|---|---|---|---|
similarlySentences | List | 是 | 請看下方代碼示例 | 示例語句,最多可輸入 200 句,每個示例語句最大長度為 50 字符。 |
score | Integer | 否 | 80 | 相似度分值,默認為 80。 |
{
"score":80,
"similarlySentences":[
"我想投訴你們部門",
"我要投訴你們",
"我要舉報你們部門",
"我要打 12315 舉報你們",
"我要到工商管理部門投訴你們"
]
}
4、上下文重復(ADVANCED_REPEAT_DETECT)
屬性 | 值類型 | 是否必選 | 示例值 | 描述 |
---|---|---|---|---|
from | Integer | 否 | 3 | 表示重復的兩句話間隔在幾句以內時才算違規,默認:2,即從當前局往前數 2 句(包含)之內重復算違規。 |
hit_time | Integer | 否 | 2 | 表示第幾次重復出現時才算違規,默認:1。 |
threshold | Integer | 否 | 5 | 最小字數,小于此值的句子不檢查,默認:4。 |
excludes | List | 否 | ["好的我知道了","好的我知道了"] | 表示例外句子,即例外句子重復出現時不算違規,默認:空。 |
{
"from":3,
"hit_time":2,
"threshold":5,
"excludes":[
"好的好的我知道了",
"好的我知道了"
]
}
5、通話靜音檢查(INTERVAL_GREATER)
屬性 | 值類型 | 是否必選 | 示例值 | 描述 |
---|---|---|---|---|
interval | Integer | 是 | 5000 | 靜音時長(毫秒)。 |
different_role | Boolean | 否 | false | 是否區分角色,true:區分角色,false:不區分角色;為 true 則目標句子如果與本句是同一個角色說的話就不參與計算。 |
target | Integer | 否 | 1 | 目標句子是當前句子的前多少句,為 0 時間隔等于本句的結束時間-本句的開始時間。 |
from_end | Boolean | 否 | false | 指定時間間隔的計算方式是否用本句的結束時間減目標句子的結束時間。 |
{
"interval":5000,
"different_role":false,
"target":1,
"from_end":false
}
6、語速檢查(SPEECH_SPEED_CHECK)
屬性 | 值類型 | 是否必選 | 示例值 | 描述 |
---|---|---|---|---|
velocityInMint | Integer | 是 | 370 | 每分鐘的語速值(字數),用以判斷本句的語速是否超過指定值。 |
minWordSize | Integer | 否 | 4 | 表示當一句話少于多少字時不檢測。 |
average | Boolean | 否 | false | true:檢測整個對話的平均語速;false:檢測單句話的語速。 |
{
"velocityInMint":370,
"average":false,
"minWordSize":4
}
7、搶話檢查(GRAB_WORDS)
屬性 | 值類型 | 是否必選 | 示例值 | 描述 |
---|---|---|---|---|
interval | Integer | 是 | 5000 | 交叉時間,也就是搶話中客戶說話的結束時間減去客服說話的開始時間(毫秒)。 |
threshold | Integer | 否 | 4 | 表示當搶話句子的字數大于多少個字時才進行檢測。 |
delayTime | Integer | 否 | 1000 | 延時判定搶話情況,比如,設置為 1000,則表示同時一方開始說話 1000 毫秒后,再出現對話重疊才算作搶話,單位:毫秒 |
{
"interval":3000,
"threshold":4
}
8、角色判斷(ROLE_CHECK)
該算子較為特殊,需要涉及到 check_range 的改動,詳見完整的條件配置示例:
屬性 | 值類型 | 是否必選 | 示例值 | 描述 |
---|---|---|---|---|
target_role | String | 是 | 客戶 | 指定目標句子的角色,可選值為:客服、客戶。 |
{
"cid":"1",
"lambda":"1",
"check_range":{
"absolute":true, // 固定值
"alSentencesSatisfy":true, // 固定值
"range":{ // 指定要檢測的句子位置,from 與 to 的值需要一致
"from":2,
"to":2
}
},
"operators":[
{
"oid":1,
"type":"ROLE_CHECK",
"param":{
"target_role":"客服"
}
}
]
}
9、非正常掛機(DURATION)
根據最后一句話的角色,以及最后一句話的結束時間到掛機的時間間隔來判斷是否為非正常掛機,此時 check_range.range 中的 from 和 to 都需要指定為-1,來表示檢測最后一句話,詳見完整的條件配置示例:
屬性 | 值類型 | 是否必選 | 示例值 | 描述 |
---|---|---|---|---|
interval | Integer | 是 | 5000 | 表示最后一句話結束時間到掛機時間的時長(毫秒)。 |
compareOperator | String | 否 | gt | 指定 interval 比較方式,gt:大于,lt:小于,默認為 gt。 |
beginType | String | 是 | DIALOGUE | 固定傳 DIALOGUE。 |
target_role | String | 否 | 客戶 | 指定最后一句話的角色,如果為空則代表任意角色。 |
{
"cid":"1",
"lambda":"1",
"check_range":{
"range":{
"from":-1, //固定為-1,表示檢測最后一句話
"to":-1, //固定為-1,表示檢測最后一句話
}
},
"operators":[
{
"oid":1,
"type":"DURATION",
"param":{
"interval":3000,
"beginType":"DIALOGUE",
"target_role":"客戶"
}
}
]
}
10、錄音時長檢查(DURATION)
屬性 | 值類型 | 是否必選 | 示例值 | 描述 |
---|---|---|---|---|
interval | Integer | 是 | 5000 | 指定錄音時長(毫秒)。 |
compareOperator | String | 否 | gt | 指定 interval 比較方式,gt:大于,lt:小于,默認為 gt。 |
{
"interval":60000,
"compareOperator":"lt"
}
11、能量檢測(ASR_EMOTION)
屬性 | 值類型 | 是否必選 | 示例值 | 描述 |
---|---|---|---|---|
maxEmotionChangeValue | Integer | 否 | 3 | 能量值,取值范圍:1-10。 |
checkType | Integer | 否 | 3 | 檢測方式,可選值:1(相鄰句能量波動);2(最大能量跨度);3(能量范圍檢測),默認值:3。 |
compareOperator | String | 否 | gt | 大于還是小于,可選值:gt(大于);lt(小于),默認值:gt。 |
12、通用檢測模型(EMOTION_MODEL)
由系統內置的算法模型進行分析,目前可檢測的類型有:辱罵檢測模型、高危檢測模型。
屬性 | 值類型 | 是否必選 | 示例值 | 描述 |
---|---|---|---|---|
pvalues | List | 否 | ["ruma01"] | 檢測的類型,可選值:ruma01(辱罵檢測模型);goawei01(高危檢測模型),默認值為["ruma01"] |
13、客戶檢測模型(CUSTOMER_CHECK_MODEL)
由系統內置的算法模型進行分析,目前可檢測的類型有:揚言投訴客服、揚言找客服主管、質疑客服態度差、內部投訴檢測、公共輿情檢測。
屬性 | 值類型 | 是否必選 | 示例值 | 描述 |
---|---|---|---|---|
pvalues | List | 否 | ["tousu01","zhaozhuguan01"] | 檢測的類型,可選值:tousu01(揚言投訴客服);zhaozhuguan01(揚言找客服主管);zhiyitaidu01(質疑客服態度差);internal_complain01(內部投訴檢測);public_opinion(公共輿情檢測),默認值為["tousu01"] |
14、客服檢測模型(ABUSE_MODEL)
由系統內置的算法模型進行分析,無需配置 param。
屬性 | 值類型 | 是否必選 | 示例值 | 描述 |
---|---|---|---|---|
pvalues | List | 否 | ["jifeng01"] | 檢測的類型,可選值:譏諷客戶檢測(jifeng01),默認值為["jifeng01"] |
二、規則的配置信息字段 RuleInfo 說明
屬性 | 值類型 | 是否必選 | 示例值 | 描述 |
---|---|---|---|---|
rid | String | 是 | 1 | 規則的 ID,必須數字字符,此數字在規則上傳后會被修改為系統自生成 ID。 |
lambda | String | 是 | 一個條件:"",多個條件:a&&b&&c | 規則中條件的邏輯關系,由條件 ID(cid)與邏輯運算符(與、或、非)組成的表達式,示例值中的 a、b、c 均代表算條件 ID(cid)。 |
business | List | 是 | 具體內容參見下方的規則所屬業務字段 BusinessCategoryBasicInfo 描述 | 規則的適用業務,可在新建規則頁面獲取,詳見下圖。若該屬性為空,則設置為默認的“所有業務”。 |
type | Integer | 是 | 1 | 規則的類型,可在新建規則頁面獲取,詳見下圖。 |
triggers | List | 是 | ["a","b","c"] | 規則中需要返回內容的條件 ID(cid)。設置規則 ID 的話,命中結果后將會返回規則所命中的具體內容。 |
Name | String | 是 | "用戶可能要投訴" | 規則名稱。 |
scoreSubId | Integer | 否 | 3678 | 規則綁定的評分項子項的 id,如綁定評分項,則必須傳入 ruleScoreType。 |
ruleScoreType | Integer | 否 | 3 | 該規則所綁定的評分項是否進行計分(1:不計分,3:計分)。 |
level | Integer | 否 | 2 | 重要程度,用于在復核頁面對規則根據重要程度進行分類展示。取值:0(重度違規);1(中度違規);2(輕度違規),默認值:2 |
fullCycle | Integer | 否 | 1 | 設置規則的生效時間的類型,可選值:0(特定周期生效,特定的時間范圍內生效),1(全周期生效,始終生效) |
effectiveStartTime | Date | 否 | 2021-03-04 04:05:05 | 規則生效時間為特定周期生效時的生效開始時間。 |
effectiveEndTime | Date | 否 | 2021-03-06 04:05:05 | 規則生效時間為特定周期生效時的生效結束時間。 |
規則所屬業務字段 BusinessCategoryBasicInfo 描述:
屬性 | 值類型 | 是否必選 | 示例值 | 描述 |
---|---|---|---|---|
bid | Integer | 是 | 267202890 | 適用業務 BID,必須數字字符。 |
檢測范圍 range 使用說明
檢測范圍是通過一個數字區間來篩選出當前條件生效的范圍,具體說明如下:
一、無前置條件時
1.{"from":1,"to":3},代表所檢測角色所說的前三句; 2.{"from":-1,"to":-3},代表所檢測角色所說的最后三句話; 3.{"from":3,"to":-3},代表所檢測角色所說的正數第三句到倒數第三句。
二、有前置條件時
存在前置條件時,系統會將所有句子,以前置條件命中句為分割點,切分為三個段落:前置條件命中句之前的所有句子、前置條件命中句之后的所有句子、前置條件命中句前后的部分句子,詳見下圖中所標示的三個段落。需要您先選擇一個段落,然后再通過數字區間在該段落內來篩選具體的生效范圍。
前置條件命中位置之前(anchor.location 的值為 BEFORE)
1.{"from":1,"to":3},代表所檢測角色在當前段落內所說的前三句(緊鄰前置條件命中句的句子的是第一句) 2.{"from":-1,"to":-3},代表所檢測角色在當前段落內所說的最后三句(倒數第一句到倒數第三句)(距離前置條件命中句最遠的是最后一句) 3.{"from":1,"to":-1},代表所檢測角色在前置條件命中句之前的所有句子; 4.{"from":0,"to":2},代表前置條件命中句當句,到所檢測角色所說的第二句之間的三句話(只有在當前條件與前置條件的適用角色一致時,才可以使用第 0 句來定位到前置條件命中句當句,若角色不同,則不允許使用) 5.以上僅為使用示例,并非只能使用以上四種情況,總體來說,正數代表當前段落正數第幾句,負數代表當前段落倒數第幾句。
前置條件命中位置前后(anchor.location 的值為 AROUND)
1.{"from":0,"to":0},僅代表前置條件命中句當句; 2.{"from":1,"to":3},代表當前置條件命中時,在前置條件命中句“之后”的所檢測角色所說的第 1 句到第 3 句; 3.{"from":-2,"to":-4},代表當前置條件命中時,在前置條件命中句子“之前”的所檢測角色所說話術的第 2 句到第 4 句; 4.{"from":-3,"to":3},代表當前置條件命中時,在前置條件命中句子“之前”的所檢測角色所說的第 3 句到“之后”的第 3 句; 5.以上僅為使用示例,并非只能使用以上四種情況,總體來說,正數代表前置條件命中句之后的句子,負數代表前置條件命中句之前的句子。
前置條件命中位置之后(anchor.location 的值為 AFTER)
1.{"from":1,"to":3},代表所檢測角色在當前段落內所說的前三句(緊鄰前置條件命中句的句子的是第一句) 2.{"from":-1,"to":-3},代表所檢測角色在當前段落內所說的最后三句(倒數第一句到倒數第三句)(距離前置條件命中句最遠的是最后一句) 3.{"from":1,"to":-1},代表所檢測角色在前置條件命中句之后的所有句子; 4.{"from":0,"to":2},代表前置條件命中句當句,到所檢測角色所說的第二句之間的三句話(只有在當前條件與前置條件的適用角色一致時,才可以使用第 0 句來定位到前置條件命中句當句,若角色不同,則不允許使用); 5.以上僅為使用示例,并非只能使用以上四種情況,總體來說,正數代表當前段落正數第幾句,負數代表當前段落倒數第幾句。
返回參數
示例
正常返回示例
JSON
格式
{
"Code": "200",
"Message": "successful",
"RequestId": "4987D326-83D9-4A42-B9A5-0B27F9B40539",
"Success": true,
"Data": {
"RidInfo": [
"318"
]
}
}
錯誤碼
訪問錯誤中心查看更多錯誤碼。
變更歷史
變更時間 | 變更內容概要 | 操作 |
---|---|---|
2023-08-01 | API 內部配置變更,不影響調用 | 查看變更詳情 |
2023-08-01 | API 內部配置變更,不影響調用 | 查看變更詳情 |
2023-08-01 | API 內部配置變更,不影響調用 | 查看變更詳情 |
2023-08-01 | API 內部配置變更,不影響調用 | 查看變更詳情 |
2023-08-01 | API 內部配置變更,不影響調用 | 查看變更詳情 |
2023-08-01 | API 內部配置變更,不影響調用 | 查看變更詳情 |
2023-08-01 | API 內部配置變更,不影響調用 | 查看變更詳情 |
2023-08-01 | API 內部配置變更,不影響調用 | 查看變更詳情 |
2023-08-01 | API 內部配置變更,不影響調用 | 查看變更詳情 |
2023-08-01 | API 內部配置變更,不影響調用 | 查看變更詳情 |
2023-08-01 | API 內部配置變更,不影響調用 | 查看變更詳情 |
2023-08-01 | API 內部配置變更,不影響調用 | 查看變更詳情 |
2023-08-01 | API 內部配置變更,不影響調用 | 查看變更詳情 |
2023-08-01 | API 內部配置變更,不影響調用 | 查看變更詳情 |
2023-08-01 | API 內部配置變更,不影響調用 | 查看變更詳情 |
2023-08-01 | API 內部配置變更,不影響調用 | 查看變更詳情 |
2023-08-01 | API 內部配置變更,不影響調用 | 查看變更詳情 |
2023-08-01 | API 內部配置變更,不影響調用 | 查看變更詳情 |
2023-08-01 | API 內部配置變更,不影響調用 | 查看變更詳情 |
2023-08-01 | API 內部配置變更,不影響調用 | 查看變更詳情 |