FlowServerSDK
Introduction¶
我们将介绍如何使用flow_server_sdk
sdk库与iflearner_flow_server
服务进行交互。
Installation¶
您可以执行下述命令进行快速安装:
然后, 您就可以引用flow_server_sdk
库进行接口调用
Initialization¶
我们需要先初始化操作,主要是完成配置连接服务的相关参数, 生成一个client对象。
Parameters
parameter | required | type | description |
---|---|---|---|
host | yes | string | The host for connecting iflearner_flow_server server |
port | yes | string | The port for connecting iflearner_flow_server server |
Usage
from flow_server_sdk import FlowServerSdk
# use real ip address to initialize SDK
flow_server_client = FlowServerSdk(host="127.0.0.1", port="1235")
Template¶
create¶
创建一个任务模板
Function
create(
cls,
name: str,
image_url: str,
workdir: str,
command: List[str],
remark: str = None,
hyper_parameter: list = None,
) -> Dict[str, Any]
Parameters
参数 | 必填 | 类型 | 说明 |
---|---|---|---|
name | yes | string | 模板名称 |
image_url | yes | string | 镜像url地址 |
workdir | yes | string | 镜像工作目录 |
command | yes | array | 镜像启动命令 |
remark | no | string | 模板备注信息 |
hyper_parameter | no | array | 镜像启动的超参数 |
Return
参数 | 类型 | 说明 |
---|---|---|
ret_code | int | 结果码 |
ret_msg | string | 结果描述信息 |
data.template_id | string | 创建的模板id |
Call Example
flow_server_client.template.create(
name="template_01",
image_url="iflearner_ocr:0.0.1",
workdir="/data/ocr/script",
command=[],
remark="",
hyper_parameter = [],
)
Return Example
{
"ret_code": 0,
"ret_msg": "success",
"data": {
"template_id": "20f42769b99b492691da1ba2f236b1"
}
}
update¶
更新一个指定的任务模板。
Function
update(
cls,
template_id: str,
name: str,
image_url: str,
workdir: str,
command: List[str],
remark: str = None,
hyper_parameter: list = None,
) -> Dict[str, Any]
Parameters
参数 | 必填 | 类型 | 说明 |
---|---|---|---|
template_id | yes | string | 模板id |
name | yes | string | 模板名 |
image_url | yes | string | 镜像url地址 |
workdir | yes | string | 镜像工作目录 |
command | yes | array | 镜像启动命令 |
remark | no | string | 模板描述 |
hyper_parameter | no | array | 镜像启动超参数 |
Return
参数 | 类型 | 说明 |
---|---|---|
ret_code | int | 结果码 |
ret_msg | string | 结果描述信息 |
Call Example
flow_server_client.template.update(
template_id="20f42769b99b492691da1ba2f236b1",
name="template_01",
image_url="iflearner_ocr:0.0.2",
workdir="/data/ocr/script",
command=[],
)
Return Example
get¶
查询一个指定的任务模板
Function
Parameters
参数 | 必填 | 类型 | 说明 |
---|---|---|---|
template_id | yes | string | 模板id |
Return
参数 | 类型 | 说明 |
---|---|---|
ret_code | int | 结果码 |
ret_msg | string | 结果描述信息 |
data.name | string | 模板名称 |
data.remark | string | 模板备注信息 |
data.image_url | string | 镜像的url地址 |
data.workdir | string | 镜像的工作目录 |
data.command | array | 镜像的启动命令 |
data.hyper_parameter | array | 镜像的启动超参数 |
data.template_id | string | 模板id |
data.create_time | string | 模板创建时间 |
data.modify_time | string | 模板更新时间 |
Call Example
Return Example
{
"ret_code": 0,
"ret_msg": "success",
"data": {
"name": "template_003",
"remark": "template test",
"image_url": "pytorch_ocr:latest",
"workdir": "/data/ocr",
"command": [
"python",
"run.py"
],
"hyper_parameter": [
"epoch=1"
],
"template_id": "20f42769b99b492691da1ba2f236b1",
"create_time": "Mon, 25 Jul 2022 15:59:55 -0000",
"modify_time": "Mon, 25 Jul 2022 15:59:55 -0000"
}
}
list¶
批量查询模板信息
Function
Parameters
参数 | 必填 | 类型 | 说明 |
---|---|---|---|
page | no | int | 当前页 |
limit | no | int | 当前页查询数目 |
Return
参数 | 类型 | 说明 |
---|---|---|
ret_code | int | 结果码 |
ret_msg | string | 结果描述信息 |
data.templates[index].name | string | 模板名 |
data.templates[index].remark | string | 模板备注信息 |
data.templates[index].image_url | string | 镜像的url地址 |
data.templates[index].workdir | string | 镜像的工作目录 |
data.templates[index].command | array | 镜像的启动命令 |
data.templates[index].hyper_parameter | array | 镜像启动的超参数 |
data.templates[index].template_id | string | 模板id |
data.templates[index].create_time | string | 模板创建时间 |
data.templates[index].modify_time | string | 模板更新时间 |
Call Example
Return Example
"ret_code": 0,
"ret_msg": "success",
"data": {
"templates": [
{
"name": "f5b75371-5dc0-47c6-9a8d-86cd3e06b56a",
"remark": "",
"image_url": "iflearner_ocr:0.0.1",
"workdir": "/data/ocr/script",
"command": [],
"hyper_parameter": null,
"template_id": "0381e7b3bedb4578a3b5a8d11cd65d",
"create_time": "Wed, 20 Jul 2022 16:39:19 -0000",
"modify_time": "Wed, 20 Jul 2022 16:39:19 -0000"
},
{
"name": "707fc798-774a-44be-9844-019c4a7e6714",
"remark": "",
"image_url": "iflearner_ocr:0.0.1",
"workdir": "/data/ocr/script",
"command": [],
"hyper_parameter": null,
"template_id": "0596cb767f0448f4b4fa4f11f65fa8",
"create_time": "Wed, 20 Jul 2022 17:06:20 -0000",
"modify_time": "Wed, 20 Jul 2022 17:06:20 -0000"
}
],
"template_count": 108
}
}
delete¶
删除一个指定的模板
Function
Parameters
参数 | 必填 | 类型 | 说明 |
---|---|---|---|
template_id | yes | string | 模板id |
Return
参数 | 类型 | 说明 |
---|---|---|
ret_code | int | 结果码 |
ret_msg | string | 结果描述信息 |
Call Example~~
Return Example
Task¶
Create¶
创建任务
Function
create(
cls,
name: str,
template_id: str,
remark: str,
federate_data: List[Any],
) -> Dict[str, Any]
Parameters
参数 | 必填 | 类型 | 说明 |
---|---|---|---|
name | yes | string | 任务名称 |
template_id | yes | string | 任务关联的模板id |
remark | no | string | 任务备注信息 |
federate_data | yes | array | 任务关联的联邦方信息 |
Return
参数 | 类型 | 说明 |
---|---|---|
ret_code | int | 结果码 |
ret_msg | string | 结果描述信息 |
data.task_id | string | 创建的任务id |
Call Example
flow_server_client.task.create(
name="testCase1",
template_id="ea0f10bfbaf64a74a061d54c94cc69",
remark="This is a remark.",
federate_data=[{"federated_id": "federate-1", "federated_data": ""}],
)
Return Example
Update¶
更新任务
Function
update(cls,
task_id: str,
name: str,
template_id: str,
remark: str,
federate_data: List,
) -> Dict[str, Any]
Parameters
参数 | 必填 | 类型 | 说明 |
---|---|---|---|
task_id | yes | string | 任务id |
name | yes | string | 任务名称 |
template_id | yes | string | 任务关联的模板id |
remark | no | string | 任务备注信息 |
federate_data | yes | array | 任务关联的联邦方信息 |
Return
参数 | 类型 | 说明 |
---|---|---|
ret_code | int | 结果码 |
ret_msg | string | 结果描述信息 |
Call Example
flow_server_client.task.update(
task_id="0578abed1032425499abd20f2ef67938",
name="testCase",
template_id="ea0f10bfbaf64a74a061d54c94cc69",
remark="This is a remark.",
federate_data=[{"federated_id": "federate-1", "federated_data": "aa"}],
)
Return Example
Get¶
获取任务详情
Function
Parameters
参数 | 必填 | 类型 | 说明 |
---|---|---|---|
task_id | yes | string | 任务id |
Return
参数 | 类型 | 说明 |
---|---|---|
ret_code | int | 结果码 |
ret_msg | string | 结果描述信息 |
data | dict | 任务详情 |
Call Example
Return Example
{
"data": {
"create_time": "Mon, 25 Jul 2022 20:31:21 -0000",
"federate_data": [
{
"federated_data": "aa",
"federated_id": "federate-1"
}
],
"modify_time": "Mon, 25 Jul 2022 20:31:21 -0000",
"name": "testCase",
"party_status": null,
"remark": "This is a remark.",
"status": null,
"task_id": "0578abed1032425499abd20f2ef67938",
"template_id": "ea0f10bfbaf64a74a061d54c94cc69"
},
"ret_code": 0,
"ret_msg": "success"
}
List¶
获取任务列表
Function
Parameters
参数 | 必填 | 类型 | 说明 |
---|---|---|---|
page | yes | int | 页码 |
limit | yes | int | 每页的数量 |
Return
参数 | 类型 | 说明 |
---|---|---|
ret_code | int | 结果码 |
ret_msg | string | 结果描述信息 |
data.task_count | int | 任务总数 |
data.tasks | array | 任务列表 |
Call Example
Return Example
{
"data": {
"task_count": 1,
"tasks": [
{
"create_time": "Tue, 26 Jul 2022 16:05:59 -0000",
"federate_data": [
{
"federated_data": "",
"federated_id": "federate-1"
}
],
"modify_time": "Tue, 26 Jul 2022 16:05:59 -0000",
"name": "testCase1",
"party_status": null,
"remark": "This is a remark.",
"status": null,
"task_id": "b1731d312dae4edba6d07a6fff547b4a",
"template_id": "ea0f10bfbaf64a74a061d54c94cc69"
}
]
},
"ret_code": 0,
"ret_msg": "success"
}
Delete¶
删除任务
Function
Parameters
参数 | 必填 | 类型 | 说明 |
---|---|---|---|
task_id | yes | string | 任务id |
Return
参数 | 类型 | 说明 |
---|---|---|
ret_code | int | 结果码 |
ret_msg | string | 结果描述信息 |
Call Example
Return Example
Start¶
开始任务
Function
Parameters
参数 | 必填 | 类型 | 说明 |
---|---|---|---|
task_id | yes | string | 任务id |
Return
参数 | 类型 | 说明 |
---|---|---|
ret_code | int | 结果码 |
ret_msg | string | 结果描述信息 |
Call Example
Return Example
Stop¶
停止任务
Function
Parameters
参数 | 必填 | 类型 | 说明 |
---|---|---|---|
task_id | yes | string | 任务id |
Return
参数 | 类型 | 说明 |
---|---|---|
ret_code | int | 结果码 |
ret_msg | string | 结果描述信息 |
Call Example
Return Example