开发者进阶参考¶
SDK文件结构¶
SDK的主体逻辑在 anylearn
包内,大致分为如下几个部分:
anylearnctl.py
:命令行接口(CLI)定义。config.py
:SDK配置相关的类和接口。applications
目录:高度封装的特色功能,如“超参数自动调优”。interfaces
目录:对后端RESTful API的细粒度封装。storage
目录:SDK本地存储相关。utils
目录:共性工具类。
具体文件结构如下:
注解
为了结构简洁, docs
目录和 examples
目录未在此列出。
Anylearn-sdk
├── anylearn
│ ├── __init__.py
│ ├── anylearnctl.py
│ ├── applications
│ │ ├── __init__.py
│ │ ├── hpo.py
│ │ ├── quickstart.py
│ │ └── tracking.py
│ ├── config.py
│ ├── interfaces
│ │ ├── __init__.py
│ │ ├── base.py
│ │ ├── mirror.py
│ │ ├── project.py
│ │ ├── resource
│ │ │ ├── __init__.py
│ │ │ ├── algorithm.py
│ │ │ ├── dataset.py
│ │ │ ├── file.py
│ │ │ ├── model.py
│ │ │ ├── resource.py
│ │ │ ├── resource_downloader.py
│ │ │ └── resource_uploader.py
│ │ ├── service
│ │ │ ├── __init__.py
│ │ │ ├── record.py
│ │ │ └── service.py
│ │ ├── train_task.py
│ │ └── user.py
│ ├── storage
│ │ ├── __init__.py
│ │ ├── db
│ │ │ ├── __init__.py
│ │ │ ├── db.py
│ │ │ ├── migrations
│ │ │ │ ├── README
│ │ │ │ ├── __init__.py
│ │ │ │ ├── alembic.ini
│ │ │ │ ├── env.py
│ │ │ │ ├── script.py.mako
│ │ │ │ └── versions
│ │ │ │ ├── 848203d98d73_recreate_resource_tables_for_checksum.py
│ │ │ │ ├── __init__.py
│ │ │ └── models.py
│ │ └── file
│ │ └── __init__.py
│ └── utils
│ ├── __init__.py
│ ├── api.py
│ ├── errors.py
│ └── singleton.py
├── pyproject.toml
├── requirements.txt
├── requirements_dev.txt
├── setup.py
└── tests
├── __init__.py
├── applications
│ ├── __init__.py
│ ├── fake_algo_ko
│ │ └── main.py
│ ├── fake_algo_ok
│ │ ├── anylearn_tools.py
│ │ ├── main.py
│ │ └── requirements.txt
│ ├── fake_dset
│ │ └── test.txt
│ ├── fake_model
│ │ └── test.model
│ └── test_quick_train.py
├── base_test_case.py
├── components
├── config.py
├── interfaces
│ ├── __init__.py
│ ├── resource
│ │ ├── __init__.py
│ │ ├── test_algorithm.py
│ │ ├── test_dataset.py
│ │ ├── test_file.py
│ │ ├── test_model.py
│ │ ├── test_resource.py
│ │ ├── test_resource_downloader.py
│ │ └── test_resource_uploader.py
│ ├── service
│ │ ├── test_service.py
│ │ └── test_service_record.py
│ ├── test_db.py
│ ├── test_mirror.py
│ ├── test_project.py
│ ├── test_train_task.py
│ └── test_user.py
└── utils
└── __init__.py
SDK对后端RESTful API的封装¶
SDK对Anylearn后端接口进行了细粒度的封装, 包括 用户管理、 项目管理、 训练任务管理、 验证任务管理、 模型在线服务管理、 资源管理(算法、数据集、模型、其他文件) 以及镜像列表。 其中部分接口属于技术性接口, 仅供后端内部实现使用, 故SDK不予封装。
SDK封装的后端接口¶
资源表述 |
接口功能 |
HTTP方法 |
接口路径 |
---|---|---|---|
用户
user
|
用户注册 |
POST |
/api/user/registry |
获取用户信息 |
GET |
/api/user |
|
编辑用户信息 |
PUT |
/api/user |
|
删除用户 |
DELETE |
/api/user |
|
获取用户列表 |
GET |
/api/user/list |
|
用户名查重 |
GET |
/api/user/check |
|
多用户集合信息查询 |
GET |
/api/user/collection |
|
用户登录 |
POST |
/api/user/login |
|
令牌单点登录(DWF) |
POST |
/api/user/tokenlogin |
|
获取用户权限(DWF) |
GET |
/api/user/permissions |
|
修改密码 |
PUT |
/api/user/password |
|
镜像
mirror
|
获取镜像列表 |
GET |
/api/mirror/list |
训练任务
train_task
|
新增训练任务 |
POST |
/api/train_task/add |
获取训练任务日志 |
GET |
/api/train_task/log |
|
获取训练任务状态 |
GET |
/api/train_task/status |
|
修改训练任务状态 |
POST |
/api/train_task/status |
|
删除训练任务 |
DELETE |
/api/train_task/delete |
|
获取训练任务列表 |
GET |
/api/train_task/list |
|
获取训练任务信息 |
GET |
/api/train_task/query |
|
编辑训练任务信息 |
PUT |
/api/train_task/update |
|
结束训练任务 |
POST |
/api/train_task/finish |
|
模型服务
service
|
新增模型服务 |
POST |
/api/service/add |
重启模型服务 |
GET |
/api/service/restart |
|
伸缩模型服务 |
GET |
/api/service/scale |
|
获取模型服务日志 |
GET |
/api/service/log |
|
获取模型服务状态 |
GET |
/api/service/status |
|
停止模型服务 |
GET |
/api/service/stop |
|
删除模型服务 |
DELETE |
/api/service/delete |
|
获取模型服务列表 |
GET |
/api/service/list |
|
获取模型服务信息 |
GET |
/api/service/query |
|
获取模型服务记录 |
GET |
/api/service/record |
|
编辑模型服务信息 |
PUT |
/api/service/update |
|
模型服务记录
service_record
|
新增模型服务记录 |
POST |
/api/service_record/add |
获取模型服务记录信息 |
GET |
/api/service_record/query |
|
编辑模型服务记录信息 |
POST |
/api/service_record/update |
|
拉取模型服务结果 |
GET |
/api/service_record/pull |
|
算法资源
algorithm
|
获取算法列表 |
GET |
/api/algorithm/list |
获取算法信息 |
GET |
/api/algorithm/query |
|
编辑算法信息 |
PUT |
/api/algorithm/update |
|
删除算法 |
DELETE |
/api/algorithm/delete |
|
新增算法 |
POST |
/api/algorithm/add |
|
资源操作
operation
|
获取资源文件目录 |
GET |
/api/resource/listdir |
上传资源文件 |
POST |
/api/resource/upload |
|
结束上传资源文件 |
POST |
/api/resource/upload_finish |
|
模型资源
model
|
获取模型列表 |
GET |
/api/model/list |
获取模型信息 |
GET |
/api/model/query |
|
编辑模型信息 |
PUT |
/api/model/update |
|
新增模型 |
POST |
/api/model/add |
|
删除模型 |
DELETE |
/api/model/delete |
|
数据集资源
dataset
|
获取数据集列表 |
GET |
/api/dataset/list |
获取数据集信息 |
GET |
/api/dataset/query |
|
编辑数据集信息 |
PUT |
/api/dataset/update |
|
删除数据集 |
DELETE |
/api/dataset/delete |
|
新增数据集 |
POST |
/api/dataset/add |
|
其他文件资源
file
|
获取其他文件列表 |
GET |
/api/file/list |
获取其他文件信息 |
GET |
/api/file/query |
|
编辑其他文件信息 |
PUT |
/api/file/update |
|
新增其他文件 |
POST |
/api/file/add |
|
删除其他文件 |
DELETE |
/api/file/delete |
|
项目
project
|
获取项目列表 |
GET |
/api/project/list |
获取项目信息 |
GET |
/api/project/query |
|
编辑项目信息 |
PUT |
/api/project/update |
|
删除项目 |
DELETE |
/api/project/delete |
|
新建项目 |
POST |
/api/project/add |
|
获取项目运行中的训练任务列表 |
GET |
/api/project/running_tasks |
|
获取项目已完结的训练任务列表 |
GET |
/api/project/all_tasks |
SDK暂不提供封装的后端接口¶
资源表述 |
接口功能 |
HTTP方法 |
接口路径 |
---|---|---|---|
镜像
mirror
|
获取镜像信息 |
GET |
/api/mirror/query |
编辑镜像信息 |
PUT |
/api/mirror/update |
|
新增镜像 |
POST |
/api/mirror/add |
|
资源操作
operation
|
下载资源文件 |
GET |
/api/resource/download |
模型资源
model
|
将训练结果转存为模型文件 |
POST |
/api/model/transform |
算法树节点
algorithm_tree
|
新增算法树节点 |
POST |
/api/algorithm_tree/add |
更新算法树节点 |
POST |
/api/algorithm_tree/update |
|
获取算法树根节点 |
GET |
/api/algorithm_tree/root |
|
获取算法树子节点 |
GET |
/api/algorithm_tree/child |