# 动态实体上传

在 iFLYOS 中,我们提供了动态实体上传的接口。你的以下需求,可以通过动态实体来完成:

  1. 你的产品需要针对某一些场景词汇做热词识别。当你在测试的时候发现一些常用操作无法正确识别,你可以尝试上传client级的动态实体来解决这个问题。
  2. 你的产品需要针对每个用户或每个设备,进行个性化的语义理解,你可以尝试让用户配置device级或user级的动态实体。

# 准备

  1. 登录iFLYOS开放平台技能工作室 (opens new window),进入我的实体 (opens new window)页面。
  2. 创建动态实体,在动态实体内创建资源:
    • 若该资源以user_id为区分,维度选择OS用户级
    • 若该资源以device_id为区分,维度选择OS设备级
    • 若该资源以client_id为区分,维度选择OS产品级

# 接口说明

URI

https://platform.iflyos.cn/tools/upload_entities_v2

Method

POST

Header

Content-Type: application/json
Authorization: Bearer {{access_token}}

# 上传动态实体资源

注意

在不同的上传场景下,需要使用不同的access_token

# 上传场景

# 通过APP端上传

支持:用户级设备级 ( 用户的设备 )

授权:使用app_token

app_token获取方式

# 通过设备端上传

支持:设备级

授权:使用device_access_token查看获取方式

# 通过服务端上传

支持:产品级设备级用户级(仅使用第三方账号时支持)

授权:使用server_token查看获取方式

# 请求方式

请求示例

{
	"type": "user",
	"resource_name": "NAMESPACE.user",
	"data": [
		{
			"name": "张三",
			"alias": "老张"
		},
		{
			"name": "李四",
			"alias": "老李"
		}
	],
	"user_id": "xxxxxxx"
}

参数说明

参数名 参数说明 类型 必填
type 实体维度:
device: 设备级
user: 用户级
client: 产品级
String
resource_name 上传资源名,即为命名空间.资源名
如:NAMESPACE.user
String
data 动态实体资源 Array
client_id 产品ID
仅支持服务端上传场景
String
服务端上传产品级设备级动态实体时,必填
device_id 设备ID
APP端上传:仅支持用户已绑定的设备
服务端上传:仅支持厂商产品下的设备,此时client_id参数必填
String
APP端服务端上传设备级动态实体时,必填
user_id 用户ID
仅上传场景为服务端上传且使用第三方账号接入iFLYOS时有效,与third_id对应
String 否,在服务端上传用户级动态实体时,必填

上传成功响应示例

Status: 200 OK

{
	"upload_id": "...."
}

上传失败响应示例

Status: 400/5xx

{
  "message": "...",
  "upload_id": "..."
}