密级公开
版本10D.2

AICP NLP 资源指南

1. 概述#

本文档描述 AICP-10 平台中 NLP 能力的相关资源的使用方法。

NLP 能力中的资源包括:

  • 话术
  • 质检规则

AICP 10 NLP 能力支持动态设置这些资源。设置方式有两种:

  • 客户端通过 “统一资源管理接口” 上传资源并获取资源ID,然后在调用时在配置中指定资源ID。这类资源称为 “用户资源”。
  • 通过 “管理后台” 上传资源,并配置到请求配置集中,则成为默认的资源。这类资源称为“系统资源”。

2. 资源介绍#

2.1 话术#

话术资源,其内容为JSON对象,UTF-8编码,包含字段如下表说明。

参数类型必选缺省说明
pattern_*Object-话术检查点,一个话术资源下可以包含多个话术检查点
pattern_*.phraseArray of String-标准话术
pattern_*.rangeArray of Integer-话术匹配范围,只包含两个元素,形式为[min, max]
如果指定,则表示该 pattern 只匹配文档中指定范围的句子;
值为负数时,表示匹配倒数第几句。
如果不指定,则表示该 pattern 匹配文档中所有句子。
pattern_*.thresholdFloat0.8话术最低匹配阈值

话术资源对象下可包含多个前缀为pattern_的键值对,每个pattern下range代表这个pattern只匹配文档中指定范围的句子(-1,-2表示匹配倒数第二句到倒数第一句),threshold表示最低匹配的百分比,phrase表示匹配话术。

示例如下:

{
"pattern_0": {
"range": [1, 2],
"phrase": ["你好我的工号是", "您好我的工号是"],
"threshold": 0.7
},
"pattern_1": {
"range": [-1, -2],
"phrase": ["很高兴有为您服务的机会", "很高兴为您服务", "希望能有为您服务的机会"],
"threshold": 0.8
},
"pattern_5": {
"phrase": ["不打搅了", "不打扰了"],
"threshold": 0.8
}
}

2.2 质检规则#

质检规则资源,其内容为JSON对象,UTF-8编码。,包含字段如下表说明。

参数类型必选缺省说明
lexicon_*Array of String-公共词语集
pattern_*Object-质检点
pattern_*.lexicon_*Array of String-仅该 pattern 生效的词语集
pattern_*.phrase_*Array of String-仅该 pattern 生效的短语集
pattern_*.scriptArray of String-该 pattern 的质检句式集,可包含如下要素
lexicon、phrase、sentence、headword、question
pattern_*.sentence_*Array of Object-同义句检出规则,包含阈值及同义句。
形式为[阈值, "同义句1", "同义句2", ...]
pattern_*.sentence_*[0]Float80同义句检出阈值,取值 [0, 100]
pattern_*.sentence_*[#]String-多个同义句。同义句个数无限制
pattern_*.headword_*Object-中心词肯定判断检出规则
pattern_*.headword_*.confirmBool-判断逻辑,表明肯定中心词或者否定中心词
pattern_*.headword_*.keywordsArray of String-待检查的中心词
pattern_*.headword_*.filterObject-目标句子过滤条件
pattern_*.question_*Object-问答肯定判断规则
pattern_*.question_*.answersArray of String-判断逻辑的任意组合,表明对中心词的态度。取值三选一
"negate": 否定,"confirm": 肯定,"notsure": 不确定
pattern_*.question_*.keywordsArray of String-待检查的中心词
pattern_*.question_*.filterObject-目标句子过滤条件

具体语法细节,参见《捷通华声iAnalyze9.6.0_AllEngine大数据分析引擎规则质检建模及优化指导手册》

规则示例:

{
"pattern_普通质检规则": {
"lexicon_ask":["请问","请问你","请问您"],
"lexicon_is": ["是","叫"],
"lexicon_hello": ["你好","您好"],
"lexicon_no": ["工号","员工号码","员工编号"],
"phrase_no": ["(lexicon_ask>lexicon_is|请问是)>lexicon_hello>lexicon_no"],
"script": ["phrase_no"]
},
"pattern_同义句功能": {
"sentence_赠意外险":[ 85, "说是赠送给我一份意外险", "我说是赠送给我一份意外险" ],
"script": ["sentence_赠意外险"]
},
"pattern_中心词肯定判断": {
"headword_肯定减免":{
"confirm":true,
"keywords":["优惠", "减免"],
"filter":["lexicon_申请>lexicon_减免政策","lexicon_需要>lexicon_减免政策"]
},
"script": ["headword_肯定减免"]
},
"pattern_问答肯定判断": {
"question_客户谈减免":{
"answers":["negate", "notsure"],
"keywords":["办理_意外险", "意外保险"],
"filter":["lexicon_需要>{0,6}lexicon_减免政策","lexicon_没有>lexicon_减免政策"]
},
"script": ["question_客户谈减免"]
}
}

3. 资源管理接口#

客户端通过 “统一资源管理接口” 可以对上述的动态资源进行进行增、删、改、查的管理和维护操作。

统一资源管理接口如下:

  • 添加资源

    POST http://ip:port/v10/resource/user/nlp/{type}?appkey={appkey}&userId={userId}

  • 修改资源

    PUT http://ip:port/v10/resource/user/nlp/{type}/{resId}?appkey={appkey}&userId={userId}

  • 查找资源

    GET http://ip:port/v10/resource/user/nlp/{type}?appkey={appkey}&userId={userId}&offset={offset}&limit={limit}

  • 查看资源

    GET http://ip:port/v10/resource/user/nlp/{type}/{resId}?appkey={appkey}&userId={userId}

  • 删除资源

    DELETE http://ip:port/v10/resource/user/nlp/{type}/{resId}?appkey={appkey}&userId={userId}

支持的 type 如下:

cutype说明系统资源用户共享资源用户独享资源
nlpqarule质检规则
talktrick话术

创建 NLP 动态优化资源时,有如下约束:

  • 用户资源
    • 各类型的资源,目前均只支持用户共享资源,因此不需要提供用户标识(userId),或者指定为 "*"
    • 各类型的资源在同一个开发者下面是共享的,最多可以存储 10000 个用户资源
  • 系统资源
    • 各类型的资源,在一个开发者下都是支持最多10000个

具体的请求参数、请求消息和相应消息,请参见 《统一资源管理开发手册》