业务系统对接
所有文档

          智能客服对话平台 ICS

          业务系统对接

          本平台支持使用Webhook机制,对接机器人和客户业务系统。具体介绍如下:

          URL

          与webhook中配置的url一致。

          说明

          通过webhook server对接业务系统,对会话中的回答value及上下文变量context进行处理,完成业务咨询、业务办理等业务动作。 所有的接口要支持可重入,可根据query_id来判断,系统在请求超时后会重试一次。

          请求方式

          http post

          参数说明

          请求体说明

          参数 说明 类型 是否必需
          action 对话树中配置的action String 否,依配置情况而定。
          dialog_node_name 对话树中节点名称,从哪个节点调用的webhook。 String
          context 会话过程中的上下文变量 Json
          value 当前节点或问答中配置的value回复,如果webhook异常将返回配置的兜底回复话术,webhook正常返回的话这个配置的值就不使用,以webhook返回为准。 String 否,依配置情况而定 ,正常情况下返回的话术要么是webhook服务返回的value,要么是在节点中使用模版,通过拼装webhook服务返回的context来实现。
          session_id 会话id String 是,便于全链条复现对话,定位问题。
          query_id 请求id String 用于定位session中的request。全局唯一。
          Header Authorization 校验字段 String
          其它配置的headers

          context包含关键字段说明

          特别说明:对于context字段在对话中存储着上下文的所配置的变量,同时由于产品上内置了两个变量(conversation、sys_counter),在context如果配置了以上两个字段将被系统过滤掉

          参数字段 说明 类型 是否必需
          conversation 当前会话历史记录 List

          list中的Map对象

          参数 说明 类型 是否必需
          query 请求文本 String
          answer 回复文本 String

          返回参数

          参数 说明 类型 是否必需
          errno 错误码 int
          msg 错误信息 string
          data json

          data

          参数 说明 类型 是否必需 说明
          context 需要新增、更新的上下文变量,要清除的用“key”:null json 有一个必须的布尔型参数api_response_status,用来表示业务系统是否正常响应。
          value 需要返回的回答 String 如果返回了这个字段,将这个字段的值返回给用户。
          valueType 需要返回的答案类型 int 答案类型支持:
          文本类型:1
          列表类型:8
          默认值为:1

          valueType: 1,纯文本类型

          参数名 类型 说明
          value String 回复内容类型 1:纯文本

          valueType: 8,列表类型

          参数名 类型 说明
          value Map 回复内容类型 8:列表类型

          value:

          参数名 类型 说明
          title String 回复标题
          list List< String> 回复列表

          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);
          }

          请求示例

          curl -XPOST 'https://api-aicp.baidu.com/api/v1/webhook' -d '{"context":{"location":"北京"},"action":"get_weather","dialog_node_name":"get_weather","session_id":"xxxxxxx","query_id":"xxxxxxxxx"}'

          返回结果

          {"code":200,"time":1515128855583,"msg":"ok","data":{"context":{"api_response_status":true},"value":"周五 01月05日 (实时:1℃),多云转晴,西风微风,3 ~ -6℃.周六,多云转阴,东北风微风,2 ~ -4℃.周日,阴转多云,西南风微风,3 ~ -4℃.周一,晴,西北风4-5级,2 ~ -6℃."}}
          上一篇
          运营管理
          下一篇
          会话机器人对接