猎户NLP中插入第三方NLP
持续更新的链接https://orionstar.feishu.cn/docs/doccnEXxrRwiyTOguIS2FIYNiU2,请转向此链接查看此功能
背景
目前合作的客户中,有些公司具备NLP开发能力,豹小秘的NLP并不能符合终端业务的使用场景,所以客户急需豹小秘可以对接第三方NLP的能力,于是催生出NLP服务平台中的“第三方NLP接入”功能模块
实现流程
- ASR识别结果上传服务器(query)
- 向第三方NLP发送请求(发送query)
- 第三方NLP返回结果(返回query的结果)
- 数据结果返回(选择结果来源)
同一个query来到后,用户可以根据自身实际需求调整优先级,自行选择回复猎户NLP数据还是第三方NLP的数据:
- 全部回复第三方NLP的结果
- 部分回复第三方NLP的结果:当第三方NLP没有数据返回时,再回复猎户NLP的结果
接入流程——四步接入,后台可视化配置
开发接入接口
我们提供标准版NLP协议接口,需要第三方接入公司按照此协议开发接口
请注意,请求体中“deviceid”字段,我们请求时会有“device_id”和“deviceid”两个情况,请注意做兼容
请求参数
Headers:
参数名称 | 参数值 | 是否必须 | 示例 | 备注 |
Content-Type | application/json | 是 |
Body:
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
sn | string | 必须 | ⼀次请求的唯⼀标识 | ||
query | string | 必须 | query | ||
[-]user_semantics | object | 必须 | ⽤户属性信息 | 备注: ⽤户属性信息 | |
client_id | string | 必须 | 业务线id | ||
enterprise_id | string | 必须 | 企业 id | ||
deviceid | string | 必须 | 机器 id | ||
lang_str | string | 必须 | 设备的系统语⾔。当需要⽀持多语⾔时可以参考该字段 | ||
[-]query_semantics | object | ⾮必须 | |||
[-]entity | object[] | ⾮必须 | item 类型: object | ||
text | string | 必须 | |||
value | string | 必须 | 对于普通实体词,该字段为⽂本。对于地点词、时间等,该 字段为结构化的数据,是⼀个object | ||
tag | string | 必须 | |||
start_pos | string | ⾮必须 |
返回数据
名称 | 类型 | 是否必须 | 默认值 | 备注 | 其他信息 |
status | number | 必须 | [1, 0] 默认为 1表示 nlp 字段有效可⽤ | ||
query | string | ⾮必须 | 请求 query | ||
sn | string | ⾮必须 | 请求 sn | ||
[-]nlp | object [] | 必须 | nlp 结果 | item 类型: object | |
domain | string | ⾮必须 | 领域标识 | ||
english_domain | string | 必须 | 英⽂领域标识 | ||
intent | string | 必须 | ⽤户意图 | ||
action | string | ⾮必须 | 机器⼈action | ||
[-]slots | object | 必须 | 抽取的信息 | 备注: 抽取的信息 | |
answer | string | 必须 | 回复⽂本 | ||
[-]feed | object | ⾮必须 | |||
[-]image | object [] | ⾮必须 | 图⽚ | item 类型: object | |
src | string | 必须 | |||
[-]video | object [] | ⾮必须 | 视频 | item 类型: object | |
src | string | 必须 | |||
[-]audio | object [] | ⾮必须 | ⾳频 | item 类型: object | |
src | string | 必须 | |||
[-]custom | object [] | ⾮必须 | 定制化类型 | item 类型: object | |
type | string | 必须 | 根据 type 不同字段不同 | ||
[-]relate | object [] | ⾮必须 | 相似推荐 | item 类型: object | |
text | string | 必须 | 相似 query text | ||
score | number | ⾮必须 | mock: @float | ||
src | string | ⾮必须 | |||
[-]button | ⾮必须 | 按钮 | item 类型: object | ||
text | string | ||||
link | string | ⾮必须 | |||
source | string | 此协议结果的来源 | |||
confidence | string | ⾮必须 | 置信度 | ||
source | string | ⾮必须 | 此协议结果的来源: ⾮常重要,影响优先级 | ||
agent | string | ⾮必须 | 模块:第三⽅固定填⼊ “third” |
如下“response”为接口返回示例,协议中的必须项一定要有,注意18、19行NLP的两个括号
{ "headers": { "url": "url", "method": "post" }, "body": { "sn": "nlp_ai_capacity.xxxxx", "query": "我要立案", "user_semantics": { "client_id": "orion.ovs.client.xxxxx", "enterprise_id": "orion.ovs.entprise.xxxxx", "device_id": "xxxxxx"//注意,这个地方我们请求时会有“device_id”和“deviceid”两个情况,请注意做兼容 } }, "response": { "status": 1, "error": "", "nlp": [ { "english_domain": "tell_me_why",//必须是“tell_me_why” "slots": {}, "source": "xxxxx",//建议为您公司英文名称,防止与其他公司冲突,全局唯一 "intent": "xxxxxxx",//为当前事件的意图,自定义填写,建议为公司英文缩写+英文,防止与其他公司冲突,全局唯一例:lhxk_xxx "feed": { "button": [ { "text": "离婚纠纷", "link": "离婚纠纷" }, { "text": "劳动争议", "link": "劳动争议" }, { "text": "民间借贷纠纷", "link": "民间借贷纠纷" }, { "text": "机动车交通事故纠纷", "link": "机动车交通事故纠纷" }, { "text": "知识产权纠纷", "link": "知识产权纠纷" }, { "text": "其他情形", "link": "其他情形" } ] }, "answer": "您可以将起诉状等相关的材料按照法律程序提交至立案窗口或者立案庭" } ], "msg": "返回成功" } }
注意事项
- “status”为1,代表第三方NLP有结果,无结果时为0
- “english_domain”必须是“tell_me_why”
- 如果您有相似query推荐功能(下图),除了需要将feed.releate.text字段填写,还需要将“agent”填为“third”
- “source”建议为您公司英文名称,防止与其他公司冲突,全局唯一
- “intent”为当前事件的意图,自定义填写,建议为公司英文缩写+英文,防止与其他公司冲突,全局唯一例:lhxk_xxx
NLP后台接入,调试验证(联系我们售前同事)
一定要点击“企业列表”进入!!!
- 输入企业ID或者企业名搜索,点击进入
刚创建的企业不会立马搜索到,需要该机器绑定机器并且有交互数据后等待1小时左右
- 点击新增对话模块
- 编辑模块
- 模块名称:默认“third”,不需要修改
- 来源:此命名全局唯一,建议代理商名+下划线+企业ID数字,并做好备份记录,例如:qingdun_8741097174,yunguanbo_1580528414
- 请求方式:默认 post
- url:第三方nlp上述协议提供的请求url
- query:测试问例
完成后点击下方检查
- 需要严格按照协议回复,必填项都要有内容,可以为空
- 检查通过后点击保存
调整优先级顺序(联系售前同事)
模块名称与来源对应信息说明(部分)
- intervene/other代表:去充电技能
- reveal/sensitive代表:敏感词
- task/intervene代表:后台干预的case
- task/grammer代表:guide、MEUI、轻应用、跳舞、自定义领域问法等技能
6、7、8、9、10、11代表领域意图分类抽取模型,属于一类
- qa/kg代表:qa/kg 知识图谱
- qa/qapair 自定义问答、关键词问答
- qa/orion猎户企业百科
- qa/mrc阅读理解
注意
- 若要轻应用等技能可以使用,至少需要将第三方的NLP移动到task下面,会先走第三方NLP然后走猎户问答
- (推荐,可以使后台的自定义问答生效)第三方NLP配置到qa/orion后边,使自定义问答和猎户百科优先生效,这两个没有结果的话再走第三方NLP,根据客户需求修改优先级顺序
- 若要先走第三方NLP再走我们的NLP,就将第三方的NLP移动到最上边,此时第三NLP的优先级最高
将chat/chat移动至chat/other的上方(使日历技能生效)
发布线上(售前同事操作)
新增的第三方NLP默认在最下方,需要调整顺序
1、点击拖动顺序 2、顺序确定后更新模块保存 3、测试ok后发布线上
如果第三方NLP处理速度较慢(>500ms),则需要修改超时时间(默认500ms),则点击4修改,完成后点击更新模块和发布线上