集成
通过我们的API,您可以为您的产品或者系统集成时序预测能力。
目前,我们提供了预测的API,微调暂时还未支持,对于光伏、风电、负荷预测,建议您先在我们的产品官网上先使用自己的数据进行微调后,再进行预测。
前置说明
在使用API之前,需要您确保:
- 在曦谋决策官网创建了APIKey,如果未创建请参考密钥管理部分。
- 如果需要使用付费的接口,需要账户有调用余额。
整体使用流程
我们使用了异步任务的方式来提供API,包含创建任务和查询任务结果的功能。
- 通过创建任务,您可以提交您的预测需求到系统;
- 通过查询任务,您可以跟踪任务状态,并在任务完成后获得预测的结果。
下图展示了 API 的基本使用流程。
创建预测任务
1. 通用时序预测任务
请求参数
参数名 | 说明 | 类型/格式 | 是否必填 | 默认值 |
---|---|---|---|---|
inputModelKey | 使用的模型 key | 字符串 | 是 | 无 |
freq | 预测时间间隔,支持:FIVE_MIN (5分钟)、FIFTEEN_MIN (15分钟)、THIRTY_MIN (30分钟)、ONE_H (1小时)、ONE_D (每日) | 枚举类型 | 否 | FIFTEEN_MIN(15分钟) |
extraInfo.type | 模型类型 | 字符串 | 是 | 固定填MOE |
extraInfo.modelKey | 额外参数中携带的模型标识 | 字符串 | 是 | 固定填time_moe_base |
extraInfo.historyFileUri | 历史文件链接 | 字符串 | 是 | 需要给一个公网可以访问的文件链接 |
extraInfo.historyFileColTime | 文件中用来表示时间的列名 | 字符串 | 是 | 无 |
extraInfo.historyFileColTarget | 文件中用来表示预测值的列名 | 字符串 | 是 | 无 |
extraInfo.horizon | 预测数据的长度 | 整数,必须大于0 | 是 | 无 |
请求示例
Curl
curl -X POST 'https://time.xm-opt.com/api/solar_power_predict_async' \
--header 'Content-Type: application/json' \
--header 'apikey: <apikey>' \
--data-raw '{
"inputModelKey": "time_moe_base",
"freq": "FIFTEEN_MIN",
"extraInfo": {
"type": "MOE",
"modelKey":"time_moe_base",
"historyFileUri": "f4cf53c0-86e4-4a0a-a5d5-d878d0937e24/file/moe_10_days_example (1).csv",
"historyFileColTime": "time",
"historyFileColTarget": "pv_power",
"horizon": "96"
}
}'
注意 这里的
historyFileUri
字段需要设置成一个公网可以访问的文件链接。
Python
所有接口的Python
示例,主要是将上边curl
请求的--data-raw
后的JSON
数据原封不动的替换到下方的data
字典中。因此后续类似的接口只给出curl
请求示例,将不再提供Python
示例。
import requests
url = 'https://time.xm-opt.com/api/solar_power_predict_async'
headers = {
'Content-Type': 'application/json',
'apikey': '<apikey>'
}
data = {
"inputModelKey": "time_moe_base",
"freq": "FIFTEEN_MIN",
"extraInfo": {
"type": "MOE",
"modelKey":"time_moe_base",
"historyFileUri": "f4cf53c0-86e4-4a0a-a5d5-d878d0937e24/file/moe_10_days_example (1).csv",
"historyFileColTime": "time",
"historyFileColTarget": "pv_power",
"horizon": "96"
}
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
返回示例
{
"code": 0,
"message": null,
"requestId": null,
"data": {
"taskKey": "2c9d1a14-60f7-4d78-a402-ebf3af95ee2a"
},
"success": true
}
2. 分布式光伏功率预测任务
请求参数
参数名 | 说明 | 类型/格式 | 是否必填 | 默认值 |
---|---|---|---|---|
inputModelKey | 使用的模型 key ,使用微调页面上展示的模型key | 字符串 | 是 | 无 |
longitude | 经度,精度到小数点后3位 | 小数,3位精度 | 是 | 无 |
latitude | 纬度,精度到小数点后3位 | 小数,3位精度 | 是 | 无 |
capacity | 系统的额定功率,即在标准测试条件下可输出的最大功率,单位为千瓦(KW) | 整数 | 是 | 无 |
freq | 预测时间间隔,支持:FIVE_MIN (5分钟)、FIFTEEN_MIN (15分钟)、THIRTY_MIN (30分钟)、ONE_H (1小时)、ONE_D (每日) | 枚举类型 | 否 | FIFTEEN_MIN(15分钟) |
altitude | 高度 / 海拔,单位米 | 整数/小数 | 否 | 地表高度 |
tiltAngle | 倾斜角(单位:度°),范围 0–90° | 整数/小数(0~90) | 否 | 与纬度相同 |
orientationAngle | 朝向角(单位:度°),180° 为正南 | 整数/小数(0~360) | 否 | 180 |
extraInfo.type | 模型类型 | 字符串 | 是 | 固定填TIMELLM |
extraInfo.modelKey | 微调基础模型标识 | 字符串 | 是 | 固定填solar_power_default |
extraInfo.startDate | 预测起始日期,包含 | 字符串,格式类似2025-04-21 | 是 | 无 |
extraInfo.endDate | 预测结束日期,包含 | 字符串,格式类似2025-04-21 | 是 | 无 |
请求示例
curl
curl -X POST 'https://time.xm-opt.com/api/solar_power_predict_async' \
--header 'Content-Type: application/json' \
--header 'apikey: <apikey>' \
--data-raw '{
"inputModelKey": "<model_key>",
"freq": "FIFTEEN_MIN",
"longitude": 120,
"latitude": 30,
"capacity": 10,
"extraInfo": {
"type": "TIMELLM",
"modelKey": "solar_power_default",
"startDate": "2025-04-21",
"endDate": "2025-04-22"
}
}'
python
import requests
url = 'https://time.xm-opt.com/api/solar_power_predict_async'
headers = {
'Content-Type': 'application/json',
'apikey': '<apikey>'
}
data = {
"inputModelKey": "<model_key>",
"freq": "FIFTEEN_MIN",
"longitude": 120,
"latitude": 30,
"capacity": 10,
"extraInfo": {
"type": "TIMELLM",
"modelKey": "solar_power_default",
"startDate": "2025-04-21",
"endDate": "2025-04-22"
}
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
返回示例
{
"code": 0,
"message": null,
"requestId": null,
"data": {
"taskKey": "2c9d1a14-60f7-4d78-a402-ebf3af95ee2a"
},
"success": true
}
3. 风电场站功率预测任务
请求参数
参数名 | 说明 | 类型/格式 | 是否必填 | 默认值 |
---|---|---|---|---|
inputModelKey | 使用微调出来的模型 key ,请参考模型微调页面 | 字符串 | 是 | 无 |
longitude | 经度,精度到小数点后3位 | 小数,3位精度 | 是 | 无 |
latitude | 纬度,精度到小数点后3位 | 小数,3位精度 | 是 | 无 |
capacity | 最大功率,即在标准 测试条件下可输出的最大功率,单位下方参数可配置 | 整数 | 是 | 无 |
freq | 预测时间间隔,支持:FIVE_MIN (5分钟)、FIFTEEN_MIN (15分钟)、THIRTY_MIN (30分钟)、ONE_H (1小时)、ONE_D (每日) | 枚举类型 | 否 | FIFTEEN_MIN(15分钟) |
extraInfo.type | 模型类型 | 字符串 | 是 | 固定填WIND_DEFAULT |
extraInfo.modelKey | 基础模型的 key | 字符串 | 是 | 固定填wind_power_default |
extraInfo.capUnit | 最大功率的单位 | 字符串 | 是 | KW 或者MW |
extraInfo.cutIn | 切入风速,单位m/s | 整数/小数 | 否 | 3 |
extraInfo.cutOut | 切出风速,单位m/s | 整数/小数 | 否 | 25 |
extraInfo.rated | 额定风速,单位m/s | 整数/小数 | 否 | 12 |
extraInfo.hubHeight | 风机高度,单位米 | 整数/小数 | 否 | 100 |
extraInfo.startDate | 预测起始日期,包含 | 字符串,格式类似2025-04-21 | 是 | 无 |
extraInfo.endDate | 预测结束日期,包含 | 字符串,格式类似2025-04-21 | 是 | 无 |
请求示例
Curl
curl -X POST 'https://time.xm-opt.com/api/solar_power_predict_async' \
--header 'Content-Type: application/json' \
--header 'apikey: <apikey>' \
--data-raw '{
"inputModelKey": "<modelKey>",
"freq": "FIFTEEN_MIN",
"longitude": 121,
"latitude": 32,
"capacity": 300,
"extraInfo": {
"type": "WIND_DEFAULT",
"modelKey":"wind_power_default",
"capUnit":"KW",
"cutIn": 3,
"cutOut": 25,
"rated": 12,
"hubHeight": 120,
"startDate":"2025-04-21",
"endDate":"2025-04-22"
}
}'
Python
参考通用时序预测的说明。
返回示例
{
"code": 0,
"message": null,
"requestId": null,
"data": {
"taskKey": "2c9d1a14-60f7-4d78-a402-ebf3af95ee2a"
},
"success": true
}
4. 负荷预测任务
请求参数
参数名 | 说明 | 类型/格式 | 是否必填 | 默认值 |
---|---|---|---|---|
inputModelKey | 使用的模型 key ,使用微调页面上展示的模型key | 字符串 | 是 | 无 |
longitude | 经度,精度到小数点后3位 | 小数,3位精度 | 是 | 无 |
latitude | 纬度,精度到小数点后3位 | 小数,3位精度 | 是 | 无 |
freq | 预测时间间隔,支持:FIVE_MIN (5分钟)、FIFTEEN_MIN (15分钟)、THIRTY_MIN (30分钟)、ONE_H (1小时)、ONE_D (每日) | 枚举类型 | 否 | FIFTEEN_MIN(15分钟) |
extraInfo.type | 模型类型 | 字符串 | 是 | 固定填写LOAD_DEFAULT |
extraInfo.modelKey | 微调基础模型key | 字符串 | 是 | 固定填写load_default |
extraInfo.startDate | 预测起始日期,包含 | 字符串,格式类似2025-04-21 | 是 | 无 |
extraInfo.endDate | 预测结束日期,包含 | 字符串,格式类似2025-04-21 | 是 | 无 |