# dec03 **Repository Path**: smartllm/dec03 ## Basic Information - **Project Name**: dec03 - **Description**: 云边协同进化,协同推理 - **Primary Language**: NodeJS - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-12-03 - **Last Updated**: 2025-05-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## api接口说明 ### 请求格式 请求头: | 参数 | 类型 | 必填 | 描述 | | ------------- | ------ | ---- | ------------------------------------------------ | | Content-Type | string | 是 | `application/json` 或 `multipart/form-data` | | Authorization | string | 否 | 用户的认证信息,若需要身份验证,需在请求头中提供 | ### 状态码 | 状态码 | 描述 | | ------ | ---------------- | | 400 | 请求参数不合法 | | 401 | 未授权,认证失败 | | 500 | 服务器内部错误 | | 200 | 成功 | ### 返回格式 ```json { "status": "success", "message": "XXX successfully.", "data": { // 详见具体接口 } } ``` ### 1 协同进化接口 #### 1.1 难辨别样本上传 URL:api/updateSamples HTTP:Post 请求data: | 参数 | 类型 | 描述 | 必填 | | --------- | ----- | ------------------------- | ------------ | | edgeID | List | 选择的边侧id列表 `[0, 1]` | 是 | | threshold | Float | 难度阈值,0-1之间 `0.7` | 是 | | SCloud | Bool | 是否传输给省侧云 `true` | 默认值:true | | ZCloud | Bool | 是否传输给总部云`true` | 默认值:true | 返回data: | 参数 | 类型 | 描述 | | -------- | ---- | ------------ | | num | int | 传输样本数量 | | sampleID | List | 传输样本id | #### 1.2 云侧模型增量学习 URL:api/couldEvolution HTTP:Post 请求data: | 参数 | 类型 | 描述 | 必填 | | ------------- | ------ | -------------------------------------------------- | ----------------- | | model | String | 模型类型,包括(Vit, Llama, Llava, Informer) | 是 | | task | String | 任务类型,包括(全景巡视,设备运检)(qjxs,sbyj) | 是 | | method | String | 优化算法,包括(SGD、Quest、Lora、InfoNCE) | 否,默认值:Quest | | lr | Float | 学习率,包括(0.0001,0.0005,0.001,0.002) | 否,默认值:0.001 | | epoch | Int | 迭代次数,[1-10] | 否,默认值:5 | | batchSize | Int | 批次大小,包括(32,64,128,512) | 否,默认值:32 | | dataStartTime | String | 选择数据的开始时间,例如(20241201) | 是 | | dataEndTime | String | 选择数据的结束时间,例如(20241203) | 是 | 返回data: | 参数 | 类型 | 描述 | | -------- | ------ | -------------------------------------------- | | taskID | String | 任务ID | | taskType | String | 任务类型(01:云侧增量任务;02:协同进化任务) | | status | String | 01: 未启动;10:运行中;11:运行完成 | | sampleID | List | 传输样本id | #### 1.3 云边分布式协同进化 URL:api/CollaborateEvolution HTTP:Post 请求data: | 参数 | 类型 | 描述 | 必填 | | ------------- | ------ | ------------------------------------------------------------ | ----------------- | | Smodel | String | 省侧模型类型,包括(Vit, Llama, Llava, Informer,CLIP) | 是 | | Zmodel | String | 总部模型类型,包括(Vit, Llama, Llava, Informer,Resnet,CLIP,VSE,) | 是 | | task | String | 任务类型,包括(全景巡视,设备运检)(qjxs,sbyj) | 是 | | method | String | 优化算法,包括(Quest、distill、FedAVG、SGD、Quanti) | 否,默认值:Quest | | lr | Float | 学习率,包括(0.0001,0.0005,0.001,0.002) | 否,默认值:0.001 | | epoch | Int | 迭代次数,[1-10] | 否,默认值:5 | | batchSize | Int | 批次大小,包括(32,64,128,512) | 否,默认值:32 | | dataStartTime | String | 选择数据的开始时间,例如(20241201) | 是 | | dataEndTime | String | 选择数据的结束时间,例如(20241203) | 是 | 返回data: | 参数 | 类型 | 描述 | | -------- | ------ | -------------------------------------------- | | taskID | String | 任务ID | | taskType | String | 任务类型(01:云侧增量任务;02:协同进化任务) | | status | String | 01: 未启动;10:运行中;11:运行完成 | | sampleID | List | 传输样本id | #### 1.4 获取任务进度 URL:api/updateSamples HTTP:Post 请求data: | 参数 | 类型 | 描述 | 必填 | | ------ | ------ | ------ | ---- | | taskID | String | 任务ID | 是 | 返回data: | 参数 | 类型 | 描述 | | -------- | ------ | ------------------------------------------------------------ | | taskID | String | 任务ID | | taskType | String | 任务类型(01:云侧增量任务;02:协同进化任务) | | status | String | 01: 未启动;10:运行中;11:运行完成 | | loss | List | 任务loss曲线 e.g. `[[0.2, 0.19, 0.18, 0.17, 0.16, 0.16, 0.15, 0.14, 0.13, 0.11]]` (如果是taskType为01只有一个list只有云侧),如果是02代表有两个list分别是总部云和省侧云 e.g. `[[0.2, 0.19, 0.18, 0.17, 0.16, 0.16, 0.15, 0.14, 0.13, 0.11], [0.2, 0.19, 0.18, 0.17, 0.16, 0.16, 0.15, 0.14, 0.13, 0.11]]` | | acc | List | 任务Acc曲线 e.g. [0.2, 0.19, 0.18, 0.17, 0.16, 0.16, 0.15, 0.14, 0.13, 0.11],和loss一样,01和02分别代表两个不同类型的任务 | | rate | Float | 任务完成进度 0.83 | | time | String | 任务持续时间,格式为 ISO 8601,例如 `PT1H30M15S` | ### 2 协同推理 #### 2.1 云边协同策略配置 URL:api/strategy HTTP:Post 请求data: | 参数 | 类型 | 描述 | 必填 | | ------------ | ------ | ----------------------------------------- | ---- | | dataType | String | (01:图片;02:时序;10:文本) | 是 | | strategyType | String | (00:边侧优先;01云侧优先;10云边协同推理) | 是 | 返回data: | 参数 | 类型 | 描述 | | ------------ | ------ | ----------------------------------------- | | strategyType | String | (00:边侧优先;01云侧优先;10云边协同推理) | #### 2.2 边侧推理-单样本推理 URL:api/inference HTTP:Post 请求data: | 参数 | 类型 | 描述 | 必填 | | -------- | ------ | ----------------------------- | ---------- | | filePath | String | 待推理样本路径 | 是 | | dataType | String | (01:图片;02:时序;10:文本) | 否,默认01 | 返回data: | 参数 | 类型 | 描述 | | -------------- | ------ | ------------------------------------------------ | | resultFilePath | String | 推理结果路径 | | time | String | 任务持续时间,格式为 ISO 8601,例如 `PT1H30M15S` | #### 2.3 云边分布式推理加速-多样本推理 URL:api/inference HTTP:Post 请求data: | 参数 | 类型 | 描述 | 必填 | | -------- | ------ | ------------------------------------------------------------ | ---------- | | file | String | 01:本容器推理所有数据集云侧10张图片 02:本容器推理协同数据集云侧5张图片 03:边侧5张图片 | 是 | | dataType | String | (01:图片;02:时序;10:文本) | 否,默认01 | > + 01: 边侧推理:边侧推理所有图片(10张)路径`workspace/imageesbatch/` > + 02: 云侧优先 > + 03: 边侧优先 返回data: | 参数 | 类型 | 描述 | | -------------- | ------ | ------------------------------------------------------------ | | resultFilePath | List | 推理结果路径的列表 e.g. ['/workspace/cimage_path1/db2000108.jpg', /workspace/cimage_path1/db2000108.jpg','/workspace/cimage_path1/db2000108.jpg'] | | time | String | 任务持续时间,格式为 ISO 8601,例如 `PT1H30M15S` | #### 2.4 获取资源占用率 URL:/api/gpustatus HTTP:Post 请求data: | 参数 | 类型 | 描述 | 必填 | | ------- | ------ | ------------------------------ | ---- | | gputype | String | 设备类型(cl:云侧,sd:边侧) | 是 | 返回data: | 参数 | 类型 | 描述 | | ------- | ---- | ------ | | gputype | 是 | String | | percent | 是 | String | #### 2.5 获取推理数据 URL:/api/getFileByPath HTTP:Post 请求data: | 参数 | 类型 | 描述 | 必填 | | -------- | ------ | ------------------------------------------ | ---- | | filePath | String | 图片地址(来自于2.2和2.3的resultFilePath) | 是 | 返回data: | 参数 | 类型 | 描述 | | ----------- | ------ | -------- | | fileName | String | 文件名称 | | fileSize | Int | 文件大小 | | fileContent | Base64 | 文件内容 |