不期速成 日拱一卒 不期速成 日拱一卒
首页
技术
测试
分类
标签
归档
关于
首页
技术
测试
分类
标签
归档
关于
  • 测试样本

    • 智能算法测试样本管理简介
    • AITDBManger开发指导
    • AITDBClient开发指导
    • AITDBClient使用文档
      • 1 安装
        • 1.1 新建虚拟环境
        • 1.2 安装AITDBClient
        • 1.3 验证是否安装成功
      • 2 使用
        • 2.1 帮助提示
        • 2.2 查询已注册的设备信息
        • 2.3 查询已注册的数据源信息
        • 2.4 查询已支持的标注数据
        • 2.5 数据结构解读
        • 2.6 构造JSON LINE数据文件
        • 2.7 上传
  • 测试框架

  • AITLibra-智能算法效果测试提效降本的实践
  • NLU(自然语言理解)智能算法测试从1到N的改进
  • 智能算法测试平台基础设施
  • AIT
  • 测试样本
2021-11-15

AITDBClient使用文档

# 1 安装

提示

  • 使用Python3.7.7版本进行开发和运行;
  • 使用PypiManager (opens new window)作为pip源;

# 1.1 新建虚拟环境

F:\ait_db_manager_test>pip install -U virtualenv
F:\ait_db_manager_test>virtualenv venv
F:\ait_db_manager_test>venv\Scripts\activate
(venv) F:\ait_db_manager_test>
1
2
3
4

当看到(venv)时即说明虚拟环境已经激活。

# 1.2 安装AITDBClient

(venv) F:\ait_db_manager_test>pip install -U AITDBClient
1

# 1.3 验证是否安装成功

(venv) F:\ait_db_manager_test>aitdbclient --version
aitdbclient, version 1.9.0
1
2

正常显示版本号说明安装成功。

# 2 使用

# 2.1 帮助提示

基础帮助信息
 










(venv) F:\ait_db_manager_test>aitdbclient --help
Usage: aitdbclient [OPTIONS] COMMAND [ARGS]...

Options:
  --version  Show the version and exit.
  --help     Show this message and exit.

Commands:
  query   查询系统信息
  upload  上传标注数据
1
2
3
4
5
6
7
8
9
10
查询系统信息
 












(venv) F:\ait_db_manager_test>aitdbclient query --help
1.0.2
AI Test Data DataBase Manager Client.
Usage: aitdbclient query [OPTIONS]

  查询系统信息

Options:
  -md, --model        查询当前支持的标注数据
  -em, --equipment    查询已经注册的设备信息
  -ds, --data_source  查询已经注册的数据源
  --help              Show this message and exit.
1
2
3
4
5
6
7
8
9
10
11
12
上传标注数据帮助信息
 











(venv) F:\ait_db_manager_test>aitdbclient upload --help
1.0.2
AI Test Data DataBase Manager Client.
Usage: aitdbclient upload [OPTIONS]

  上传标注数据

Options:
  -jl, --json_line_file TEXT  测试样本标注数据JSON LINE文件
  --help                      Show this message and exit.

1
2
3
4
5
6
7
8
9
10
11

# 2.2 查询已注册的设备信息

注意

在构造JSON LINE文件之前请先查询已经注册了哪些设备信息,避免出现同一设备的不同名称。

(venv) F:\ait_db_manager_test>aitdbclient query -em
1

image-20210727104627477

# 2.3 查询已注册的数据源信息

注意

在构造JSON LINE文件之前请先查询已经注册了哪些数据源信息,避免出现同一数据源的不同名称。

(venv) F:\ait_db_manager_test>aitdbclient query -ds
1

image-20210727104644193

# 2.4 查询已支持的标注数据

注意

若没有已支持的标注数据模型,请联系管理员。

 




















(venv) F:\ait_db_manager_test>aitdbclient query -md
1.0.2
AI Test Data DataBase Manager Client.
**********************当前支持的标注数据**********************
=======================================================
>>> 名称: AnnAudioASRSpeech
>>> 数据结构定义:
{"title": "AnnAudioASRSpeech", "description": "音频标注-ASR语音信息数据结构定义", 
......
"enum": ["仅中文发音", "中文混合英文字母发音", "中文混合英文单词发音", "未标注多语种类别"], "type": "string"}}}
>>> 示例数据:
{"data_source": {"category": "音频", "cn_name": "景联文公司购买的音频数据", "en_name": "jinglianwen_company_ace_annotation", "description": "提供预先生成的警务领域发音文本给景联文公司进行录音准备音频数据,通过ACE标注平台进行数据标注"}, "equipment": {"cn_name": "未知", "en_name": "未知", "manufacturer": "未知", "category": "未知"}, "identity": {"gender": "男性", "employee_number": "jinglianwen-10177"}, "file_name": "10177-FH-CAR-M-27-20200820+10177-FH-CAR-M-27-20200820-146.wav", "teleprompter_text": "WXID_010n7deagmaq22?", "pronounce_text": "WXID零幺零N七D一AJMAQ二二", "normalized_text": "WXID010N7D1AJMAQ22", "intention_first_classify": "账号查询", "accent": "轻度或无口音", "speed": "正常语速", "noise_intensity": "正常辨识"}
=======================================================
>>> 名称: AnnAudioVoicePrint
>>> 数据结构定义:
{"title": "AnnAudioVoicePrint", "description": "音频标注-声纹信息数据结构定义", 
......
, "required": ["gender"]}}}
>>> 示例数据:
{"data_source": {"category": "音频", "cn_name": "声纹数据_烽火测试部录制", "en_name": "voiceprint_fiberhome_tester", "description": "2021年5月声纹录制数据"}, "equipment": {"cn_name": "C270", "en_name": "C270", "manufacturer": "罗技", "category": "网络摄像头"}, "identity": {"gender": "男性", "person_name": "郭群", "employee_number": "X2590"}, "file_name": "X2590_郭群_C270_2021-04-13#19-04-00_4f94097cb855c2bb20301ba77c71698a.wav", "teleprompter_text": "二幺三九四八七零", "pronounce_text": "21394870", "normalized_text": "21394870", "background_noise": 36}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

为了便于阅读,将数据结构定义部分进行了缩略,详情请执行命令后自行查看,可以使用 json-path-finder (opens new window) 工具格式化JSON查看。

# 2.5 数据结构解读

笔记

我们以AnnAudioVoicePrint标注数据为例进行讲解。

数据结构定义,是遵循JSONSchema规范编写的,关于JSONSchema的语法说明可以查看《JSONSchema常用关键字语法手册》学习理解。

# 2.5.1 要点

数据结构主要分为以下就几个核心节点:

  • data_source【必选】-- 数据源信息
  • equipment【可选】-- 设备信息
  • identity 【 可选】-- 数据对象人员身份信息
  • file_name【必选】-- 实体对象文件名
  • 标注数据私有字段
样例数据的的JSONSchema定义
{
	"title": "AnnAudioVoicePrint",
	"description": "音频标注-声纹信息数据结构定义",
	"type": "object",
	"properties": {
		"data_source": {
			"title": "Data Source",
			"description": "数据源信息",
			"allOf": [
				{
					"$ref": "#/definitions/DataSourceInfo"
				}
			]
		},
		"equipment": {
			"title": "Equipment",
			"description": "设备信息",
			"allOf": [
				{
					"$ref": "#/definitions/EquipmentInfo"
				}
			]
		},
		"identity": {
			"title": "Identity",
			"description": "身份信息",
			"allOf": [
				{
					"$ref": "#/definitions/IdentityInfo"
				}
			]
		},
		"file_name": {
			"title": "File Name",
			"description": "音频文件名称",
			"type": "string"
		},
		"teleprompter_text": {
			"title": "Teleprompter Text",
			"description": "提词器文本",
			"type": "string"
		},
		"pronounce_text": {
			"title": "Pronounce Text",
			"description": "发音内容文本",
			"type": "string"
		},
		"normalized_text": {
			"title": "Normalized Text",
			"description": "归一化文本",
			"type": "string"
		},
		"background_noise": {
			"title": "Background Noise",
			"description": "背景噪音分贝",
			"type": "integer"
		},
		"remark": {
			"title": "Remark",
			"description": "备注信息",
			"type": "string"
		},
		"status": {
			"description": "是否被逻辑删除",
			"default": "未删除",
			"allOf": [
				{
					"$ref": "#/definitions/DeleteStatusEnum"
				}
			]
		}
	},
	"required": [
		"data_source",
		"equipment",
		"identity",
		"file_name"
	],
	"definitions": {
		"SampleDataCategoryEnum": {
			"title": "SampleDataCategoryEnum",
			"description": "样本数据类别",
			"enum": [
				"图片",
				"视频",
				"音频",
				"文本",
				"电子表格"
			],
			"type": "string"
		},
		"DeleteStatusEnum": {
			"title": "DeleteStatusEnum",
			"description": "删除状态",
			"enum": [
				"未删除",
				"已删除"
			],
			"type": "string"
		},
		"DataSourceInfo": {
			"title": "DataSourceInfo",
			"description": "数据源数据结构定义",
			"type": "object",
			"properties": {
				"category": {
					"description": "数据类别",
					"allOf": [
						{
							"$ref": "#/definitions/SampleDataCategoryEnum"
						}
					]
				},
				"cn_name": {
					"title": "Cn Name",
					"description": "数据源中文名",
					"type": "string"
				},
				"en_name": {
					"title": "En Name",
					"description": "数据源英文名",
					"type": "string"
				},
				"description": {
					"title": "Description",
					"description": "数据源描述信息",
					"type": "string"
				},
				"remark": {
					"title": "Remark",
					"description": "备注信息",
					"type": "string"
				},
				"status": {
					"description": "是否被逻辑删除",
					"default": "未删除",
					"allOf": [
						{
							"$ref": "#/definitions/DeleteStatusEnum"
						}
					]
				}
			},
			"required": [
				"category",
				"cn_name",
				"en_name",
				"description"
			]
		},
		"EquipmentCategoryEnum": {
			"title": "EquipmentCategoryEnum",
			"description": "设备类别",
			"enum": [
				"网络摄像头",
				"监控摄像头",
				"相机",
				"手机",
				"未知"
			],
			"type": "string"
		},
		"EquipmentInfo": {
			"title": "EquipmentInfo",
			"description": "设备信息数据结构定义",
			"type": "object",
			"properties": {
				"cn_name": {
					"title": "Cn Name",
					"description": "设备中文名",
					"default": "未知",
					"type": "string"
				},
				"en_name": {
					"title": "En Name",
					"description": "设备英文名",
					"default": "未知",
					"type": "string"
				},
				"manufacturer": {
					"title": "Manufacturer",
					"description": "设备厂商",
					"default": "未知",
					"type": "string"
				},
				"category": {
					"description": "设备类别",
					"default": "未知",
					"allOf": [
						{
							"$ref": "#/definitions/EquipmentCategoryEnum"
						}
					]
				},
				"remark": {
					"title": "Remark",
					"description": "备注信息",
					"type": "string"
				},
				"status": {
					"description": "是否被逻辑删除",
					"default": "未删除",
					"allOf": [
						{
							"$ref": "#/definitions/DeleteStatusEnum"
						}
					]
				}
			}
		},
		"GenderCategoryEnum": {
			"title": "GenderCategoryEnum",
			"description": "性别类别",
			"enum": [
				"男性",
				"女性",
				"未知"
			],
			"type": "string"
		},
		"IdentityInfo": {
			"title": "IdentityInfo",
			"description": "人员信息数据结构定义",
			"type": "object",
			"properties": {
				"gender": {
					"description": "性别",
					"allOf": [
						{
							"$ref": "#/definitions/GenderCategoryEnum"
						}
					]
				},
				"person_name": {
					"title": "Person Name",
					"description": "人员姓名",
					"type": "string"
				},
				"employee_number": {
					"title": "Employee Number",
					"description": "员工编号",
					"type": "string"
				},
				"cn_id_card_number": {
					"title": "Cn Id Card Number",
					"description": "中国身份证号码",
					"type": "string"
				},
				"tw_passport_gen1": {
					"title": "Tw Passport Gen1",
					"description": "一代台胞证",
					"type": "string"
				},
				"tw_passport_gen2": {
					"title": "Tw Passport Gen2",
					"description": "二代台胞证",
					"type": "string"
				},
				"cn_passport": {
					"title": "Cn Passport",
					"description": "中国护照",
					"type": "string"
				},
				"ga_passport": {
					"title": "Ga Passport",
					"description": "港澳通行证",
					"type": "string"
				},
				"remark": {
					"title": "Remark",
					"description": "备注信息",
					"type": "string"
				},
				"status": {
					"description": "是否被逻辑删除",
					"default": "未删除",
					"allOf": [
						{
							"$ref": "#/definitions/DeleteStatusEnum"
						}
					]
				}
			},
			"required": [
				"gender"
			]
		}
	}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289

# 2.5.2 示例

根据上述的数据结构定义,我们可以生成如下标注数据,data_source数据可以通过3.2.3小节查询,没有适用的就新增注册,equipment数据可以通过3.2.2小节查询,没有适用的就新增注册。

{
	"data_source": {
		"category": "音频",
		"cn_name": "声纹数据_烽火测试部录制",
		"en_name": "voiceprint_fiberhome_tester",
		"description": "2021年5月声纹录制数据"
	},
	"equipment": {
		"cn_name": "C270",
		"en_name": "C270",
		"manufacturer": "罗技",
		"category": "网络摄像头"
	},
	"identity": {
		"gender": "男性",
		"person_name": "郭群",
		"employee_number": "X2590"
	},
	"file_name": "X2590_郭群_C270_2021-04-13#19-04-00_4f94097cb855c2bb20301ba77c71698a.wav",
	"teleprompter_text": "二幺三九四八七零",
	"pronounce_text": "21394870",
	"normalized_text": "21394870",
	"background_noise": 36
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

# 2.6 构造JSON LINE数据文件

将现有的各种类型的标注数据,根据2.5小节的数据结构定义,逐条构造出JSON数据,存储为JSON LINE文件,可以使用AITUtils的AITUtils.file.save_dict2jl (opens new window)方法。

要求构造的JSON LINE文件命名要与已支持的标注数据的名称相同,比如:

# 名称: AnnAudioVoicePrint
# 数据结构定义:
{"title": "AnnAudioVoicePrint", "description": "音频标注-声纹信息数据结构定义", "type": "object", "properties": {"data_source": {"title": "Data Source", "description": 
......
"required": ["gender"]}}}
# 示例数据:
{"data_source": {"category": "音频", "cn_name": "声纹数据_烽火测试部录制", "en_name": "voiceprint_fiberhome_tester", "description": "2021年5月声纹录制数据"}, "equipment": {"cn_name": "C270", "en_name": "C270", "manufacturer": "罗技", "category": "网络摄像头"}, "identity": {"gender": "男性", "person_name": "郭群", "employee_number": "X2590"}, "file_name": "X2590_郭群_C270_2021-04-13#19-04-00_4f94097cb855c2bb20301ba77c71698a.wav", "teleprompter_text": "二幺三九四八七零", "pronounce_text": "21394870", "normalized_text": "21394870", "background_noise": 36}
1
2
3
4
5
6
7

那么JSON LINE文件名应该为AnnAudioVoicePrint.jl

# 2.7 上传

# 2.7.1 目录约定

将标注数据的JSON LINE文件与文件实体放在同一目录下,文件夹名称没有要求,有多层子目录也可以,AITDBClient会自动遍历当前目录下的所有文件夹查找匹配文件。

F:\ait_db_manager_test\test_data
├─AnnAudioVoicePrint.jl
│
├─record_data_0413_new+不降噪
│      X2590_郭群_B525_2021-04-13#19-02-00_82a255d775d80576429e7f753274c0c9.json
│      X2590_郭群_B525_2021-04-13#19-02-00_82a255d775d80576429e7f753274c0c9.wav
│      X2590_郭群_C270_2021-04-13#19-04-00_4f94097cb855c2bb20301ba77c71698a.json
│      X2590_郭群_C270_2021-04-13#19-04-00_4f94097cb855c2bb20301ba77c71698a.wav
1
2
3
4
5
6
7
8

# 2.7.2 执行上传命令

(venv) F:\ait_db_manager_test\test_data>aitdbclient upload -jl AnnAudioVoicePrint.jl
1

等待进度条运行完成即可完成测试样本上传。

#智能算法测试
上次更新: 7/26/2026, 3:17:15 PM
AITDBClient开发指导
AITLibra智能算法效果测试框架

← AITDBClient开发指导 AITLibra智能算法效果测试框架→

最近更新
01
测试覆盖度量全景图
11-30
02
Prism测试覆盖度量
11-30
03
AITDBClient开发指导
11-12
更多文章>
Theme by Vdoing | Copyright © 2021-2026 toddlerya | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式