第三方引擎接入与回复优先级配置
更新时间:2024-05-17
第一步:服务层搭建
说明
本平台支持第三方会话引擎可插拔方式接入集成。调用ngd core/query接口时,UNIT企业版作为客户端会去第三方会话引擎进行查询,获取响应,根据优先级规则处理,返回用户;支持第三方会话引擎session管理。具体介绍如下:
URL
业务方自定义即可,支持http/https
请求方式
POST
请求认证
Header Authorization机制
Authorization 生成方式
public String basic(String userName, String password) {
if (StringUtils.isEmpty(userName) && StringUtils.isEmpty(password)) {
return null;
}
String usernameAndPassword = userName + ":" + password;
byte[] bytes = usernameAndPassword.getBytes(Charset.forName("ISO-8859-1"));
return "Basic " + Base64.getEncoder().encodeToString(bytes);
}
请求HEADER
根据配置header列表进行透传
请求参数说明
无
请求体说明
参数名 | 类型 | 必选 | 说明 |
---|---|---|---|
queryId | String | 是 | 请求Id |
queryText | String | 是 | 请求文本,文本长度不超过140 |
sessionId | String | 否 | 会话id,会话session使用 |
channel | String | 否 | 渠道信息 |
context | Map | 否 | 上下文信息。当前的会话引擎上下文信息 |
返回参数
参数 | 类型 | 说明 | |
---|---|---|---|
errno | int | 错误码,响应正常情况为200,非200则为失败请求 | |
msg | String | 错误信息 | |
time | long | 请求处理时间戳,单位:毫秒 | |
data | Map<String, Object> | Json |
data
参数 | 说明 | 类型 | 必须返回 |
---|---|---|---|
answerText | 需要返回的回答文本 | String | 否,澄清情况可以只返回clarifyList,非澄清情况必须返回 |
answer | 需要返回的回答详情,第三方会话引擎定义 | Map<String, Object> | 否,澄清情况可以只返回clarifyList,非澄清情况必须返回 |
clarifyList | 澄清答案,如果是列表类型支持和多轮意图、faq澄清一起合并澄清 | List | 否,非澄清情况不需要返回 |
isClarify | 是否是澄清答案 | Boolean | 是 |
repEL | answerText是否需要表达式替换,默认false | Boolean | 否 |
context | 当前会话引擎最新的上下文信息,会全量替换 | Json | 是 |
solved | 是否有答案 | Boolean | 是 |
confidence | 相似度,需要保证多会话引擎间可比较 | Double | 是 |
model | 引擎模型 | String | 否 |
请求示例
curl -XPOST 'https://xxx.xxx.xx/query' -d '{"queryId":"请求标识","queryText":"请求文本","sessionId":"会话标识","channel":"渠道信息","context":{"val":"上下文信息,key、val自定义,整体context透传"}}'
返回结果
{
"errno": 200,
"time": 1515128855583,
"msg": "ok",
"data": {
"answerText": "文本回复",
"answer": {
"answerText": "回复详情"
},
"isClarify": false,
"context": {
"val": "上下文信息,key、val自定义,整体context全量覆盖更新"
},
"solved": true,
"confidence": 1.0
}
}
第二步:注册第三方引擎
选择【基础资源】-【第三方对话引擎】-【增加引擎】,在弹窗中编辑引擎相关信息。其中URL地址需要配置第一步中服务提供的地址了;如果服务层有要求,也需要填写相关的用户认证和header参数。
填写完成后保存,形成该引擎的卡片
第三步:配置第三方引擎优先级
选择【会话bot】-【管理bot】-【回复优先级】-【自定义】,在回复优先级列表中根据需求增加自定义规则
选择所属引擎为刚才创建的第三方引擎,并设置条件,至少要设置一项条件,一般为“是否有答案”为”是“
除了是否有答案,目前还可以配置:置信度、命中的算法、是否澄清、上轮会话是否命中webhook等策略(前提是服务层支持传入相关内容)。
设置好规则并保存后,即可接入第三方服务。在会话测试窗口,可以直接针对第三方引擎进行测试。
在测试时,可以针对性选择对话模式为某个第三方引擎,或根据调试信息判断对话回复的来源是否为第三方引擎。