# 概述

# 功能简介

提供完整的智能机器人服务,主要功能有:智能问答、智能提示、热门问题推荐、用户行为反馈、个性化配置、人工监管等。开发者可按需调用相关功能的接口服务。

会话启动与关闭

智能机器人服务的过程中,会涉及多种会话启动与关闭的场景,具体梳理5种场景如下:

【启动程序】 启动机器人程序,则会话开始,调用相关服务:开始新会话。其他内容初始化服务,可按需调用。

【中途切换产品】 中途切换产品成功时,关闭上一个会话,开启新会话。按顺序调用相关服务:关闭会话开始新会话授权登录备注:切换产品前已有用户信息时,调用授权登录服务,以保留用户信息;若无用户信息,则不需再调用登录服务。

【中途切换账号】 中途切换账号成功时,关闭上一个会话,开启新会话。按顺序调用相关服务:开始新会话授权登录关闭会话。 备注:在登录成功后,再调用关闭会话服务,用来关闭上一会话(上一会话的信息需要提前缓存,应对登录失败的情况)

【退出程序】 退出当前程序时,关闭当前会话,调用相关服务:关闭会话

【会话超时】 超过设定时间用户未与机器人交互,关闭当前会话。调用相关服务:关闭会话。 用户再次与机器人交互时,开启新会话。调用相关服务:会话超时,重启会话

智能问答

相关API访问地址:获取问题/答案相关服务

场景:用户提问,机器人回答

提问方式:输入问题/点击问题 (输入问题获取答案的方式是算法匹配,点击问题获取答案的方式是根据id)

答案类型:常规问题的答案、流程问题的答案、多轮对话的答案、关联问题的答案

【常规问题的答案】 此为主要场景,一次性显示完整答案。

【流程问题的答案】 适用于复杂答案的分步骤显示。

【多轮对话(表格知识)的答案】 适用于模糊问法,机器人引导用户回答,多轮交互后给出最终答案。 调用相关服务:根据算法匹配,获取答案V2

【关联问题的答案】 某个答案内容会关联其他问题的答案,点击关联问题,即可获得对应问题的答案。

智能提示

相关API访问地址:获取智能提示的问题根据问题id,获取答案

场景:在用户输入问题的过程中,实时联想提示,用户点击即可获得答案。

热门问题推荐

相关API访问地址:获取TOP热门问题根据问题id,获取答案

场景:统计并展示用户咨询的高频问题,用户点击即可获得答案。

个性化配置

相关API访问地址:获取公共配置

场景:用户可在后台进行欢迎语/公告的内容配置,并在前台显示。

用户行为反馈

相关API访问地址:答案点赞点踩等答案点踩反馈会话解决情况评价反馈

场景:用户可以对答案进行评价及反馈;在会话结束时,用户可以对会话进行评价及反馈。

【答案评价】

【答案反馈】

【会话反馈】

人工监管

相关API访问地址:人工监管功能相关服务

场景:提供人工监管功能,人工客服可在后台监控用户与机器人的对话,并可随时接管会话,提供人工服务。调用服务后,可享有人工服务。

备注:人工监管调用逻辑稍复杂,具体流程图详见:websocket调用特殊说明

# 服务调用说明

调用说明

智能机器人相关服务请在后端进行调用,不可在前端直接调用。

请求的基准路径 base-url

  • 测试环境: http://robotdev.glodon.com
  • 预发环境: http://robot-cloud.glodon.com
  • 生产环境: http://robot.glodon.com

常用状态码及返回信息

httpCode code message (示例) 描述(返回值中没有此项)
200 200 success 成功
400 400 Required parameter 'xx' is not present 参数缺失
400 XXMethod.xxparam: Length exceeds the max limit xx 参数长度超过最大限制
400 XXMethod.xxparam: value must be between xx and xx 参数无效
500 500 java.lang.IndexOutOfBoundsException 服务端数组越界错误
500 java.lang.ClassCastException 服务端类转型错误
500 java.lang.NullPointerException 服务端空指针错误

# websocket调用特殊说明

接口描述

  • websocket交互协议

建立连接时的请求数据

机器人与服务端建立连接示例:

    {
		"chatid": "61fdae8f-8005-48ae-853f-180ab1715421",
		"peerChatid": "qubb_1578390845523_human",
		"robot": "GBQ4",
		"reOpenFlag": "0"
	}
	
1
2
3
4
5
6
7

训练师与服务端建立连接示例:

	reOpenFlag为1表示重连,0表示初次连接
    {
		"chatid": "qubb_1578390845523_human",
		"peerChatid": "61fdae8f-8005-48ae-853f-180ab1715421",
		"robot": "GBQ4",
		"reOpenFlag": "0"
	}
	
1
2
3
4
5
6
7
8

心跳时的交互数据

机器人端心跳数据:

	发送
   {
		"msgType": "ping",
		"chatid": "61fdae8f-8005-48ae-853f-180ab1715421",
		"peerChatid": "qubb_1578390845523_human"
	}
	
	收到
	{
		"msgType": "pong"
	}
	
1
2
3
4
5
6
7
8
9
10
11
12

训练师端心跳数据:

	发送
   {
		"msgType": "ping",
		"chatid": "qubb_1578390845523_human",
		"peerChatid": "61fdae8f-8005-48ae-853f-180ab1715421"
	}
	
	收到
	{
		"msgType": "pong"
	}
	
1
2
3
4
5
6
7
8
9
10
11
12

问答时的交互数据

训练师发送数据示例:

    {
		"chatid": "qubb_1578390845523_human",
		"peerChatid": "61fdae8f-8005-48ae-853f-180ab1715421",
		"robot": "GBQ4",
		"content": "你好",
		"msgType": "text",
		"role": "ms",
		"time": "2020-01-07 17:54:54"
	}
	服务端将此消息转发给机器人
	
1
2
3
4
5
6
7
8
9
10
11

用户发送数据示例:

    {
		"chatid": "61fdae8f-8005-48ae-853f-180ab1715421",
		"peerChatid": "qubb_1578390845523_human",
		"robot": "GBQ4",
		"content": "嗯",
		"msgType": "text",
		"role": "app",
		"time": "2020-01-07 17:55:45"
	}
	服务端将此消息转发给训练师
	
1
2
3
4
5
6
7
8
9
10
11

关闭时的交互数据

服务端发送给客户端的关闭示例:

	断网后恢复
    {
		"chatid": "c960732a-dc17-444f-84f2-8efacba7ae23",
		"msgType": "close_offline",
		"peerChatid": "gaoh-j_1578571096323_human"
	}
	
	服务端异常退出
	{
		"chatid": "c960732a-dc17-444f-84f2-8efacba7ae23",
		"msgType": "close_exception",
		"peerChatid": "gaoh-j_1578571096323_human"
	}
	
	3分钟无交互退出
	{
		"chatid": "c960732a-dc17-444f-84f2-8efacba7ae23",
		"msgType": "close_session",
		"peerChatid": "gaoh-j_1578571096323_human"
	}
	
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

websocket调用流程图

  • 在线客服

  • 意见反馈