class DatasetListApi(Resource):
@account_initialization_required
@setup_required # 确保系统已经初始化
@login_required # 确保用户已经登录
@account_initialization_required # 确保用户已经初始化
parser = reqparse.RequestParser() # 创建请求参数解析器
parser.add_argument('name', nullable=False, required=True,
help='type is required. Name must be between 1 to 40 characters.',
type=_validate_name) # 添加请求参数
parser.add_argument('indexing_technique', type=str, location='json',
choices=Dataset.INDEXING_TECHNIQUE_LIST,
help='Invalid indexing technique.') # 添加请求参数
args = parser.parse_args() # 解析请求参数
# The role of the current user in the ta table must be admin or owner
if not current_user.is_admin_or_owner:
dataset = DatasetService.create_empty_dataset( # 创建空白知识库
tenant_id=current_user.current_tenant_id, # 租户ID
indexing_technique=args['indexing_technique'], # 索引技术
account=current_user # 用户
except services.errors.dataset.DatasetNameDuplicateError: # 数据集名称重复
raise DatasetNameDuplicateError() # 数据集名称重复错误
return marshal(dataset, dataset_detail_fields), 201 # 返回数据集详情