@zhuoyuezs/ml-platform 0.2.9 → 0.2.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/checksums.json +64 -44
- package/package.json +1 -1
- package/release.json +19 -19
- package/runtime/business-client/README.md +10 -0
- package/runtime/business-client/package-lock.json +2 -2
- package/runtime/business-client/package.json +1 -1
- package/runtime/business-client/src/cli.js +92 -2
- package/runtime/business-client/src/http.js +9 -0
- package/skills/data-source-exploration/SKILL.md +12 -1
- package/skills/data-source-exploration/agents/openai.yaml +2 -2
- package/skills/data-source-exploration/references/data-platform.md +83 -0
- package/skills/feature-management/SKILL.md +13 -4
- package/skills/feature-management/agents/openai.yaml +2 -2
- package/skills/feature-management/references/commands.md +26 -0
- package/skills/feature-management/references/data-platform-mapping.md +104 -0
- package/skills/feature-management/references/platform-capability-guide.md +6 -0
- package/skills/feature-management/references/supervised-datasets.md +13 -0
- package/skills/model-deployment-management/SKILL.md +4 -0
- package/skills/model-deployment-management/references/contracts.md +6 -0
- package/skills/model-deployment-management/references/operations.md +14 -0
- package/skills/model-deployment-management/references/troubleshooting.md +8 -0
- package/skills/model-lifecycle-management/SKILL.md +14 -5
- package/skills/model-lifecycle-management/agents/openai.yaml +2 -2
- package/skills/model-lifecycle-management/references/ablation.md +111 -0
- package/skills/model-lifecycle-management/references/evaluation.md +55 -1
- package/skills/model-lifecycle-management/references/experiment-runs.md +59 -0
- package/skills/model-lifecycle-management/references/model-comparison.md +11 -9
- package/skills/model-lifecycle-management/references/training.md +34 -0
- package/skills/model-lifecycle-management/references/zero-shot-inference.md +68 -0
- package/skills/prediction-report-management/SKILL.md +3 -0
package/checksums.json
CHANGED
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
"files": [
|
|
3
3
|
{
|
|
4
4
|
"path": "runtime/business-client/README.md",
|
|
5
|
-
"sha256": "sha256:
|
|
6
|
-
"size_bytes":
|
|
5
|
+
"sha256": "sha256:9b56dde8e0db3a426e45b70595558b3ff461b79a867913a36978db90b963dfc0",
|
|
6
|
+
"size_bytes": 21439
|
|
7
7
|
},
|
|
8
8
|
{
|
|
9
9
|
"path": "runtime/business-client/package-lock.json",
|
|
10
|
-
"sha256": "sha256:
|
|
10
|
+
"sha256": "sha256:aaed1feb38250bcfa11284f54ff715dadadf848efece51b23aa133f110bd1358",
|
|
11
11
|
"size_bytes": 1628
|
|
12
12
|
},
|
|
13
13
|
{
|
|
14
14
|
"path": "runtime/business-client/package.json",
|
|
15
|
-
"sha256": "sha256:
|
|
15
|
+
"sha256": "sha256:bb5daa3e966f815c89ff5517962ddfe8a0dd5b767a2130d26c27c9cd987a8a0f",
|
|
16
16
|
"size_bytes": 671
|
|
17
17
|
},
|
|
18
18
|
{
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
29
|
"path": "runtime/business-client/src/cli.js",
|
|
30
|
-
"sha256": "sha256:
|
|
31
|
-
"size_bytes":
|
|
30
|
+
"sha256": "sha256:d3d2eb31c4508e532f634a63a057e2737bf60c4f7ccd966d156f71ab3e40fcbf",
|
|
31
|
+
"size_bytes": 85426
|
|
32
32
|
},
|
|
33
33
|
{
|
|
34
34
|
"path": "runtime/business-client/src/config.js",
|
|
@@ -37,28 +37,33 @@
|
|
|
37
37
|
},
|
|
38
38
|
{
|
|
39
39
|
"path": "runtime/business-client/src/http.js",
|
|
40
|
-
"sha256": "sha256:
|
|
41
|
-
"size_bytes":
|
|
40
|
+
"sha256": "sha256:2387545e4548c60148b69a3bf5a8ae98a369e387e54de47da4327a957f541c35",
|
|
41
|
+
"size_bytes": 29525
|
|
42
42
|
},
|
|
43
43
|
{
|
|
44
44
|
"path": "skills/data-source-exploration/SKILL.md",
|
|
45
|
-
"sha256": "sha256:
|
|
46
|
-
"size_bytes":
|
|
45
|
+
"sha256": "sha256:63086689eac598ba9683d8dc63921b6ce13780973870e5ec346f69918892c5ed",
|
|
46
|
+
"size_bytes": 6260
|
|
47
47
|
},
|
|
48
48
|
{
|
|
49
49
|
"path": "skills/data-source-exploration/agents/openai.yaml",
|
|
50
|
-
"sha256": "sha256:
|
|
51
|
-
"size_bytes":
|
|
50
|
+
"sha256": "sha256:15c93196536ff0eef2cf63940bee5eee852c9ccd55f394253fd98647f235b2eb",
|
|
51
|
+
"size_bytes": 348
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"path": "skills/data-source-exploration/references/data-platform.md",
|
|
55
|
+
"sha256": "sha256:f65ff27fcd3f2e18baa34ae103984bc3a0adbf9fbbcf28d652ed41f89c11e44a",
|
|
56
|
+
"size_bytes": 5865
|
|
52
57
|
},
|
|
53
58
|
{
|
|
54
59
|
"path": "skills/feature-management/SKILL.md",
|
|
55
|
-
"sha256": "sha256:
|
|
56
|
-
"size_bytes":
|
|
60
|
+
"sha256": "sha256:df6ca953ce7b1ad8dc8edb7a47cde02fc9cb6a70c1bf3a9a47d68b01ad642256",
|
|
61
|
+
"size_bytes": 36599
|
|
57
62
|
},
|
|
58
63
|
{
|
|
59
64
|
"path": "skills/feature-management/agents/openai.yaml",
|
|
60
|
-
"sha256": "sha256:
|
|
61
|
-
"size_bytes":
|
|
65
|
+
"sha256": "sha256:db2a9ebc7926370264e06b8e5767105415bb8a09a2dda08a7cf418a6e3b39bb0",
|
|
66
|
+
"size_bytes": 366
|
|
62
67
|
},
|
|
63
68
|
{
|
|
64
69
|
"path": "skills/feature-management/assets/catalog-template/catalog.json",
|
|
@@ -107,14 +112,19 @@
|
|
|
107
112
|
},
|
|
108
113
|
{
|
|
109
114
|
"path": "skills/feature-management/references/commands.md",
|
|
110
|
-
"sha256": "sha256:
|
|
111
|
-
"size_bytes":
|
|
115
|
+
"sha256": "sha256:8298c55378579aad151b86ff8a00d0c7cf992378b7c6af262d94564544dc4a3c",
|
|
116
|
+
"size_bytes": 19411
|
|
112
117
|
},
|
|
113
118
|
{
|
|
114
119
|
"path": "skills/feature-management/references/contracts.md",
|
|
115
120
|
"sha256": "sha256:717b81364f8508cd73d52f18d7b5dd012a3f3638921a8a5a93c41991a4f27998",
|
|
116
121
|
"size_bytes": 38182
|
|
117
122
|
},
|
|
123
|
+
{
|
|
124
|
+
"path": "skills/feature-management/references/data-platform-mapping.md",
|
|
125
|
+
"sha256": "sha256:fef06e1e1918132336789aa6d430a501324fc3f3f2241817322740a8dd20054a",
|
|
126
|
+
"size_bytes": 7421
|
|
127
|
+
},
|
|
118
128
|
{
|
|
119
129
|
"path": "skills/feature-management/references/operator-authoring.md",
|
|
120
130
|
"sha256": "sha256:68ec5861800a6623db8e3cfae8e3363493c54772c4719d60dc66e4f4f0d3a347",
|
|
@@ -122,18 +132,18 @@
|
|
|
122
132
|
},
|
|
123
133
|
{
|
|
124
134
|
"path": "skills/feature-management/references/platform-capability-guide.md",
|
|
125
|
-
"sha256": "sha256:
|
|
126
|
-
"size_bytes":
|
|
135
|
+
"sha256": "sha256:64874764924929421c294e7a421d546aba245d8f8bc40caba32d889f557c1906",
|
|
136
|
+
"size_bytes": 4850
|
|
127
137
|
},
|
|
128
138
|
{
|
|
129
139
|
"path": "skills/feature-management/references/supervised-datasets.md",
|
|
130
|
-
"sha256": "sha256:
|
|
131
|
-
"size_bytes":
|
|
140
|
+
"sha256": "sha256:a12ef5c26bc206507679e60fbecfa8bc1f5cfeb357e428b9dc8d1cdac6458a8a",
|
|
141
|
+
"size_bytes": 10886
|
|
132
142
|
},
|
|
133
143
|
{
|
|
134
144
|
"path": "skills/model-deployment-management/SKILL.md",
|
|
135
|
-
"sha256": "sha256:
|
|
136
|
-
"size_bytes":
|
|
145
|
+
"sha256": "sha256:5e1f92a03584df4631e896754b9b91012678b2358c1df7df55aa610fd527bf1d",
|
|
146
|
+
"size_bytes": 5505
|
|
137
147
|
},
|
|
138
148
|
{
|
|
139
149
|
"path": "skills/model-deployment-management/agents/openai.yaml",
|
|
@@ -142,28 +152,33 @@
|
|
|
142
152
|
},
|
|
143
153
|
{
|
|
144
154
|
"path": "skills/model-deployment-management/references/contracts.md",
|
|
145
|
-
"sha256": "sha256:
|
|
146
|
-
"size_bytes":
|
|
155
|
+
"sha256": "sha256:10a86a5f0ba36546c8487ea0bf78366f9034c9f713b80bb76a4fdb39aed67957",
|
|
156
|
+
"size_bytes": 7178
|
|
147
157
|
},
|
|
148
158
|
{
|
|
149
159
|
"path": "skills/model-deployment-management/references/operations.md",
|
|
150
|
-
"sha256": "sha256:
|
|
151
|
-
"size_bytes":
|
|
160
|
+
"sha256": "sha256:ee98dbd02d84318108c157913e19353d1a6931cbe647af4125cffecbca155fea",
|
|
161
|
+
"size_bytes": 7854
|
|
152
162
|
},
|
|
153
163
|
{
|
|
154
164
|
"path": "skills/model-deployment-management/references/troubleshooting.md",
|
|
155
|
-
"sha256": "sha256:
|
|
156
|
-
"size_bytes":
|
|
165
|
+
"sha256": "sha256:1d727c2e76fdbe361bdd5199bc63377feea9564b6b4d41842250bce1f23447f5",
|
|
166
|
+
"size_bytes": 4331
|
|
157
167
|
},
|
|
158
168
|
{
|
|
159
169
|
"path": "skills/model-lifecycle-management/SKILL.md",
|
|
160
|
-
"sha256": "sha256:
|
|
161
|
-
"size_bytes":
|
|
170
|
+
"sha256": "sha256:920473f386f191e7492088e6d84bf33458ee57e97fb8b1db1d7274722ae871ad",
|
|
171
|
+
"size_bytes": 8043
|
|
162
172
|
},
|
|
163
173
|
{
|
|
164
174
|
"path": "skills/model-lifecycle-management/agents/openai.yaml",
|
|
165
|
-
"sha256": "sha256:
|
|
166
|
-
"size_bytes":
|
|
175
|
+
"sha256": "sha256:096bb0bca665622326b214a4d88d5b6807b50cf143b8a2e05528256fc3568f58",
|
|
176
|
+
"size_bytes": 258
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
"path": "skills/model-lifecycle-management/references/ablation.md",
|
|
180
|
+
"sha256": "sha256:41182c0c356626b04387c4b613cf293528187a98bc7d05b12f3d379ac51ad0ab",
|
|
181
|
+
"size_bytes": 5581
|
|
167
182
|
},
|
|
168
183
|
{
|
|
169
184
|
"path": "skills/model-lifecycle-management/references/discovery.md",
|
|
@@ -172,13 +187,18 @@
|
|
|
172
187
|
},
|
|
173
188
|
{
|
|
174
189
|
"path": "skills/model-lifecycle-management/references/evaluation.md",
|
|
175
|
-
"sha256": "sha256:
|
|
176
|
-
"size_bytes":
|
|
190
|
+
"sha256": "sha256:124c938f8ab633d6851357add501dd8e5defdfa2c81e8305b045f93656e6236e",
|
|
191
|
+
"size_bytes": 18889
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
"path": "skills/model-lifecycle-management/references/experiment-runs.md",
|
|
195
|
+
"sha256": "sha256:43360b72f2f9565640241450be01d95b44ebd5750d13c0ea9af47158bda35ccc",
|
|
196
|
+
"size_bytes": 2719
|
|
177
197
|
},
|
|
178
198
|
{
|
|
179
199
|
"path": "skills/model-lifecycle-management/references/model-comparison.md",
|
|
180
|
-
"sha256": "sha256:
|
|
181
|
-
"size_bytes":
|
|
200
|
+
"sha256": "sha256:13eeb1226effffc4eee1cacdb4ea04f4f61bc31874190046b6634e8e7bb49703",
|
|
201
|
+
"size_bytes": 9391
|
|
182
202
|
},
|
|
183
203
|
{
|
|
184
204
|
"path": "skills/model-lifecycle-management/references/packaging.md",
|
|
@@ -192,18 +212,18 @@
|
|
|
192
212
|
},
|
|
193
213
|
{
|
|
194
214
|
"path": "skills/model-lifecycle-management/references/training.md",
|
|
195
|
-
"sha256": "sha256:
|
|
196
|
-
"size_bytes":
|
|
215
|
+
"sha256": "sha256:3ebf309ff7ede6b38dcb5b9afd75d282d29e91d768b9926808687c58434f88c9",
|
|
216
|
+
"size_bytes": 11419
|
|
197
217
|
},
|
|
198
218
|
{
|
|
199
219
|
"path": "skills/model-lifecycle-management/references/zero-shot-inference.md",
|
|
200
|
-
"sha256": "sha256:
|
|
201
|
-
"size_bytes":
|
|
220
|
+
"sha256": "sha256:cae4675f0ae6f57482bcc7d2df956ee10495709f09f1d118b7a8bb565f1227f1",
|
|
221
|
+
"size_bytes": 5402
|
|
202
222
|
},
|
|
203
223
|
{
|
|
204
224
|
"path": "skills/prediction-report-management/SKILL.md",
|
|
205
|
-
"sha256": "sha256:
|
|
206
|
-
"size_bytes":
|
|
225
|
+
"sha256": "sha256:e7ad90295929b01dc6640a6a5fe42b0dcbfd56c52fb329a05875bf1a706e7874",
|
|
226
|
+
"size_bytes": 8894
|
|
207
227
|
},
|
|
208
228
|
{
|
|
209
229
|
"path": "skills/prediction-report-management/agents/openai.yaml",
|
package/package.json
CHANGED
package/release.json
CHANGED
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
"entrypoint": "src/cli.js",
|
|
14
14
|
"name": "ml-platform",
|
|
15
15
|
"path": "runtime/business-client",
|
|
16
|
-
"sha256": "sha256:
|
|
17
|
-
"version": "0.8.
|
|
16
|
+
"sha256": "sha256:b6e415ea6031b7dd7c838f09c50c1b22501591754c6deedbdcd444d39eb498f7",
|
|
17
|
+
"version": "0.8.8"
|
|
18
18
|
},
|
|
19
19
|
"policy_sha256": "sha256:02fbde0134696b78c0c365d6e0b76c9814227208da5b2b3d4e5dbd82dc4a3606",
|
|
20
20
|
"public_schema_versions": [
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"ml_data_platform.feature_set/v1",
|
|
26
26
|
"ml_data_platform.dataset_manifest/v1"
|
|
27
27
|
],
|
|
28
|
-
"release_version": "0.2.
|
|
28
|
+
"release_version": "0.2.11",
|
|
29
29
|
"runtime_requirements": {
|
|
30
30
|
"node": ">=18",
|
|
31
31
|
"os": [
|
|
@@ -37,34 +37,34 @@
|
|
|
37
37
|
"skills": {
|
|
38
38
|
"data-source-exploration": {
|
|
39
39
|
"path": "skills/data-source-exploration",
|
|
40
|
-
"requires_cli": ">=0.8.
|
|
41
|
-
"revision": "0.2.
|
|
42
|
-
"sha256": "sha256:
|
|
40
|
+
"requires_cli": ">=0.8.8 <0.9.0",
|
|
41
|
+
"revision": "0.2.11",
|
|
42
|
+
"sha256": "sha256:9614e6901fcfeac7e0779caee7a8ab1df40b39d08161967e51b459c266b82f90"
|
|
43
43
|
},
|
|
44
44
|
"feature-management": {
|
|
45
45
|
"path": "skills/feature-management",
|
|
46
|
-
"requires_cli": ">=0.8.
|
|
47
|
-
"revision": "0.2.
|
|
48
|
-
"sha256": "sha256:
|
|
46
|
+
"requires_cli": ">=0.8.8 <0.9.0",
|
|
47
|
+
"revision": "0.2.11",
|
|
48
|
+
"sha256": "sha256:f9ec42124113d63a261e31d0f06959f2c7420370dfc1b6a84fcb2f5011310c45"
|
|
49
49
|
},
|
|
50
50
|
"model-deployment-management": {
|
|
51
51
|
"path": "skills/model-deployment-management",
|
|
52
|
-
"requires_cli": ">=0.8.
|
|
53
|
-
"revision": "0.2.
|
|
54
|
-
"sha256": "sha256:
|
|
52
|
+
"requires_cli": ">=0.8.8 <0.9.0",
|
|
53
|
+
"revision": "0.2.11",
|
|
54
|
+
"sha256": "sha256:ef13c737a098e9a582dfa6f7c54777c00a9efbc7af894c7aea35b9db4a97aa15"
|
|
55
55
|
},
|
|
56
56
|
"model-lifecycle-management": {
|
|
57
57
|
"path": "skills/model-lifecycle-management",
|
|
58
|
-
"requires_cli": ">=0.8.
|
|
59
|
-
"revision": "0.2.
|
|
60
|
-
"sha256": "sha256:
|
|
58
|
+
"requires_cli": ">=0.8.8 <0.9.0",
|
|
59
|
+
"revision": "0.2.11",
|
|
60
|
+
"sha256": "sha256:5f95a65d649c946ab64f72b127ad8861e20623b05b6a937cad953a4eb2eadfe3"
|
|
61
61
|
},
|
|
62
62
|
"prediction-report-management": {
|
|
63
63
|
"path": "skills/prediction-report-management",
|
|
64
|
-
"requires_cli": ">=0.8.
|
|
65
|
-
"revision": "0.2.
|
|
66
|
-
"sha256": "sha256:
|
|
64
|
+
"requires_cli": ">=0.8.8 <0.9.0",
|
|
65
|
+
"revision": "0.2.11",
|
|
66
|
+
"sha256": "sha256:399e5838604b5ce0248be702b70be2deaaf8f644e5518c91c45d21e0d2f43e53"
|
|
67
67
|
}
|
|
68
68
|
},
|
|
69
|
-
"source_commit": "
|
|
69
|
+
"source_commit": "c4ba6b6d1f0010eabbc269db5a8642b0c137944d"
|
|
70
70
|
}
|
|
@@ -58,6 +58,16 @@ ml-platform list-feature-versions <name> --project <project> --all
|
|
|
58
58
|
ml-platform list-jobs --project <project> --status succeeded --all
|
|
59
59
|
```
|
|
60
60
|
|
|
61
|
+
本地 CSV/Parquet 可上传为不可变 Parameter source,再通过 `add-parameter` 注册显式列映射;后续仍使用既有 Feature、FeatureSet 和 Dataset build 流程生成标准 DatasetArtifact:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
ml-platform upload-source-file /absolute/path/to/measurements.csv
|
|
65
|
+
ml-platform add-parameter /absolute/path/to/parameter.json
|
|
66
|
+
ml-platform build-registered-dataset <dataset_id> <dataset_version> --project <project> --wait
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
上传响应提供 `object_uri`、`object_sha256`、格式和列预览。Parameter 的 `source.adapter` 使用 `local_file`,并显式设置 `object_uri`、`object_sha256`、`file_format`、`time_column` 和 `value_column`;筛选条件使用 `filters`。上传不会推断业务字段、注册资产或创建 DatasetArtifact。当前首期支持单文件,不支持 ZIP/多文件合并或直接将原始文件作为训练数据集。
|
|
70
|
+
|
|
61
71
|
平台资源生命周期与部署绑定的因果上下文读取也由同一 CLI 覆盖:
|
|
62
72
|
|
|
63
73
|
```bash
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zhuoyuezs/ml-platform-business-client",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.8",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@zhuoyuezs/ml-platform-business-client",
|
|
9
|
-
"version": "0.8.
|
|
9
|
+
"version": "0.8.8",
|
|
10
10
|
"license": "UNLICENSED",
|
|
11
11
|
"bin": {
|
|
12
12
|
"ml-platform": "src/cli.js"
|
|
@@ -7,7 +7,7 @@ const { configPath, expandHome, loadApiUrl, normalizeApiUrl, saveApiUrl } = requ
|
|
|
7
7
|
const { PlatformApiClient } = require("./http");
|
|
8
8
|
const { applyCatalog, loadCatalog, normalizeDataset, normalizeRegistryDataset } = require("./catalog");
|
|
9
9
|
const { version: CLIENT_VERSION } = require("../package.json");
|
|
10
|
-
const LIFECYCLE_COLLECTIONS = new Set(["training-runs", "training-jobs", "model-artifacts", "evaluation-configs", "evaluation-runs", "evaluation-jobs", "metric-definitions", "executable-packages", "model-packages"]);
|
|
10
|
+
const LIFECYCLE_COLLECTIONS = new Set(["training-runs", "training-jobs", "model-artifacts", "evaluation-configs", "evaluation-runs", "evaluation-jobs", "metric-definitions", "executable-packages", "model-packages", "experiment-runs"]);
|
|
11
11
|
const BUSINESS_COMMANDS = new Set([
|
|
12
12
|
...[...LIFECYCLE_COLLECTIONS].map((name) => `list-${name}`),
|
|
13
13
|
"get-model-runtime-release", "get-training-run", "get-model-artifact", "get-executable-package",
|
|
@@ -15,6 +15,9 @@ const BUSINESS_COMMANDS = new Set([
|
|
|
15
15
|
"version", "create-project", "list-projects", "get-project", "delete-project",
|
|
16
16
|
"get-dataset-contract-file", "validate-evaluation-comparison",
|
|
17
17
|
"configure", "show-config", "health",
|
|
18
|
+
"data-platform-status", "list-data-platform-connections", "get-data-platform-connection",
|
|
19
|
+
"list-data-platform-objects", "list-data-platform-mappings", "list-data-platform-query-candidates", "get-data-platform-mapping-revision",
|
|
20
|
+
"bind-data-platform-parameters", "query-data-platform", "get-data-platform-query", "get-data-platform-snapshot",
|
|
18
21
|
"list-datasource-connections", "list-datasource-namespaces", "list-datasource-objects",
|
|
19
22
|
"list-datasource-fields", "query-datasource-object", "create-datasource-connection",
|
|
20
23
|
"get-datasource-connection", "update-datasource-connection", "delete-datasource-connection",
|
|
@@ -28,12 +31,13 @@ const BUSINESS_COMMANDS = new Set([
|
|
|
28
31
|
"get-parameter-lifecycle", "get-feature-lifecycle", "get-feature-set-lifecycle", "get-parameter-freshness",
|
|
29
32
|
"list-parameter-references", "list-feature-references", "list-feature-set-references",
|
|
30
33
|
"list-parameter-versions", "list-feature-versions", "list-feature-set-versions", "list-operator-versions",
|
|
31
|
-
"add-parameter", "add-feature", "add-feature-set", "add-operator", "publish-operator",
|
|
34
|
+
"add-parameter", "add-feature", "add-feature-set", "add-operator", "publish-operator", "upload-source-file",
|
|
32
35
|
"add-dataset", "update-dataset", "delete-dataset", "list-dataset-artifacts",
|
|
33
36
|
"register-operator", "show-operator-specs", "delete-operator", "run-operator",
|
|
34
37
|
"get-job", "wait-job", "retry-job", "cancel-job", "get-dataset-artifact", "download-dataset-artifact", "fetch-inference-data", "fetch-inference-context", "predict-model", "apply",
|
|
35
38
|
"list-foundation-models", "get-foundation-model", "predict-foundation", "predict-foundation-csv",
|
|
36
39
|
"list-system-models", "get-system-model", "register-training-run", "validate-training-run", "submit-training-job", "get-training-job", "retry-training-job", "cancel-training-job",
|
|
40
|
+
"create-experiment-run", "validate-experiment-run", "submit-experiment-run", "get-experiment-run", "list-experiment-candidates", "reconcile-experiment-run", "cancel-experiment-run",
|
|
37
41
|
"register-evaluation-config", "get-evaluation-config", "register-metric-definition", "get-metric-definition",
|
|
38
42
|
"register-executable-package", "verify-executable-package", "publish-executable-package",
|
|
39
43
|
"validate-evaluation-run", "submit-evaluation", "get-evaluation-run", "get-evaluation-job", "retry-evaluation-job", "cancel-evaluation-job", "list-evaluation-attempts",
|
|
@@ -62,6 +66,17 @@ const COMMAND_USAGE = {
|
|
|
62
66
|
configure: "configure --api-url URL",
|
|
63
67
|
"show-config": "show-config",
|
|
64
68
|
health: "health",
|
|
69
|
+
"data-platform-status": "data-platform-status",
|
|
70
|
+
"list-data-platform-connections": "list-data-platform-connections",
|
|
71
|
+
"get-data-platform-connection": "get-data-platform-connection CONNECTION_ID",
|
|
72
|
+
"list-data-platform-objects": "list-data-platform-objects CONNECTION_ID",
|
|
73
|
+
"list-data-platform-mappings": "list-data-platform-mappings [--page N] [--page-size N] [--scope-code CODE]",
|
|
74
|
+
"list-data-platform-query-candidates": "list-data-platform-query-candidates",
|
|
75
|
+
"get-data-platform-mapping-revision": "get-data-platform-mapping-revision MAPPING_ID REVISION_ID",
|
|
76
|
+
"bind-data-platform-parameters": "bind-data-platform-parameters SPEC_JSON",
|
|
77
|
+
"query-data-platform": "query-data-platform SPEC_JSON",
|
|
78
|
+
"get-data-platform-query": "get-data-platform-query RUN_ID",
|
|
79
|
+
"get-data-platform-snapshot": "get-data-platform-snapshot SNAPSHOT_ID [--offset N] [--limit N]",
|
|
65
80
|
"list-datasource-connections": "list-datasource-connections [--limit N] [--cursor CURSOR]",
|
|
66
81
|
"list-datasource-namespaces": "list-datasource-namespaces CONNECTION_ID [--limit N] [--cursor CURSOR]",
|
|
67
82
|
"list-datasource-objects": "list-datasource-objects CONNECTION_ID NAMESPACE_ID [--limit N] [--cursor CURSOR]",
|
|
@@ -107,6 +122,7 @@ const COMMAND_USAGE = {
|
|
|
107
122
|
"add-feature-set": "add-feature-set SPEC_JSON",
|
|
108
123
|
"add-operator": "add-operator SPEC_JSON",
|
|
109
124
|
"publish-operator": "publish-operator SPEC_JSON --package PATH",
|
|
125
|
+
"upload-source-file": "upload-source-file FILE",
|
|
110
126
|
"add-dataset": "add-dataset MANIFEST_JSON [--force]",
|
|
111
127
|
"update-dataset": "update-dataset MANIFEST_JSON [--force]",
|
|
112
128
|
"delete-dataset": "delete-dataset DATASET_ID DATASET_VERSION [--project PROJECT]",
|
|
@@ -168,6 +184,13 @@ const COMMAND_USAGE = {
|
|
|
168
184
|
"create-model-package": "create-model-package REQUEST_JSON [--idempotency-key KEY]",
|
|
169
185
|
"get-model-package": "get-model-package PACKAGE_ID [--package-version VERSION]",
|
|
170
186
|
"cancel-model-package": "cancel-model-package PACKAGE_ID [--package-version VERSION]",
|
|
187
|
+
"create-experiment-run": "create-experiment-run SPEC_JSON",
|
|
188
|
+
"validate-experiment-run": "validate-experiment-run RUN_ID",
|
|
189
|
+
"submit-experiment-run": "submit-experiment-run RUN_ID",
|
|
190
|
+
"get-experiment-run": "get-experiment-run RUN_ID",
|
|
191
|
+
"list-experiment-candidates": "list-experiment-candidates RUN_ID [--limit N] [--offset N]",
|
|
192
|
+
"reconcile-experiment-run": "reconcile-experiment-run RUN_ID",
|
|
193
|
+
"cancel-experiment-run": "cancel-experiment-run RUN_ID",
|
|
171
194
|
"validate-model-artifact": "validate-model-artifact ARTIFACT_ID",
|
|
172
195
|
"register-model-artifact": "register-model-artifact ARTIFACT_ID --evaluation-id EVALUATION_ID",
|
|
173
196
|
"list-business-domains": "list-business-domains",
|
|
@@ -490,6 +513,42 @@ async function runBusinessCli(argv, output = { write: text => process.stdout.wri
|
|
|
490
513
|
}
|
|
491
514
|
else if (options.command === "health")
|
|
492
515
|
result = await client(options).get("/health");
|
|
516
|
+
else if (options.command === "data-platform-status")
|
|
517
|
+
result = await client(options).get("/data-platform/status");
|
|
518
|
+
else if (options.command === "list-data-platform-connections")
|
|
519
|
+
result = await client(options).get("/data-platform/connections");
|
|
520
|
+
else if (options.command === "list-data-platform-query-candidates")
|
|
521
|
+
result = await client(options).get("/data-platform/query-candidates");
|
|
522
|
+
else if (["get-data-platform-connection", "list-data-platform-objects"].includes(options.command)) {
|
|
523
|
+
const id = encodeURIComponent(positional(rest, "connection id"));
|
|
524
|
+
const suffix = options.command === "list-data-platform-objects" ? "/objects" : "";
|
|
525
|
+
result = await client(options).get(`/data-platform/connections/${id}${suffix}`);
|
|
526
|
+
}
|
|
527
|
+
else if (options.command === "list-data-platform-mappings") {
|
|
528
|
+
result = await client(options).get("/data-platform/mappings", {
|
|
529
|
+
page: integer(take(rest, "--page", "1"), "page"),
|
|
530
|
+
page_size: integer(take(rest, "--page-size", "50"), "page size"),
|
|
531
|
+
scope_code: take(rest, "--scope-code"),
|
|
532
|
+
});
|
|
533
|
+
}
|
|
534
|
+
else if (options.command === "get-data-platform-mapping-revision") {
|
|
535
|
+
const mappingId = encodeURIComponent(positional(rest, "mapping id"));
|
|
536
|
+
const revisionId = encodeURIComponent(positional(rest, "revision id"));
|
|
537
|
+
result = await client(options).get(`/data-platform/mappings/${mappingId}/revisions/${revisionId}`);
|
|
538
|
+
}
|
|
539
|
+
else if (options.command === "bind-data-platform-parameters")
|
|
540
|
+
result = await client(options).post("/data-platform/parameters", readSpec(positional(rest, "binding spec JSON")));
|
|
541
|
+
else if (options.command === "query-data-platform")
|
|
542
|
+
result = await client(options).post("/data-platform/query-runs", readSpec(positional(rest, "query spec JSON")));
|
|
543
|
+
else if (options.command === "get-data-platform-query")
|
|
544
|
+
result = await client(options).get(`/data-platform/query-runs/${encodeURIComponent(positional(rest, "run id"))}`);
|
|
545
|
+
else if (options.command === "get-data-platform-snapshot") {
|
|
546
|
+
const id = encodeURIComponent(positional(rest, "snapshot id"));
|
|
547
|
+
result = await client(options).get(`/data-platform/snapshots/${id}/rows`, {
|
|
548
|
+
offset: integer(take(rest, "--offset", "0"), "offset"),
|
|
549
|
+
limit: integer(take(rest, "--limit", "200"), "limit"),
|
|
550
|
+
});
|
|
551
|
+
}
|
|
493
552
|
else if (options.command === "list-datasource-connections") {
|
|
494
553
|
result = await client(options).get("/datasource-connections", datasourcePageParams(rest));
|
|
495
554
|
}
|
|
@@ -566,6 +625,9 @@ async function runBusinessCli(argv, output = { write: text => process.stdout.wri
|
|
|
566
625
|
const published = { ...spec, code_hash: upload.code_artifact.sha256, package_uri: upload.code_artifact.uri, code_artifact: upload.code_artifact };
|
|
567
626
|
result = { status: "published", profile: "server", path: null, operator: published, registration: await api.post("/operators", published) };
|
|
568
627
|
}
|
|
628
|
+
else if (options.command === "upload-source-file") {
|
|
629
|
+
result = await client(options).uploadSourceFile(positional(rest, "source file"));
|
|
630
|
+
}
|
|
569
631
|
else if (options.command === "get-dataset") {
|
|
570
632
|
const datasetId = positional(rest, "dataset id");
|
|
571
633
|
const datasetVersion = positional(rest, "dataset version");
|
|
@@ -1051,6 +1113,34 @@ async function runBusinessCli(argv, output = { write: text => process.stdout.wri
|
|
|
1051
1113
|
else if (options.command === "get-model-runtime-release") {
|
|
1052
1114
|
result = await client(options).get("/model-runtime-release");
|
|
1053
1115
|
}
|
|
1116
|
+
else if (options.command === "create-experiment-run") {
|
|
1117
|
+
result = await client(options).post("/experiment-runs", readSpec(positional(rest, "experiment JSON")));
|
|
1118
|
+
}
|
|
1119
|
+
else if (/^(validate|submit|reconcile|cancel)-experiment-run$/.test(options.command)) {
|
|
1120
|
+
const runId = positional(rest, "experiment run id");
|
|
1121
|
+
const action = options.command.split("-")[0];
|
|
1122
|
+
result = await client(options).post(`/experiment-runs/${encodeURIComponent(runId)}/${action}`);
|
|
1123
|
+
}
|
|
1124
|
+
else if (options.command === "get-experiment-run") {
|
|
1125
|
+
result = await client(options).get(`/experiment-runs/${encodeURIComponent(positional(rest, "experiment run id"))}`);
|
|
1126
|
+
}
|
|
1127
|
+
else if (options.command === "list-experiment-candidates") {
|
|
1128
|
+
const runId = positional(rest, "experiment run id");
|
|
1129
|
+
const params = {};
|
|
1130
|
+
const limit = take(rest, "--limit");
|
|
1131
|
+
const offset = take(rest, "--offset");
|
|
1132
|
+
if (limit !== undefined) {
|
|
1133
|
+
params.limit = integer(limit, "--limit");
|
|
1134
|
+
if (params.limit < 1 || params.limit > 500)
|
|
1135
|
+
throw new Error("--limit must be between 1 and 500");
|
|
1136
|
+
}
|
|
1137
|
+
if (offset !== undefined) {
|
|
1138
|
+
params.offset = integer(offset, "--offset");
|
|
1139
|
+
if (params.offset < 0)
|
|
1140
|
+
throw new Error("--offset must be non-negative");
|
|
1141
|
+
}
|
|
1142
|
+
result = await client(options).get(`/experiment-runs/${encodeURIComponent(runId)}/candidates`, params);
|
|
1143
|
+
}
|
|
1054
1144
|
else if (options.command.startsWith("list-") && LIFECYCLE_COLLECTIONS.has(options.command.slice(5))) {
|
|
1055
1145
|
const params = {};
|
|
1056
1146
|
const limit = take(rest, "--limit");
|
|
@@ -212,6 +212,15 @@ class PlatformApiClient {
|
|
|
212
212
|
params: { filename: path.basename(resolved) }, body: fs.readFileSync(resolved), contentType: "application/octet-stream",
|
|
213
213
|
});
|
|
214
214
|
}
|
|
215
|
+
uploadSourceFile(filePath) {
|
|
216
|
+
const resolved = path.resolve(expandHome(filePath));
|
|
217
|
+
if (!fs.existsSync(resolved) || !fs.statSync(resolved).isFile())
|
|
218
|
+
throw new Error(`source file not found: ${resolved}`);
|
|
219
|
+
const filename = path.basename(resolved).replace(/["\r\n]/g, "_");
|
|
220
|
+
return this.request("POST", "/source-files", {
|
|
221
|
+
params: { filename }, body: fs.readFileSync(resolved), contentType: "application/octet-stream",
|
|
222
|
+
});
|
|
223
|
+
}
|
|
215
224
|
async downloadDatasetArtifact(project, datasetId, manifestHash, outputDir, force = false) {
|
|
216
225
|
const target = path.resolve(expandHome(outputDir));
|
|
217
226
|
if (fs.existsSync(target) && fs.readdirSync(target).length) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: data-source-exploration
|
|
3
|
-
description: Discover platform-configured
|
|
3
|
+
description: Discover platform-configured database objects or published external data-platform Mappings, and run bounded structured or Mapping snapshot reads for local data and feature exploration. Use when an algorithm engineer wants to inspect visible sources, Mapping outputs, time coverage or limited rows before defining governed feature assets. Do not use for free-form SQL, bulk export, asset publication, dataset builds, or model training.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Data Source Exploration
|
|
@@ -10,6 +10,15 @@ never request credentials in chat. The platform exposes managed connections and
|
|
|
10
10
|
objects. Connection credentials are write-only control-plane input and are never returned by the
|
|
11
11
|
platform.
|
|
12
12
|
|
|
13
|
+
## External Data Platform
|
|
14
|
+
|
|
15
|
+
For external published mapping discovery and bounded query/snapshot reads, follow
|
|
16
|
+
[the external data platform reference](references/data-platform.md). This includes the complete
|
|
17
|
+
authorized query-candidate catalog, fixed Mapping revisions, asynchronous query runs and paged
|
|
18
|
+
snapshots. Keep that catalog separate from the direct database connections below; it has its own
|
|
19
|
+
IDs, permissions and query semantics. Use `$feature-management` to bind confirmed outputs to
|
|
20
|
+
Parameters and build features; discovery alone does not publish assets.
|
|
21
|
+
|
|
13
22
|
## Manage Connections
|
|
14
23
|
|
|
15
24
|
Datasource connections are business-owned platform resources, not ConfigMap entries. An operator
|
|
@@ -48,6 +57,8 @@ Before discovery, verify the installed client and server target:
|
|
|
48
57
|
|
|
49
58
|
```bash
|
|
50
59
|
command -v ml-platform
|
|
60
|
+
ml-platform version
|
|
61
|
+
ml-platform show-config
|
|
51
62
|
ml-platform health
|
|
52
63
|
```
|
|
53
64
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
interface:
|
|
2
2
|
display_name: "数据源与特征探索"
|
|
3
|
-
short_description: "
|
|
4
|
-
default_prompt: "使用 $data-source-exploration
|
|
3
|
+
short_description: "发现已连接数据源或外部 Mapping,并执行有界查询"
|
|
4
|
+
default_prompt: "使用 $data-source-exploration 发现平台可见库表字段或外部数据平台已发布 Mapping,执行有界查询和快照读取,并整理覆盖率、数据与特征假设。"
|