七鱼开发文档中心
总览服务端 APIWebiOSAndroid鸿蒙Uniapp微信小程序插件三方接入
在线机器人机器人会话

机器人消息接口概览

独立机器人消息接口的调用流程、会话生命周期、错误码和返回说明。

消息接口

七鱼除了提供在线客服+在线机器人一体化的对接方式以外,另外独立开放一套机器人能力接口,你可以在任意设备/终端/平台上,通过http调用方式,使用这套接口实现机器人对话能力。同时,这套接口里也提供了丰富的转人工事件,你可以基于这些事件,完成七鱼机器人和你的im平台/人工客服平台的无缝对接。

概念/名词解释

企业/调用方/接入方:使用七鱼平台的客户。

员工:使用七鱼的企业管理员。

访客/用户:在终端与机器人对话的企业用户。

会话:一位访客一次完整的机器人消息咨询(从访客开始咨询到访客结束本次咨询)

消息:会话中访客发送或机器人回复的每一条消息内容。

渠道:访客接入的终端,包括 WEB网页/APP客户端/微信公众号/wx小程序/微博等。

配置:企业员工在七鱼平台设置的内容,包括知识库配置/词库配置/访客端配置/人机协作设置等。

FAQ:企业员工在七鱼机器人模块“知识库-问题”里配置的知识。

寒暄:企业员工在七鱼机器人模块“知识库-自定义寒暄库”里配置的知识。

BOT:企业员工在七鱼机器人模块“知识库-一触即达”里配置的意图/流程。

接口通用说明

调用方式

开放平台接口开发者需通过HTTP/HTTPS POST方式调用,并按照接口声明,填充相应请求参数信息。发起请求调用后,七鱼系统会返回相应回复数据,如果请求不合法或发生异常,系统会返回相应的错误码,开发者可根据返回状态码自行排查问题。

鉴权认证方式

开放平台接口会做统一的鉴权认证,开发者在调用接口时,需要将以下鉴权信息字段填充到url参数中。

字段类型注释
appKeystring七鱼分配给企业的appKey
timelong当前 UTC 时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的秒数
checksumstring用于校验数据的完整性,SHA1(appSecret + md5 + time),由三个参数拼接的字符串,进行SHA1哈希计算,转化成16进制字符(String,小写)
  • 备注: appKey 和 appSecert 可在七鱼企业管理后台“系统-扩展与集成-开发者ID”页查看。 checksum 中的 md5 为 POST请求 的 body 内容字符串的 md5 哈希值(小写形式),即 md5 = MD5(bodyContent).toLowerCase(),如果是上传文件,则是整个文件内容的md5。 出于安全性考虑,每个 checksum 的有效期为 5 分钟,请确认发起请求的服务器是与标准时间同步的,比如有NTP服务。
  • 计算 checksum 的 Java 示例代码如下:
 public class QiyuPushCheckSum {
  private static final char[] HEX_DIGITS = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
  public static String encode(String appSecret, String md5, String time) {
    String content = appSecret + md5 + time;
    try {
      MessageDigest messageDigest = MessageDigest.getInstance("sha1");
      messageDigest.update(content.getBytes());
      return getFormattedText(messageDigest.digest());
    } catch (Exception e) {
      throw new RuntimeException(e);
    }
  }
  private static String getFormattedText(byte[] bytes) {
    int len = bytes.length;
    StringBuilder buf = new StringBuilder(len * 2);
    for (int j = 0; j < len; j++) {
      buf.append(HEX_DIGITS[(bytes[j] >> 4) & 0x0f]);
      buf.append(HEX_DIGITS[bytes[j] & 0x0f]);
    }
    return buf.toString();
  }
}

返回状态码

code说明
200无错误
14001appKey不存在
14002checksum计算错误
14003time已过期
14004内容错误,字段格式或字段值不合法
14008ip黑名单
14009触发接口频率限制
14500系统错误,通常是服务器内部错误
14501内容长度限制
14515无接口访问权限

对接场景示例

这里介绍一个基本的机器人会话对接流程,基于此流程可实现一个最基础的机器人对话能力对接。除了基本的会话流程接口外,我们还提供了其他丰富的功能接口,用于提高访客和人工客服咨询/答疑效率,接入方可在接口明细查看相应的接口介绍,自行对接在会话过程中,完善咨询体验。

对接前提

已经在七鱼机器人平台搭建了机器人。

调用时序图

对接步骤

  1. 调用/openapi/robot/session/create 创建会话接口,创建一个机器人会话。uid + productId 作为访客在七鱼系统里的唯一标志,一个访客同一时间最多只存在一个机器人会话,在这通会话生命周期内,该访客发送的问答消息都会记入这一通会话中。
  2. 调用/openapi/robot/session/chat 问答接口,机器人将根据配置的FAQ知识库/寒暄知识库/BOT流程,以及转人工策略和未知回复策略等,按照相应的处理优先级顺序,找到当前消息最佳回答。机器人回答主要可分为两大类,第一类是用来回复访客,接入方按机器人给的回答内容展示给访客;第二类是触发转人工事件,此事件表示该访客需要人工客服接入处理,接入方可实现人机无缝转接。
  3. 每一条回复访客的机器人消息,会带上是否允许评价等信息,接入方可基于这些信息实现消息评价功能,访客评价后接入方可通过/openapi/robot/session/msgEvaluation接口,将相应评价结果同步到七鱼,七鱼会生成对应的消息纬度数据报表,便于接入方管理数据和知识。
  4. 在访客输入消息过程中,接入方可基于/openapi/robot/session/msgAssociate 输入联想接口,实现访客输入提示,提高访客咨询效率和使用体验。该功能接入方按需对接即可。
  5. 访客发送一条消息后,除了正常的机器人回复流程外,接入方还可以根据/openapi/robot/session/msgPredict 服务先知接口,实现访客意图推荐功能,功能以按钮或卡片等形式给访客选择,提高咨询效率和使用体验。该功能接入方按需对接即可。
  6. 机器人服务过程中,接入方可基于机器人会话评价/openapi/robot/evaluation/setting接口,获取机器人支持的评价模式,实现评价功能,收集访客对这一通机器人会话整体的评价。并通过/openapi/robot/evaluation/comment接口,将访客对会话的评价上传到七鱼机器人平台,七鱼会生成相应的会话纬度满意度统计报表,便于接入方管理数据和知识。
  7. 若接入方在访客端实现了访客主动转人工功能,由于这种转人工场景并不是由机器人触发的,七鱼机器人对这种原因结束的会话没有感知,造成机器人历史数据的不完整。此时,接入方应对接 /openapi/robot/session/close 机器人会话关闭接口,主动告知机器人访客通过其他途径转到了人工客服。这样七鱼平台生成的机器人会话数据才能保证完整。若接入方未实现此接口,则七鱼系统会在访客10min未产生新的消息后,自动结束掉这一通机器人会话。

这篇文档有帮助吗?

目录