Skip to content

A. HTTP API 参考

JoyInside 全量服务端 HTTP 接口的字典式速查。按鉴权、设备管理、角色管理、用户绑定、聊天记录、在线设备、视觉上报、网易云音乐 分组。各接口详细字段说明见正文对应章节。

A.1 通用信息

API 地址

环境域名
测试https://uat-api.joyinside.com
生产https://api.joyinside.com

鉴权方式

getToken / refreshToken 自身外,所有接口均需在 Header 中携带:

Authorization: Bearer ${accessToken}

Token 获取方式见 4.1 Token 鉴权

公共请求参数

参数说明出现场景
vendorId企业 id(测试环境固定 200196多数接口
botId设备唯一标识多数接口
requestId请求追踪,建议 UUID多数接口
uid用户 id(≤128 字节),关联长期记忆与聊天报告绑定 / 聊天接口

统一返回结构

字段类型说明
stateStringSUCCESS / FAILURE / ERROR
codeString0000200 成功;50x 系统错误
msg / resultString错误描述(成功时为 null)
data各接口不同业务数据

部分早期接口 code 为数字 200,新接口统一为字符串 0000

A.2 鉴权接口

A.2.1 获取 Token

项目说明
URL/auth/getToken
方式POST
鉴权无需 Token(本身用于获取 Token)

请求参数

字段类型必填说明
accessKeyIdStringAccessKey
accessTimestampString13 位毫秒时间戳(≤5min 误差)
accessNonceString随机字符串(防重放)
accessVersionString固定 V2
accessSignStringHMAC-MD5 签名
botIdString设备标识,与 vendorId 二选一
vendorIdString厂商标识,与 botId 二选一

返回

字段说明
accessToken访问令牌(有效期 8h)
expireIn访问令牌剩余有效秒数
refreshToken刷新令牌(有效期 7d)
refreshExpireIn刷新令牌剩余有效秒数

详见 4.1 Token 鉴权 — 签名算法

A.2.2 刷新 Token

项目说明
URL/auth/refreshToken
方式POST
鉴权无需 Token

请求参数

字段类型必填说明
accessKeyIdStringAccessKey
refreshTokenString刷新令牌
botIdString与 vendorId 二选一
vendorIdString与 botId 二选一

返回:同 getToken(新的 accessToken + expireIn)。

A.3 设备管理

A.3.1 设备注册

项目说明
URL/device/register
方式POST

请求参数

字段类型必填说明
vendorIdString厂商唯一标识
appIdString应用 ID(与 productId 二选一)
productIdString产品 ID(与 appId 二选一)
typeStringPHYSICAL_ROBOT(生产)/ APP_ROBOT(测试)
nameString设备名称
deviceIdString设备唯一标识(厂商保证唯一)
deviceModelString设备型号
timbreIdString音色 id
descString描述
resourceAuthedListList<String>资源提供方(如 WANG_YI_CLOUD

返回 data:String — 注册成功的 botId。

⚠ 同一 deviceId 重复注册返回已有 botId,不会生成新 botId。详见 4.2 设备注册

A.3.2 设备列表

项目说明
URL/device/list
方式POST

请求参数

字段类型必填说明
requestIdString请求追踪
vendorIdString厂商 id
pageSizeInteger每页条数(10~500)
pageNumInteger页码(≥1)
botIdString筛选
appIdString筛选
productIdString筛选
snString筛选
shortCodeStringbot 短码筛选

返回 dataPageResult<BotBaseInfoDetailDTO>(含 records / total / size / current / pages)。

A.4 AI 角色管理

A.4.1 系统角色列表

项目说明
URL/agent/roles/query
方式POST
Content-Typeapplication/json

请求参数

字段类型必填说明
appIdString应用唯一标识
requestIdString每次请求唯一标识,建议 UUID
botIdString设备唯一标识,与 vendorId 二选一
vendorIdString厂商唯一标识,与 botId 二选一

返回 dataList<SystemRole>

字段类型说明
roleNameString系统角色名称
roleCodeString系统角色 code(等同 roleId,调用设备绑定角色接口时将该值传入 roleId)

A.4.2 自定义角色列表

项目说明
URL/soulmate/role/customRole/list
方式POST

请求参数:requestId / vendorId / userId(均必填)。

返回 dataList<VendorRoleDto>

A.4.3 自定义角色详情

项目说明
URL/soulmate/role/customRole/get
方式POST

请求参数:roleId / vendorId / requestId(均必填)。

返回 dataVendorRoleDto

A.4.4 自定义角色创建

项目说明
URL/soulmate/role/customRole/save
方式POST

请求参数

字段类型必填说明
vendorIdString企业 id
userIdString用户 id(空代表系统预制伙伴)
requestIdString请求追踪
roleNameString角色名
roleCodeString系统角色编码,通过 §G.4.1 查询列表选取。设备绑定角色成功后,会以该自定义角色中 roleCode 对应的系统角色更新对话运行时上下文
timbreIdString音色 id,不为空时角色被绑定后将以自定义音色为准(自定义角色 timbreId 优先于系统角色默认 timbreId)

返回 data:Bool。

⚠ 每用户每企业最多 10 个自定义角色。

A.4.5 自定义角色编辑

项目说明
URL/soulmate/role/customRole/update
方式POST

请求参数:vendorId / roleId / requestId 必填;roleName / roleCode / timbreId 选填。

返回 data:Bool。

A.4.6 自定义角色删除

项目说明
URL/soulmate/role/customRole/delete
方式POST

请求参数:vendorId / roleId / requestId(均必填)。

返回 data:Bool。

A.4.7 为设备绑定角色 ⭐

角色不通过 WS 建连参数传入,改用此 HTTP 绑定接口(推荐方式)。

项目说明
URL/soulmate/role/botBindRole/save
方式POST

请求参数

字段类型必填说明
vendorIdString企业 id
roleIdString角色编码。取值:1)系统角色 code(从 §G.4.1 列表选定);2)自定义角色 ID(从 §G.4.2 列表选定)
botIdString设备 id
requestIdString请求追踪
roleTypeStringSYSTEM 系统角色 / CUSTOM 自定义角色(不传默认 CUSTOM)

返回 data:Bool。

⚠ 旧方式 roleCode 建连参数不再推荐,新接入统一用绑定接口。 ⚠ 切换角色需重建 WebSocket 连接才能生效。

A.4.8 查询设备绑定角色

项目说明
URL/soulmate/role/botBindRole/get
方式POST

请求参数:vendorId / botId / requestId(均必填)。

返回 dataVendorRoleDto

字段类型说明
idLong数据 id(可忽略)
vendorIdString企业 id
userIdString用户 id
roleIdString角色(AI 伙伴)id
roleNameString角色名
roleCodeString系统角色编码
prologueString开场白
timbreIdString语音音色 id
langString语言偏好
enableInternetSearchString是否开启联网搜索
enableLongTermMemoryString是否开启长期记忆
ynInteger删除标识
createTimeDate创建时间
modifyTimeDate更新时间
roleTypeString角色类型(SYSTEM / CUSTOM)

A.4.9 修改昵称和设备称呼

特殊要求:需在 JoyInside 运营平台做相应配置,全局人设(agentProfile)必须使用 FreeMarker 模板语法引用昵称变量占位。平台配置若不含 ${agentName!"默认名称"} 占位符,通过接口修改昵称对该 App 完全无效,大模型始终用系统内置硬编码名称。

项目说明
URL/soulmate/role/nickName/update
方式POST

请求参数

字段类型必填说明
botIdString设备 id
uidString绑定用户 id
userNicknameString用户昵称
equipmentNameString设备称呼

返回 data:Bool。

A.4.10 查询昵称和设备称呼

项目说明
URL/soulmate/role/nickName/get
方式POST

请求参数:botId(必填)/ uid(选填)/ requestId(选填)。

返回 dataNickNameResponse(botId / uid / userNickname / equipmentName)。

A.5 音色

A.5.1 查询企业音色列表

项目说明
URL/soulmate/timbre/findAllByVendorId
方式POST

请求参数:vendorId / requestId(均必填)。

返回 dataList<VendorTimbreDTO>(timbreId / voiceName)。

A.6 用户绑定

A.6.1 绑定用户

项目说明
URL/device/bindUser
方式POST

请求参数:uid / botId / requestId(均必填)。

返回 data:String(uid)。

⚠ uid ≤128 字节,必须真实。详见 4.3 核心参数总表

A.6.2 查询设备绑定 uid

项目说明
URL/device/queryBotBind
方式POST

请求参数:botId / requestId(均必填)。

返回 data:String(uid)。

A.6.3 解绑用户

项目说明
URL/device/unbindUser
方式POST

请求参数:uid / botId / requestId(均必填)。

返回 data:Bool。

⚠ 解绑影响设备长期记忆与聊天报告。

A.7 聊天记录与报告

A.7.1 获取聊天报告

项目说明
URL/soulmate/chatReport/recentDays
方式POST

请求参数

字段类型必填说明
recentDaysNumber查询天数
botIdString设备 id
uidString用户 id(须与绑定用户一致)
requestIdString请求追踪

返回 dataList<ChatReportDTO>(reportCode / date / contents / tipName / tipValue / publishTime)。

A.7.2 查询聊天记录

项目说明
URL/soulmate/chatReport/chatMessage/page
方式POST

请求参数

字段类型必填说明
requestIdString请求追踪
vendorIdLong企业 id
botIdString设备 id(与 sn 至少填一)
snString设备 SN(与 botId 至少填一)
startTimeLong开始时间戳(ms),不能早于 90 天前
endTimeLong结束时间戳(默认当前)
filterEmptyUserInputBoolean过滤空用户输入
filterEmptyModelOutputBoolean过滤空模型输出
searchAfterList翻页游标(首次不传)
pageSizeInteger每页大小(默认 20,最大 500)
deviceModelString设备型号
uidString用户 id

返回 dataChatMessagePageResult(data / total / hasNext / nextCursor)。

ChatMessageVO 字段:asrText / startTime / ttsText / ttsTime / botId / sn / appId / securityStatus / uid / roleCode。

A.8 在线设备管理与插播

A.8.1 查询用户在线设备

项目说明
URL/online/bot/query
方式POST

请求参数:vendorId / uid(均必填)。

返回 dataList<BotOnlineDTO>(botId / uid / deviceId / appId / appName / sessionId / requestId / connectTime / updateTime / lastRoundStartTime / chatRoundCount / connectDuration / silenceDuration)。

A.8.2 给在线设备插播一句话 ⭐

项目说明
URL/online/bot/broadcast/instant
方式POST

请求参数

字段类型必填说明
vendorIdString厂商标识
botIdString设备标识
textString待播放文本(≤500 字符)
playStrategyStringINTERRUPT(强制打断)/ WAIT_IDLE(等空闲)
maxWaitMsLongWAIT_IDLE 等待上限(默认 10000,硬上限 60000)
bizTagString业务标识(监控分桶)
bizRequestIdString幂等 ID(建议 UUID)

返回 dataBroadcastInstantVO(taskId / pushed / abortReason)。

⚠ WAIT_IDLE 策略同步阻塞,调用方需保证 HTTP 超时充足。

A.9 视觉对话 — 图像上报

项目说明
URL/vision/client/image/report
方式POST
鉴权Authorization: Bearer ${accessToken}

请求参数

字段类型必填说明
requestIdString请求追踪
botIdString设备标识
appIdString应用 ID
sessionIdString当前 WebSocket 会话 ID(必须一致)
imgBase64String图像 Base64(JPEG)
frameTimestampLong采集时间戳(ms)

返回:state + code(0000 成功)。

⚠ sessionId 必须与 WebSocket 建连时一致,否则图像无法关联到对话上下文。详见 6.6 视觉对话

A.10 网易云音乐账号绑定

需要使用网易云音乐资源时,通过以下接口完成用户 OAuth 绑定与设备赋权。详见 7.3.1 网易云账号绑定 API

A.10.1 获取 H5 登录配置

项目说明
URL/soulmate/wyy/getWyyH5LoginConfig
方式POST

请求参数:requestId / vendorId / uid / h5Token(均必填)。

返回 dataWyyH5LoginConfigDto(clientId / state / clientType / redirectUrl)。

A.10.2 获取 H5 登录结果(轮询)

项目说明
URL/soulmate/wyy/getWyyH5LoginResult
方式POST

请求参数:requestId / vendorId / state(均必填)。

返回 data:Boolean(是否已完成绑定)。

A.10.3 获取账号用户信息

项目说明
URL/soulmate/wyy/getWyyAccountUser
方式POST

请求参数:requestId / vendorId / uid(均必填)。

返回 dataWyyAccountUserDto(nickname / avatarUrl / gender / vipDetail 等)。

A.10.4 解绑网易云账号

项目说明
URL/soulmate/wyy/unbindWyyAccount
方式POST

请求参数:requestId / vendorId / uid(均必填)。

返回 data:Boolean。

A.10.5 获取已绑定设备列表

项目说明
URL/soulmate/wyy/getWyyAccountBotList
方式POST

请求参数:requestId / vendorId / uid(均必填)。

返回 dataList<ResourceAccountBotDto>(botId / accountId / bindId 等)。

A.10.6 绑定设备

项目说明
URL/soulmate/wyy/bindBotWyyAccount
方式POST

请求参数:requestId / vendorId / uid / botIdList(均必填)。

返回 data:Boolean。

A.10.7 解绑设备

项目说明
URL/soulmate/wyy/unbindBotWyyAccount
方式POST

请求参数:requestId / vendorId / uid / botIdList(均必填)。

返回 data:Boolean。

网易云专用错误码

code说明
ok成功
500参数 / 服务端逻辑异常
1001未绑定网易云账号
1002绑定的网易云账号已过期

A.11 接口一览表

#接口用途详见
1/auth/getToken签名换 Token§G.2.1
2/auth/refreshToken刷新 Token§G.2.2
3/device/register设备注册§G.3.1
4/device/list设备列表§G.3.2
5/agent/roles/query系统角色列表§G.4.1
6/soulmate/role/customRole/list自定义角色列表§G.4.2
7/soulmate/role/customRole/get自定义角色详情§G.4.3
8/soulmate/role/customRole/save创建自定义角色§G.4.4
9/soulmate/role/customRole/update编辑自定义角色§G.4.5
10/soulmate/role/customRole/delete删除自定义角色§G.4.6
11/soulmate/role/botBindRole/save设备绑定角色§G.4.7
12/soulmate/role/botBindRole/get查询绑定角色§G.4.8
13/soulmate/role/nickName/update修改昵称§G.4.9
14/soulmate/role/nickName/get查询昵称§G.4.10
15/soulmate/timbre/findAllByVendorId音色列表§G.5.1
16/device/bindUser绑定用户§G.6.1
17/device/queryBotBind查询绑定 uid§G.6.2
18/device/unbindUser解绑用户§G.6.3
19/soulmate/chatReport/recentDays聊天报告§G.7.1
20/soulmate/chatReport/chatMessage/page聊天记录§G.7.2
21/online/bot/query在线设备查询§G.8.1
22/online/bot/broadcast/instant设备插播§G.8.2
23/vision/client/image/report视觉图像上报§G.9
24/soulmate/wyy/getWyyH5LoginConfig网易云登录配置§G.10.1
25/soulmate/wyy/getWyyH5LoginResult网易云登录结果§G.10.2
26/soulmate/wyy/getWyyAccountUser网易云账号信息§G.10.3
27/soulmate/wyy/unbindWyyAccount解绑网易云账号§G.10.4
28/soulmate/wyy/getWyyAccountBotList网易云已绑设备§G.10.5
29/soulmate/wyy/bindBotWyyAccount网易云绑设备§G.10.6
30/soulmate/wyy/unbindBotWyyAccount网易云解绑设备§G.10.7