# DataAI API 格式 (2023/06/02)
## Object Management API
#### **[POST]** /v2/data-ai/model/start **:fire:1.4 version update** <br> <sub>Create a sensor from RTM in a device (automatically start train and inference scheduling) [[ref]](https://advantecho365.sharepoint.com/:x:/r/sites/DataAI2/_layouts/15/Doc.aspx?sourcedoc=%7B603AF11B-38A0-417A-8409-9B9B529D3FD2%7D&file=20230616_PHM%20Model%20Setting%20Spec_v1.0.xlsx&action=default&mobileredirect=true) [[ref2]](https://www.figma.com/file/WodxCyTr67s3LVRes5n5pi/DataAI-Flow?type=whiteboard&node-id=0-1&t=msLWSs9e2jp8EbXb-0) </sub>
<details><summary><sup>Request</sup></summary>
```jsonld
{
"project_id": int,
"model": {
"device_id": string,
"device_name": string, #new?
"sensor_ids": string[], #machine_id in RTM
"model_id": string,
"model_name": string,
"type": string, #machine foundation
"category": string, #machine type
"signal": string,
"model": string, #sensor type
"model_setting": { # null or {} if the model is WISE-2410
"description": string,
"sampling_rate": int,
"samples": int,
"frequency": float,
"interval": float,
"sensitivity": float,
"energy": float,
"windows": [{
"start": float,
"end": float,
"peak_a": float,
"rms": float,
}, {...}, ...]
}
}
}
```
```yaml
foundation:
- "rigid"
- "flexible"
type:
- 0 # 馬力大於15kW泵浦(Pump>15kW)
- 1 # 馬力15kW至300kW電機設備(medium size machine 15kW<P<300kW)
- 2 # 馬力300kW至50MW電機設備(large machine 300kW<P<50MW)
- 3 # 整合驅動馬達(Integrated driver)
- 4 # 外接驅動馬達(External driver)
- 5 # 軸高160mm至315mm馬達(motors 160mm<H<315mm)
- 6 # 軸高高於315mm馬達(motors 315mm<H)
signal:
- "vibration" # 振動
- "current" # 電流
model:
- "WISE-2410"
- "PCIE-1803"
```
</details>
<details><summary><sup>Response</sup></summary>
```jsonld
#success ->
{
"errCode": 200,
"data": "success"
}
#Error ->
{
"errCode": 400,
"data": str #Error message
}
```
</details>
#### ~~**[PUT]** /v2/data-ai/model/{model_id} <br> <sub>Modify model</sub>~~
~~<sup>Same as **/v2/data-ai/model/start**</sup>~~
~~<SUP>*Note: {model_id} should exist beforehand. model_id parameter inside the request JSON can be used to rename the model_id*</SUP>~~
#### **[POST]** /v2/data-ai/model/list <br> <sub>Get the list of model</sub>
<details><summary><sup>Request</sup></summary>
```jsonld
}
"model_ids": str[]
}
```
</details>
<details><summary><sup>Response</sup></summary>
```jsonld
{
"errCode": 200,
"data": {
"models": [
{"model_id": str, "model_name": str, "task": str, "status": str},
...
]
}
}
```
</details>
#### **[POST]** /v2/data-ai/model/status **:fire:1.4 version update** <br> <sub>Get the status of model</sub>
<details><summary><sup>Request</sup></summary>
```jsonld
{
"model_ids": str[]
}
```
</details>
<details><summary><sup>Response</sup></summary>
```jsonld
{
"errCode": 200,
"data": {
"model_status": [
{ "model_id": str,
"training": {"status": str, "last_finish_time": str, "result": str},
"inference": {"status": str, "last_finish_time": str, "result": str}
"machine": { //device
"type": str, //foundation
"category": str //type
},
"data_collection": { //sensor
"signal": str,
"model": str
},
"setting": { //model_setting
"description": str, //device_description
"sampling_rate": int,
"samples": int,
"frequency": int, //checking_frequency
"interval": int, //storage_interval
"sensitivity": int,
"energy": int,
"windows": [{
"start": int,
"end": int,
"peak_a": int,
"rms": int,
}, ...]
} | {} # if not PCIE-1803
]
}
}
```
</details>
#### **[DELETE]** /v2/data-ai/model/*{model_id}* <br> <sub>Delete the sensor in a device</sub>
<details><summary><sup>Response</sup></summary>
```jsonld
{ #success
"errCode": 200,
"data": "success"
}
{ #Error
"errCode": 400,
"data": str #Error message
}
```
</details>
## Setting List
#### 🔥 **[GET]** /v2/data-ai/setting/spectrum **:fire:08/23 updated** <br> <sub>Setting</sub>
<details><summary><sup>Response</sup></summary>
```jsonld
{
"errCode": 200,
"data": {
"storage_criteria": str[], #soon deprecated
"device_description": str[]
}
}
```
</details>
#### 🔥 **[GET]** /v2/data-ai/setting/device <br> <sub>Setting</sub>
<details><summary><sup>Response</sup></summary>
```jsonld
{
"errCode": 200,
"data": {
"foundation": str[],
"type": str[]
}
}
```
</details>
#### 🔥 **[GET]** /v2/data-ai/setting/sensor <br> <sub>Setting</sub>
<details><summary><sup>Response</sup></summary>
```jsonld
{
"errCode": 200,
"data": {
"signal": str[],
"model": str[]
}
}
```
</details>