############## 开发者进阶参考 ############## .. contents:: 本节目录 :depth: 3 SDK文件结构 =========== SDK的主体逻辑在 ``anylearn`` 包内,大致分为如下几个部分: - ``anylearnctl.py`` :命令行接口(CLI)定义。 - ``config.py`` :SDK配置相关的类和接口。 - ``applications`` 目录:高度封装的特色功能,如“超参数自动调优”。 - ``interfaces`` 目录:对后端RESTful API的细粒度封装。 - ``storage`` 目录:SDK本地存储相关。 - ``utils`` 目录:共性工具类。 具体文件结构如下: .. Note:: 为了结构简洁, ``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方法 | 接口路径 | +==================+==============================+==========+==============================+ | | 用户 | 用户注册 | POST | /api/user/registry | | | user +------------------------------+----------+------------------------------+ | | 获取用户信息 | 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 | +------------------+------------------------------+----------+------------------------------+ | | 镜像 | 获取镜像列表 | GET | /api/mirror/list | | | mirror | | | | +------------------+------------------------------+----------+------------------------------+ | | 训练任务 | 新增训练任务 | POST | /api/train_task/add | | | train_task +------------------------------+----------+------------------------------+ | | 获取训练任务日志 | 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 | +------------------+------------------------------+----------+------------------------------+ | | 模型服务 | 新增模型服务 | POST | /api/service/add | | | service +------------------------------+----------+------------------------------+ | | 重启模型服务 | 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 | +------------------+------------------------------+----------+------------------------------+ | | 模型服务记录 | 新增模型服务记录 | POST | /api/service_record/add | | | service_record +------------------------------+----------+------------------------------+ | | 获取模型服务记录信息 | GET | /api/service_record/query | | +------------------------------+----------+------------------------------+ | | 编辑模型服务记录信息 | POST | /api/service_record/update | | +------------------------------+----------+------------------------------+ | | 拉取模型服务结果 | GET | /api/service_record/pull | +------------------+------------------------------+----------+------------------------------+ | | 算法资源 | 获取算法列表 | GET | /api/algorithm/list | | | algorithm +------------------------------+----------+------------------------------+ | | 获取算法信息 | GET | /api/algorithm/query | | +------------------------------+----------+------------------------------+ | | 编辑算法信息 | PUT | /api/algorithm/update | | +------------------------------+----------+------------------------------+ | | 删除算法 | DELETE | /api/algorithm/delete | | +------------------------------+----------+------------------------------+ | | 新增算法 | POST | /api/algorithm/add | +------------------+------------------------------+----------+------------------------------+ | | 资源操作 | 获取资源文件目录 | GET | /api/resource/listdir | | | operation +------------------------------+----------+------------------------------+ | | 上传资源文件 | POST | /api/resource/upload | | +------------------------------+----------+------------------------------+ | | 结束上传资源文件 | POST | /api/resource/upload_finish | +------------------+------------------------------+----------+------------------------------+ | | 模型资源 | 获取模型列表 | GET | /api/model/list | | | model +------------------------------+----------+------------------------------+ | | 获取模型信息 | GET | /api/model/query | | +------------------------------+----------+------------------------------+ | | 编辑模型信息 | PUT | /api/model/update | | +------------------------------+----------+------------------------------+ | | 新增模型 | POST | /api/model/add | | +------------------------------+----------+------------------------------+ | | 删除模型 | DELETE | /api/model/delete | +------------------+------------------------------+----------+------------------------------+ | | 数据集资源 | 获取数据集列表 | GET | /api/dataset/list | | | dataset +------------------------------+----------+------------------------------+ | | 获取数据集信息 | GET | /api/dataset/query | | +------------------------------+----------+------------------------------+ | | 编辑数据集信息 | PUT | /api/dataset/update | | +------------------------------+----------+------------------------------+ | | 删除数据集 | DELETE | /api/dataset/delete | | +------------------------------+----------+------------------------------+ | | 新增数据集 | POST | /api/dataset/add | +------------------+------------------------------+----------+------------------------------+ | | 其他文件资源 | 获取其他文件列表 | GET | /api/file/list | | | file +------------------------------+----------+------------------------------+ | | 获取其他文件信息 | GET | /api/file/query | | +------------------------------+----------+------------------------------+ | | 编辑其他文件信息 | PUT | /api/file/update | | +------------------------------+----------+------------------------------+ | | 新增其他文件 | POST | /api/file/add | | +------------------------------+----------+------------------------------+ | | 删除其他文件 | DELETE | /api/file/delete | +------------------+------------------------------+----------+------------------------------+ | | 项目 | 获取项目列表 | GET | /api/project/list | | | project +------------------------------+----------+------------------------------+ | | 获取项目信息 | 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方法 | 接口路径 | +==================+==============================+==========+==============================+ | | 镜像 | 获取镜像信息 | GET | /api/mirror/query | | | mirror +------------------------------+----------+------------------------------+ | | 编辑镜像信息 | PUT | /api/mirror/update | | +------------------------------+----------+------------------------------+ | | 新增镜像 | POST | /api/mirror/add | +------------------+------------------------------+----------+------------------------------+ | | 资源操作 | 下载资源文件 | GET | /api/resource/download | | | operation | | | | +------------------+------------------------------+----------+------------------------------+ | | 模型资源 | 将训练结果转存为模型文件 | POST | /api/model/transform | | | model + + + + +------------------+------------------------------+----------+------------------------------+ | | 算法树节点 | 新增算法树节点 | POST | /api/algorithm_tree/add | | | algorithm_tree +------------------------------+----------+------------------------------+ | | 更新算法树节点 | POST | /api/algorithm_tree/update | | +------------------------------+----------+------------------------------+ | | 获取算法树根节点 | GET | /api/algorithm_tree/root | | +------------------------------+----------+------------------------------+ | | 获取算法树子节点 | GET | /api/algorithm_tree/child | +------------------+------------------------------+----------+------------------------------+