Spaces:
Running
Running
File size: 4,946 Bytes
64cd325 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 |
# Kronos API 文档
本文档提供有关 Kronos 预测服务的 API 端点的详细信息。
## 基础 URL
基础 URL 将取决于您的部署环境。
- **本地 Docker**: `http://localhost:7860`
- **Hugging Face Spaces**: `https://<your-space-name>.hf.space`
## 身份验证
所有端点(`/api/model-status` 除外)都受到保护,需要 API 密钥。密钥必须在请求的 `Authorization` 头中提供。
- **Header**: `Authorization: Bearer <YOUR_API_KEY>`
未能提供有效密钥将导致 `401 Unauthorized` 错误。
---
## 端点
### 1. 获取可用模型列表
获取服务端所有可用模型的详细信息。
- **URL**: `/api/available-models`
- **方法**: `GET`
- **身份验证**: 不需要。
**成功响应 (200 OK)**
```json
{
"kronos-mini": {
"name": "Kronos-mini",
"model_id": "NeoQuasar/Kronos-mini",
"tokenizer_id": "NeoQuasar/Kronos-Tokenizer-2k",
"context_length": 2048,
"params": "4.1M",
"description": "Lightweight model, suitable for fast prediction"
},
"kronos-small": {
"name": "Kronos-small",
"model_id": "NeoQuasar/Kronos-small",
"tokenizer_id": "NeoQuasar/Kronos-Tokenizer-base",
"context_length": 512,
"params": "24.7M",
"description": "Small model, balanced performance and speed"
},
"kronos-base": {
"name": "Kronos-base",
"model_id": "NeoQuasar/Kronos-base",
"tokenizer_id": "NeoQuasar/Kronos-Tokenizer-base",
"context_length": 512,
"params": "102.3M",
"description": "Base model, provides better prediction quality"
}
}
```
### 2. 获取当前模型状态
检查当前是否有模型被加载到内存中,并返回其详细信息。
- **URL**: `/api/model-status`
- **方法**: `GET`
- **身份验证**: 不需要。
**成功响应 (200 OK)**
```json
{
"status": "loaded",
"model_key": "kronos-base",
"model_info": {
"name": "Kronos-base",
"model_id": "NeoQuasar/Kronos-base",
"tokenizer_id": "NeoQuasar/Kronos-Tokenizer-base",
"context_length": 512,
"params": "102.3M",
"description": "Base model, provides better prediction quality"
}
}
```
**模型未加载响应 (200 OK)**
```json
{
"status": "not_loaded"
}
```
### 3. 加载模型
手动将一个指定的模型加载到内存中。
- **URL**: `/api/load-model`
- **方法**: `POST`
- **身份验证**: 需要。
**请求体 (Request Body)**
```json
{
"model_key": "kronos-base",
"force_reload": false
}
```
- `model_key` (可选): 模型的键名。默认为 `kronos-base`。**该值必须是 `/api/available-models` 端点返回的键之一** (例如, `"kronos-mini"`)。
- `force_reload` (可选): 如果为 `true`,即使请求的模型已在内存中,也会强制重新加载。默认为 `false`。
**成功响应 (200 OK)**
```json
{
"status": "Model 'Kronos-base' loaded successfully.",
"model_info": {
"name": "Kronos-base",
"model_id": "NeoQuasar/Kronos-base",
"tokenizer_id": "NeoQuasar/Kronos-Tokenizer-base",
"context_length": 512,
"params": "102.3M",
"description": "Base model, provides better prediction quality"
}
}
```
**错误响应 (400 Bad Request)**
如果提供了无效的 `model_key`。
```json
{
"error": "Invalid model_key. Please choose from the allowed models.",
"allowed_models": [
"kronos-mini",
"kronos-small",
"kronos-base"
]
}
```
### 4. 获取预测结果
提交 K 线数据并接收预测结果。
- **URL**: `/api/predict_from_data`
- **方法**: `POST`
- **身份验证**: 需要。
**请求体 (Request Body)**
```json
{
"k_lines": [
[1711324800000, "18.545", "19.514", "18.385", "19.395", "2080487", ...],
[1711411200000, "19.397", "20.759", "19.356", "20.032", "3020519", ...],
[1711497600000, "20.030", "20.211", "19.011", "19.303", "2351359", ...]
],
"prediction_params": {
"pred_len": 120
}
}
```
- `k_lines` (必需): 代表 K 线数据的数组的数组。格式应与币安 API 标准响应匹配(时间戳, 开盘价, 最高价, 最低价, 收盘价, 成交量, ...)。模型仅使用前 6 列。
- `prediction_params` (可选): 用于预测参数的字典。
- `pred_len` (可选): 要预测的未来时间步数。默认为 `120`。
**成功响应 (200 OK)**
```json
{
"success": true,
"prediction_params": {
"pred_len": 120
},
"prediction_results": [
{
"timestamp": "2024-07-01T00:00:00",
"open": 150.1,
"high": 152.3,
"low": 149.8,
"close": 151.5,
"volume": 100000.0
},
{
"timestamp": "2024-07-01T01:00:00",
"open": 151.5,
"high": 153.0,
"low": 151.0,
"close": 152.8,
"volume": 120000.0
}
]
}
```
*(注意: `prediction_results` 是一个示例;实际值会有所不同。)*
**错误响应 (400 Bad Request)**
如果模型尚未加载。
```json
{
"error": "模型未加载。请先调用 /api/load-model。"
} |