# 时序异常检测微调工作流
#### 功能介绍
在时序异常检测大模型基础上引入多种下游适配器，支持基于历史数据的阈值优化或基于标注正异常数据的二分类识别。通过此方式，将原始问题转化为针对特定时间点的二分类任务，判断其状态为正常或异常。
若为微调工作流产物（正异常数据分类）模型，默认返回时序点正异常类别+重构值。同时支持自定义阈值以及具体具体异常分，便于后续异常样本的推理可解释以及可视化分析。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/productdesc-pangulm/pangulm_01_0020.html)。
#### URI
POST /
获取URI方式请参见[请求URI](https://support.huaweicloud.com/api-pangulm/pangulm_05_0004.html)。
#### 请求参数
使用[Token认证](https://support.huaweicloud.com/api-pangulm/pangulm_05_0009.html#pangulm_05_0009__section94702116509)方式的请求Header参数见[表1]。
 表1请求Header参数（Token认证） 
| 参数           | 是否必选 | 参数类型  | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| X-Auth-Token | 是     | String | **参数解释：** 用户Token。 用于获取操作API的权限。如[图4](https://support.huaweicloud.com/api-pangulm/pangulm_05_0009.html#pangulm_05_0009__fig10797003103)中响应消息头中X-Subject-Token的值即为Token。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
| Content-Type   | 是      | String   | **参数解释：** 发送的实体的MIME类型。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** application/json                                                                                                                                                                       |
   
使用[API Key认证](https://support.huaweicloud.com/api-pangulm/pangulm_05_0009.html#pangulm_05_0009__section148602501261)方式的请求Header参数见[表2]。
 表2请求Header参数（API Key认证） 
| 参数            | 是否必选 | 参数类型     | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|:---|
| X-Apig-AppCode | 是    | String | **参数解释：** API Key值。 用于获取操作API的权限。[API Key认证](https://support.huaweicloud.com/api-pangulm/pangulm_05_0009.html#pangulm_05_0009__section148602501261)响应消息头中X-Apig-AppCode的值即为API Key。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
| Content-Type  | 是      | String   | **参数解释：** 发送的实体的MIME类型。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** application/json                                                                                                                                                                                  |
   
表3请求Body参数 
| 参数          | 是否必选 | 参数类型         | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| data       | 是   | Array         | **参数解释：** 时序异常检测批处理数据。 **约束限制：** 盘古时序预测分类任务的输入数据内容，用字典承载。输入数据字典中，键对应特征列名，值为列表承载的序列数据具体内容，单条时序数据窗口长度需大于等于100。 **取值范围：** 输入数据中的一组数据。 **默认取值：** 预测大模型在训练完成后，可以在训练日志页面，"模型训练"日志节点中获取推理api所用的示例数据。填写请求Body时可以参考该示例填写。 ![](https://support.huaweicloud.com/api-pangulm/zh-cn_image_0000002757011131.png)                                                                                                                                                           |
| get_details | 否    | Bool          | **参数解释：** 指定推理服务是否返回推理详细信息。如果传入True开启，将返回异常分详细信息以键值anomaly_score承载；若下游适配器为阈值算法3-sigma, IQR+3-sigma, SPOT，将额外返回每个通道的标签值，以"label_channel"承载。 **取值范围：** true或false。 **默认取值：** false，默认关闭不返回详细信息。                                                                                                                                                                                                                                                                                                                                                                |
| thresholds | 否  | Dict\[Float\] | **参数解释：** 当下游适配器为3-Sigma, IQR+3-Sigma或者SPOT时，支持自定义推理服务的异常分阈值。默认为空。若不传入自定义阈值保留微调产物的阈值。 **约束限制：** 仅当训练下游适配器为3-Sigma, IQR+3-Sigma和SPOT时生效。 **取值范围：** 以JSON字典承载各个列的异常分阈值，例： {"feature_0": 0.12345, "feature_1": 0.12345, ..., "feature_n":0.12345} 其中键值为微调时使用的列名，阈值为浮点型数值。 **默认取值：** 默认取空值None，使用微调产物的异常分阈值。 |
   
#### 响应参数
**状态码： 200**
表4响应Body参数 
| 参数         | 参数类型                 | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|
| data       | LIST\<OutputMeta\> | **参数解释：** 时序预测结果的列表。同时返回各个时间点的正异常类别以及各个特征的重构值，分别以"label"以及"reconstruction"两个键值承载。若请求体get_details为true，则返回体包含推理详细信息： 1. 推理异常分，以anomaly_score承载。  2. 若微调的下游适配器为3-Sigma, IQR+3-Sigma或SPOT时，将额外返回每个通道的标签值，以"label_channel"承载。   **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
| time_cost | JSON               | **参数解释：** 当启动服务时，本次请求服务各阶段耗时情况。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                            |
   
**状态码： 400**
表5响应Body参数 
| 参数          | 参数类型  | 描述       |
|:---|:---|:---|
| error_code | String | 错误码。    |
| error_msg    | String  | 错误信息。 |
   
#### 请求示例
```
{
  "data": [
    {
      "context": {
        "feature_0": [ 864.1618041992188, 493.91827392578125, 252.7724151611328,...],
        "feature_1": [ 864.1618041992188, 493.91827392578125, 252.7724151611328,...],
        "feature_2": [ 864.1618041992188, 493.91827392578125, 252.7724151611328,...],
        "feature_3": [ 864.1618041992188, 493.91827392578125, 252.7724151611328,...]   
      }
    },
    {
      "context": {
        "feature_0": [ 864.1618041992188, 493.91827392578125, 252.7724151611328,...],
        "feature_1": [ 864.1618041992188, 493.91827392578125, 252.7724151611328,...],
        "feature_2": [ 864.1618041992188, 493.91827392578125, 252.7724151611328,...],
        "feature_3": [ 864.1618041992188, 493.91827392578125, 252.7724151611328,...]
      }
    },
    {...},
    {...}
  ],
  # get_details字段非必选
  "get_details": true,
  "thresholds": {
     feature_0": 0.1234,
    "feature_1": 0.1234,
    "feature_2": 0.1234,
    "feature_3": 0.1234
  }
}
```
#### 响应示例
```
{
  "data": [
    {   
        # 正异常类别
        "label":[ 0, 1, 0, 0, ...],
        # 重构结果
        "reconstruction":{
            "feature_0": [ 864.1618041992188, 493.91827392578125, 252.7724151611328,...],
            "feature_1": [ 864.1618041992188, 493.91827392578125, 252.7724151611328,...],
            "feature_2": [ 864.1618041992188, 493.91827392578125, 252.7724151611328,...],
            "feature_3": [ 864.1618041992188, 493.91827392578125, 252.7724151611328,...]   
        }
        # 异常分，仅当get_details为True时返回
        "anomaly_scores":{
            "feature_0": [ 864.1618041992188, 493.91827392578125, 252.7724151611328,...],
            "feature_1": [ 864.1618041992188, 493.91827392578125, 252.7724151611328,...],
            "feature_2": [ 864.1618041992188, 493.91827392578125, 252.7724151611328,...],
            "feature_3": [ 864.1618041992188, 493.91827392578125, 252.7724151611328,...]   
        },
        # 异常分，仅当get_details为True且微调下游适配器为3-Sigma, IQR+3-Sigma或SPOT时返回
        "label_channel":{
            "feature_0": [ 0, 1, 0, 0, ...],
            "feature_1": [ 0, 1, 0, 0, ...],
            "feature_2": [ 0, 1, 0, 0, ...],
            "feature_3": [ 0, 1, 0, 0, ...]   
        },
    },
    {...},
    {...},
    {...}
  ],
  "time_cost": {
    "infer_cost_time": "82.609 ms",
    "postprocess_cost_time": "0.29 ms",
    "preprocess_cost_time": "0.1332 ms",
    "service_cost_total_time": "84.965 ms"
  }
}
```
#### 状态码
请参见[状态码](https://support.huaweicloud.com/api-pangulm/pangulm_05_0019.html)。
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-pangulm/pangulm_05_0020.html)。
