@iyulab/mloop-mcp 0.9.0 → 0.10.0
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/README.md +2 -1
- package/build/server.d.ts.map +1 -1
- package/build/server.js +3 -1
- package/build/server.js.map +1 -1
- package/build/tools/calibrate.d.ts +66 -0
- package/build/tools/calibrate.d.ts.map +1 -0
- package/build/tools/calibrate.js +64 -0
- package/build/tools/calibrate.js.map +1 -0
- package/build/tools/drift.js +1 -1
- package/build/tools/drift.js.map +1 -1
- package/build/tools/index.d.ts +4 -0
- package/build/tools/index.d.ts.map +1 -1
- package/build/tools/index.js +2 -0
- package/build/tools/index.js.map +1 -1
- package/build/tools/predict.d.ts +5 -0
- package/build/tools/predict.d.ts.map +1 -1
- package/build/tools/predict.js +10 -2
- package/build/tools/predict.js.map +1 -1
- package/build/tools/threshold.d.ts +5 -0
- package/build/tools/threshold.d.ts.map +1 -1
- package/build/tools/threshold.js +6 -2
- package/build/tools/threshold.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -76,10 +76,11 @@ plugins:
|
|
|
76
76
|
| `mloop_promote` | Promote an experiment to production (explicit ID, `latest`, or `best`); a model the quality gate refuses needs `force`; `history` lists every change of production with the gate outcome (mloop >= 0.39) |
|
|
77
77
|
| `mloop_rollback` | Return production to the experiment it held before (or `to` a former production experiment) |
|
|
78
78
|
| `mloop_threshold` | Choose a binary model's decision threshold for a target precision on labeled rows, show it, or clear it (mloop >= 0.39) |
|
|
79
|
+
| `mloop_calibrate` | Fit a classifier's probability calibration (binary platt · isotonic, multiclass temperature) on labeled rows without retraining, show it, or clear it (mloop >= 0.40) |
|
|
79
80
|
| `mloop_export_onnx` | Model as ONNX + manifest (inputs and their data columns, outputs, classes, hashes) for runtimes without ML.NET |
|
|
80
81
|
| `mloop_info` | Analyze and profile datasets |
|
|
81
82
|
| `mloop_analyze` | Run one read-only EDA aspect (profile/correlation/importance/outliers/distribution) as structured JSON |
|
|
82
|
-
| `mloop_drift` | Recent inputs and answers vs the training data — PSI per column, for the answers (mloop >= 0.39), per slice, as JSON (mloop >= 0.38) |
|
|
83
|
+
| `mloop_drift` | Recent inputs and answers vs the training data — PSI per column, for the answers (mloop >= 0.39), for free-text columns by length and unseen words (mloop >= 0.40), per slice, as JSON (mloop >= 0.38) |
|
|
83
84
|
| `mloop_detect` | One-shot time-series anomaly detection with SPC bounds — no training, no project required (mloop >= 0.21) |
|
|
84
85
|
| `mloop_prep_plan` | Declare a preprocessing step in mloop.yaml (policy only, no data change) as structured JSON |
|
|
85
86
|
| `mloop_features_select` | Declare feature include/exclude in mloop.yaml (policy only, no data change) as structured JSON |
|
package/build/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmCpE;;GAEG;AACH,wBAAgB,YAAY,IAAI,SAAS,CA6OxC"}
|
package/build/server.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
5
|
import {
|
|
6
6
|
// Existing tools
|
|
7
|
-
trainTool, train, trainSchema, predictTool, predict, predictSchema, listTool, list, listSchema, promoteTool, promote, promoteSchema, rollbackTool, rollback, rollbackSchema, thresholdTool, threshold, thresholdSchema, exportOnnxTool, exportOnnx, exportOnnxSchema, infoTool, info, infoSchema, statusTool, status, statusSchema, compareTool, compare, compareSchema, evaluateTool, evaluate, evaluateSchema, serveTool, serve, serveSchema,
|
|
7
|
+
trainTool, train, trainSchema, predictTool, predict, predictSchema, listTool, list, listSchema, promoteTool, promote, promoteSchema, rollbackTool, rollback, rollbackSchema, thresholdTool, threshold, thresholdSchema, calibrateTool, calibrate, calibrateSchema, exportOnnxTool, exportOnnx, exportOnnxSchema, infoTool, info, infoSchema, statusTool, status, statusSchema, compareTool, compare, compareSchema, evaluateTool, evaluate, evaluateSchema, serveTool, serve, serveSchema,
|
|
8
8
|
// New basic tools
|
|
9
9
|
initTool, init, initSchema, validateTool, validate, validateSchema, prepTool, prep, prepSchema, logsTool, logs, logsSchema, feedbackTool, feedback, feedbackSchema, sampleTool, sample, sampleSchema, triggerTool, trigger, triggerSchema, driftTool, drift, driftSchema, analyzeTool, analyze, analyzeSchema, detectTool, detect, detectSchema, prepPlanTool, prepPlan, prepPlanSchema, featuresSelectTool, featuresSelect, featuresSelectSchema,
|
|
10
10
|
// Composite workflow tools
|
|
@@ -30,6 +30,8 @@ export function createServer() {
|
|
|
30
30
|
server.tool(rollbackTool.name, rollbackTool.description, rollbackSchema.shape, async (params) => rollback(params));
|
|
31
31
|
// Register mloop_threshold
|
|
32
32
|
server.tool(thresholdTool.name, thresholdTool.description, thresholdSchema.shape, async (params) => threshold(params));
|
|
33
|
+
// Register mloop_calibrate
|
|
34
|
+
server.tool(calibrateTool.name, calibrateTool.description, calibrateSchema.shape, async (params) => calibrate(params));
|
|
33
35
|
// Register mloop_export_onnx
|
|
34
36
|
server.tool(exportOnnxTool.name, exportOnnxTool.description, exportOnnxSchema.shape, async (params) => exportOnnx(params));
|
|
35
37
|
// Register mloop_info
|
package/build/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mloop_calibrate tool - Fit, show or remove a binary classifier's probability calibration
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
export declare const calibrateSchema: z.ZodObject<{
|
|
6
|
+
projectPath: z.ZodString;
|
|
7
|
+
experimentId: z.ZodOptional<z.ZodString>;
|
|
8
|
+
modelName: z.ZodOptional<z.ZodString>;
|
|
9
|
+
dataFile: z.ZodOptional<z.ZodString>;
|
|
10
|
+
method: z.ZodOptional<z.ZodEnum<{
|
|
11
|
+
platt: "platt";
|
|
12
|
+
isotonic: "isotonic";
|
|
13
|
+
temperature: "temperature";
|
|
14
|
+
}>>;
|
|
15
|
+
weight: z.ZodOptional<z.ZodString>;
|
|
16
|
+
clear: z.ZodOptional<z.ZodBoolean>;
|
|
17
|
+
}, z.core.$strip>;
|
|
18
|
+
export type CalibrateParams = z.infer<typeof calibrateSchema>;
|
|
19
|
+
export declare function calibrate(params: CalibrateParams): Promise<{
|
|
20
|
+
content: Array<{
|
|
21
|
+
type: 'text';
|
|
22
|
+
text: string;
|
|
23
|
+
}>;
|
|
24
|
+
isError?: boolean;
|
|
25
|
+
}>;
|
|
26
|
+
export declare const calibrateTool: {
|
|
27
|
+
name: string;
|
|
28
|
+
description: string;
|
|
29
|
+
inputSchema: {
|
|
30
|
+
type: string;
|
|
31
|
+
properties: {
|
|
32
|
+
projectPath: {
|
|
33
|
+
type: string;
|
|
34
|
+
description: string;
|
|
35
|
+
};
|
|
36
|
+
experimentId: {
|
|
37
|
+
type: string;
|
|
38
|
+
description: string;
|
|
39
|
+
};
|
|
40
|
+
modelName: {
|
|
41
|
+
type: string;
|
|
42
|
+
description: string;
|
|
43
|
+
};
|
|
44
|
+
dataFile: {
|
|
45
|
+
type: string;
|
|
46
|
+
description: string;
|
|
47
|
+
};
|
|
48
|
+
method: {
|
|
49
|
+
type: string;
|
|
50
|
+
enum: string[];
|
|
51
|
+
description: string;
|
|
52
|
+
};
|
|
53
|
+
weight: {
|
|
54
|
+
type: string;
|
|
55
|
+
description: string;
|
|
56
|
+
};
|
|
57
|
+
clear: {
|
|
58
|
+
type: string;
|
|
59
|
+
description: string;
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
required: string[];
|
|
63
|
+
};
|
|
64
|
+
handler: typeof calibrate;
|
|
65
|
+
};
|
|
66
|
+
//# sourceMappingURL=calibrate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calibrate.d.ts","sourceRoot":"","sources":["../../src/tools/calibrate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,eAAe;;;;;;;;;;;;iBAQ1B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D,wBAAsB,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAwBvI;AAED,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiBzB,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* mloop_calibrate tool - Fit, show or remove a binary classifier's probability calibration
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { executeMloop } from '../executor.js';
|
|
6
|
+
import { parseCliOutput } from '../utils/parser.js';
|
|
7
|
+
import { formatError } from '../utils/errors.js';
|
|
8
|
+
export const calibrateSchema = z.object({
|
|
9
|
+
projectPath: z.string().describe('Path to MLoop project directory'),
|
|
10
|
+
experimentId: z.string().optional().describe('Experiment to calibrate (default: the production model)'),
|
|
11
|
+
modelName: z.string().optional().describe('Model name'),
|
|
12
|
+
dataFile: z.string().optional().describe('Labeled rows the calibration is fit on — rows the model was not trained on'),
|
|
13
|
+
method: z.enum(['platt', 'isotonic', 'temperature']).optional().describe('Binary: platt (default; steady on a few hundred rows) or isotonic (no shape assumed, needs more rows). Multiclass: temperature (default; answers unchanged)'),
|
|
14
|
+
weight: z.string().optional().describe('Column that weights the rows (1/π for a recheck sample)'),
|
|
15
|
+
clear: z.boolean().optional().describe('Remove the calibration: the model answers with its own probabilities again'),
|
|
16
|
+
});
|
|
17
|
+
export async function calibrate(params) {
|
|
18
|
+
try {
|
|
19
|
+
const { projectPath, experimentId, modelName, dataFile, method, weight, clear } = params;
|
|
20
|
+
const args = ['calibrate'];
|
|
21
|
+
if (experimentId)
|
|
22
|
+
args.push(experimentId);
|
|
23
|
+
if (modelName)
|
|
24
|
+
args.push('--name', modelName);
|
|
25
|
+
if (dataFile)
|
|
26
|
+
args.push('--data', dataFile);
|
|
27
|
+
if (method)
|
|
28
|
+
args.push('--method', method);
|
|
29
|
+
if (weight)
|
|
30
|
+
args.push('--weight', weight);
|
|
31
|
+
if (clear)
|
|
32
|
+
args.push('--clear');
|
|
33
|
+
args.push('--json');
|
|
34
|
+
const result = await executeMloop(args, { cwd: projectPath });
|
|
35
|
+
return {
|
|
36
|
+
content: [{ type: 'text', text: parseCliOutput(result.stdout) || 'No calibration output.' }],
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
return {
|
|
41
|
+
content: [{ type: 'text', text: formatError(error) }],
|
|
42
|
+
isError: true,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
export const calibrateTool = {
|
|
47
|
+
name: 'mloop_calibrate',
|
|
48
|
+
description: 'A classifier\'s probability calibration, as JSON. With dataFile, fits a map from the model\'s own probability to how often it is right on those labeled rows (binary: platt or isotonic; multiclass: temperature, answers unchanged; weighted rows allowed) and writes it beside the model without retraining — predict, serve, evaluate (its ECE) and a threshold chosen afterwards then read calibrated probabilities, and promote carries it. Reports ECE before and after on the fit rows (in-sample). Refused while the model has a decision threshold (clear it, calibrate, choose it again). Without dataFile, shows the current one; with clear, removes it (mloop >= 0.40).',
|
|
49
|
+
inputSchema: {
|
|
50
|
+
type: 'object',
|
|
51
|
+
properties: {
|
|
52
|
+
projectPath: { type: 'string', description: 'Path to MLoop project directory' },
|
|
53
|
+
experimentId: { type: 'string', description: 'Experiment (default: production)' },
|
|
54
|
+
modelName: { type: 'string', description: 'Model name for namespacing' },
|
|
55
|
+
dataFile: { type: 'string', description: 'Labeled rows to fit on' },
|
|
56
|
+
method: { type: 'string', enum: ['platt', 'isotonic', 'temperature'], description: 'Calibration method (default: platt for binary, temperature for multiclass)' },
|
|
57
|
+
weight: { type: 'string', description: 'Column that weights the rows' },
|
|
58
|
+
clear: { type: 'boolean', description: 'Remove the calibration' },
|
|
59
|
+
},
|
|
60
|
+
required: ['projectPath'],
|
|
61
|
+
},
|
|
62
|
+
handler: calibrate,
|
|
63
|
+
};
|
|
64
|
+
//# sourceMappingURL=calibrate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calibrate.js","sourceRoot":"","sources":["../../src/tools/calibrate.ts"],"names":[],"mappings":"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"}
|
package/build/tools/drift.js
CHANGED
|
@@ -40,7 +40,7 @@ export async function drift(params) {
|
|
|
40
40
|
}
|
|
41
41
|
export const driftTool = {
|
|
42
42
|
name: 'mloop_drift',
|
|
43
|
-
description: 'How far the production model\'s recent inputs (its own logged predictions) have moved from the data it was trained on, as JSON: status (Measured, NoProduction, NoProfile, TooFewRows), and per column the population stability index (PSI — under 0.1 stable, 0.1–0.25 moderate, 0.25+ significant), its level and the bin that moved most with its training and current share; plus, under drift.prediction, the same measure for the model\'s own answers against its answers at training (predicted class, or predicted value by decile; null when the model has no answer profile — mloop >= 0.39). With sliceBy, the same per value of an input column. Answers that move while inputs hold mean the mix of requests shifted inside known ranges. Use it to decide where to look harder or whether to retrain (mloop >= 0.38).',
|
|
43
|
+
description: 'How far the production model\'s recent inputs (its own logged predictions) have moved from the data it was trained on, as JSON: status (Measured, NoProduction, NoProfile, TooFewRows), and per column the population stability index (PSI — under 0.1 stable, 0.1–0.25 moderate, 0.25+ significant), its level and the bin that moved most with its training and current share; plus, under drift.prediction, the same measure for the model\'s own answers against its answers at training (predicted class, or predicted value by decile; null when the model has no answer profile — mloop >= 0.39). A free-text column appears as two columns, "<column> (length)" and "<column> (unseen words)" — the share of words training never saw, the one that moves when the text changes subject (mloop >= 0.40). With sliceBy, the same per value of an input column. Answers that move while inputs hold mean the mix of requests shifted inside known ranges. Use it to decide where to look harder or whether to retrain (mloop >= 0.38).',
|
|
44
44
|
inputSchema: {
|
|
45
45
|
type: 'object',
|
|
46
46
|
properties: {
|
package/build/tools/drift.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drift.js","sourceRoot":"","sources":["../../src/tools/drift.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IACnE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IAC5E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wFAAwF,CAAC;IACpI,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iFAAiF,CAAC;CAC3H,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,MAAmB;IAC7C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACjC,IAAI,MAAM,CAAC,SAAS;YAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAC5D,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACxE,IAAI,MAAM,CAAC,OAAO;YAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAE5D,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QAErE,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,kBAAkB;iBAC1D,CAAC;SACH,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC;iBACzB,CAAC;YACF,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"drift.js","sourceRoot":"","sources":["../../src/tools/drift.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IACnE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IAC5E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wFAAwF,CAAC;IACpI,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iFAAiF,CAAC;CAC3H,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,MAAmB;IAC7C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACjC,IAAI,MAAM,CAAC,SAAS;YAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAC5D,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;YAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACxE,IAAI,MAAM,CAAC,OAAO;YAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAE5D,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QAErE,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,kBAAkB;iBAC1D,CAAC;SACH,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC;iBACzB,CAAC;YACF,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,8+BAA8+B;IAC3/B,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iCAAiC,EAAE;YAC/E,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iCAAiC,EAAE;YAC7E,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wFAAwF,EAAE;YAC/H,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kDAAkD,EAAE;SAC7F;QACD,QAAQ,EAAE,CAAC,aAAa,CAAC;KAC1B;IACD,OAAO,EAAE,KAAK;CACf,CAAC"}
|
package/build/tools/index.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export { listTool, list, listSchema, type ListParams } from './list.js';
|
|
|
7
7
|
export { promoteTool, promote, promoteSchema, type PromoteParams } from './promote.js';
|
|
8
8
|
export { rollbackTool, rollback, rollbackSchema, type RollbackParams } from './rollback.js';
|
|
9
9
|
export { thresholdTool, threshold, thresholdSchema, type ThresholdParams } from './threshold.js';
|
|
10
|
+
export { calibrateTool, calibrate, calibrateSchema, type CalibrateParams } from './calibrate.js';
|
|
10
11
|
export { exportOnnxTool, exportOnnx, exportOnnxSchema, type ExportOnnxParams } from './export-onnx.js';
|
|
11
12
|
export { infoTool, info, infoSchema, type InfoParams } from './info.js';
|
|
12
13
|
export { statusTool, status, statusSchema, type StatusParams } from './status.js';
|
|
@@ -49,6 +50,9 @@ export declare const allTools: readonly [{
|
|
|
49
50
|
}, {
|
|
50
51
|
readonly name: "mloop_threshold";
|
|
51
52
|
readonly module: () => Promise<typeof import("./threshold.js")>;
|
|
53
|
+
}, {
|
|
54
|
+
readonly name: "mloop_calibrate";
|
|
55
|
+
readonly module: () => Promise<typeof import("./calibrate.js")>;
|
|
52
56
|
}, {
|
|
53
57
|
readonly name: "mloop_export_onnx";
|
|
54
58
|
readonly module: () => Promise<typeof import("./export-onnx.js")>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
package/build/tools/index.js
CHANGED
|
@@ -8,6 +8,7 @@ export { listTool, list, listSchema } from './list.js';
|
|
|
8
8
|
export { promoteTool, promote, promoteSchema } from './promote.js';
|
|
9
9
|
export { rollbackTool, rollback, rollbackSchema } from './rollback.js';
|
|
10
10
|
export { thresholdTool, threshold, thresholdSchema } from './threshold.js';
|
|
11
|
+
export { calibrateTool, calibrate, calibrateSchema } from './calibrate.js';
|
|
11
12
|
export { exportOnnxTool, exportOnnx, exportOnnxSchema } from './export-onnx.js';
|
|
12
13
|
export { infoTool, info, infoSchema } from './info.js';
|
|
13
14
|
export { statusTool, status, statusSchema } from './status.js';
|
|
@@ -42,6 +43,7 @@ export const allTools = [
|
|
|
42
43
|
{ name: 'mloop_promote', module: () => import('./promote.js') },
|
|
43
44
|
{ name: 'mloop_rollback', module: () => import('./rollback.js') },
|
|
44
45
|
{ name: 'mloop_threshold', module: () => import('./threshold.js') },
|
|
46
|
+
{ name: 'mloop_calibrate', module: () => import('./calibrate.js') },
|
|
45
47
|
{ name: 'mloop_export_onnx', module: () => import('./export-onnx.js') },
|
|
46
48
|
{ name: 'mloop_info', module: () => import('./info.js') },
|
|
47
49
|
{ name: 'mloop_status', module: () => import('./status.js') },
|
package/build/tools/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
|
package/build/tools/predict.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export declare const predictSchema: z.ZodObject<{
|
|
|
6
6
|
projectPath: z.ZodString;
|
|
7
7
|
dataFile: z.ZodOptional<z.ZodString>;
|
|
8
8
|
modelName: z.ZodOptional<z.ZodString>;
|
|
9
|
+
experimentId: z.ZodOptional<z.ZodString>;
|
|
9
10
|
output: z.ZodOptional<z.ZodString>;
|
|
10
11
|
log: z.ZodOptional<z.ZodBoolean>;
|
|
11
12
|
unknownStrategy: z.ZodOptional<z.ZodEnum<{
|
|
@@ -41,6 +42,10 @@ export declare const predictTool: {
|
|
|
41
42
|
type: string;
|
|
42
43
|
description: string;
|
|
43
44
|
};
|
|
45
|
+
experimentId: {
|
|
46
|
+
type: string;
|
|
47
|
+
description: string;
|
|
48
|
+
};
|
|
44
49
|
output: {
|
|
45
50
|
type: string;
|
|
46
51
|
description: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"predict.d.ts","sourceRoot":"","sources":["../../src/tools/predict.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,aAAa
|
|
1
|
+
{"version":3,"file":"predict.d.ts","sourceRoot":"","sources":["../../src/tools/predict.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,aAAa;;;;;;;;;;;;;iBAUxB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,wBAAsB,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAuDnI;AAED,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuCvB,CAAC"}
|
package/build/tools/predict.js
CHANGED
|
@@ -9,6 +9,8 @@ export const predictSchema = z.object({
|
|
|
9
9
|
projectPath: z.string().describe('Path to MLoop project directory'),
|
|
10
10
|
dataFile: z.string().optional().describe('Prediction data file (default: datasets/predict.csv)'),
|
|
11
11
|
modelName: z.string().optional().describe('Model name'),
|
|
12
|
+
experimentId: z.string().optional()
|
|
13
|
+
.describe('Predict with this experiment (e.g. a staging candidate) instead of production — production does not move'),
|
|
12
14
|
output: z.string().optional().describe('Output file path'),
|
|
13
15
|
log: z.boolean().optional().describe('Enable prediction logging'),
|
|
14
16
|
unknownStrategy: z.enum(['auto', 'error', 'use-most-frequent', 'use-missing']).optional()
|
|
@@ -16,7 +18,7 @@ export const predictSchema = z.object({
|
|
|
16
18
|
});
|
|
17
19
|
export async function predict(params) {
|
|
18
20
|
try {
|
|
19
|
-
const { projectPath, dataFile, modelName, output, log, unknownStrategy } = params;
|
|
21
|
+
const { projectPath, dataFile, modelName, experimentId, output, log, unknownStrategy } = params;
|
|
20
22
|
// dataFile is a positional argument
|
|
21
23
|
const positional = [];
|
|
22
24
|
if (dataFile)
|
|
@@ -24,6 +26,8 @@ export async function predict(params) {
|
|
|
24
26
|
const cliParams = {};
|
|
25
27
|
if (modelName)
|
|
26
28
|
cliParams['name'] = modelName;
|
|
29
|
+
if (experimentId)
|
|
30
|
+
cliParams['experiment'] = experimentId;
|
|
27
31
|
if (output)
|
|
28
32
|
cliParams['output'] = output;
|
|
29
33
|
if (log)
|
|
@@ -73,7 +77,7 @@ export async function predict(params) {
|
|
|
73
77
|
}
|
|
74
78
|
export const predictTool = {
|
|
75
79
|
name: 'mloop_predict',
|
|
76
|
-
description: 'Run predictions using a trained model. Uses production model by default.',
|
|
80
|
+
description: 'Run predictions using a trained model. Uses production model by default; `experimentId` predicts with that experiment instead (a shadow prediction — production does not move). The JSON names the model that answered in `experimentId`.',
|
|
77
81
|
inputSchema: {
|
|
78
82
|
type: 'object',
|
|
79
83
|
properties: {
|
|
@@ -89,6 +93,10 @@ export const predictTool = {
|
|
|
89
93
|
type: 'string',
|
|
90
94
|
description: 'Model name to use for prediction',
|
|
91
95
|
},
|
|
96
|
+
experimentId: {
|
|
97
|
+
type: 'string',
|
|
98
|
+
description: 'Experiment to predict with instead of production (e.g. a staging candidate, "exp-003"). Production does not move; logged rows carry this id.',
|
|
99
|
+
},
|
|
92
100
|
output: {
|
|
93
101
|
type: 'string',
|
|
94
102
|
description: 'Output file path for predictions',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"predict.js","sourceRoot":"","sources":["../../src/tools/predict.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IACnE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;IAChG,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;IACvD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAC1D,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IACjE,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE;SACtF,QAAQ,CAAC,qEAAqE,CAAC;CACnF,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,MAAqB;IACjD,IAAI,CAAC;QACH,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"predict.js","sourceRoot":"","sources":["../../src/tools/predict.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IACnE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;IAChG,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;IACvD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAChC,QAAQ,CAAC,0GAA0G,CAAC;IACvH,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAC1D,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IACjE,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE,aAAa,CAAC,CAAC,CAAC,QAAQ,EAAE;SACtF,QAAQ,CAAC,qEAAqE,CAAC;CACnF,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,MAAqB;IACjD,IAAI,CAAC;QACH,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC;QAEhG,oCAAoC;QACpC,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,IAAI,QAAQ;YAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAExC,MAAM,SAAS,GAA4B,EAAE,CAAC;QAC9C,IAAI,SAAS;YAAE,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;QAC7C,IAAI,YAAY;YAAE,SAAS,CAAC,YAAY,CAAC,GAAG,YAAY,CAAC;QACzD,IAAI,MAAM;YAAE,SAAS,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;QACzC,IAAI,GAAG;YAAE,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;QACjC,IAAI,eAAe;YAAE,SAAS,CAAC,kBAAkB,CAAC,GAAG,eAAe,CAAC;QAErE,sGAAsG;QACtG,uGAAuG;QACvG,uGAAuG;QACvG,gFAAgF;QAChF,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,SAAS;YAAE,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;QAEzC,MAAM,IAAI,GAAG,uBAAuB,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QAEvE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE;YACtC,GAAG,EAAE,WAAW;SACjB,CAAC,CAAC;QAEH,IAAI,UAAkB,CAAC;QACvB,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,mGAAmG;YACnG,IAAI,CAAC;gBACH,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACzE,CAAC;YAAC,MAAM,CAAC;gBACP,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,oCAAoC,CAAC;YACrF,CAAC;QACH,CAAC;aAAM,CAAC;YACN,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,oCAAoC,CAAC;QACrF,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,UAAU;iBACjB,CAAC;SACH,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,CAAC;oBACR,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC;iBACzB,CAAC;YACF,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,2OAA2O;IACxP,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,WAAW,EAAE;gBACX,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iCAAiC;aAC/C;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,iEAAiE;aAC/E;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,kCAAkC;aAChD;YACD,YAAY,EAAE;gBACZ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,8IAA8I;aAC5J;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,kCAAkC;aAChD;YACD,GAAG,EAAE;gBACH,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,wCAAwC;aACtD;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE,aAAa,CAAC;gBAC3D,WAAW,EAAE,sNAAsN;aACpO;SACF;QACD,QAAQ,EAAE,CAAC,aAAa,CAAC;KAC1B;IACD,OAAO,EAAE,OAAO;CACjB,CAAC"}
|
|
@@ -7,6 +7,7 @@ export declare const thresholdSchema: z.ZodObject<{
|
|
|
7
7
|
experimentId: z.ZodOptional<z.ZodString>;
|
|
8
8
|
modelName: z.ZodOptional<z.ZodString>;
|
|
9
9
|
precision: z.ZodOptional<z.ZodNumber>;
|
|
10
|
+
precisionOf: z.ZodOptional<z.ZodString>;
|
|
10
11
|
dataFile: z.ZodOptional<z.ZodString>;
|
|
11
12
|
weight: z.ZodOptional<z.ZodString>;
|
|
12
13
|
clear: z.ZodOptional<z.ZodBoolean>;
|
|
@@ -41,6 +42,10 @@ export declare const thresholdTool: {
|
|
|
41
42
|
type: string;
|
|
42
43
|
description: string;
|
|
43
44
|
};
|
|
45
|
+
precisionOf: {
|
|
46
|
+
type: string;
|
|
47
|
+
description: string;
|
|
48
|
+
};
|
|
44
49
|
dataFile: {
|
|
45
50
|
type: string;
|
|
46
51
|
description: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"threshold.d.ts","sourceRoot":"","sources":["../../src/tools/threshold.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"threshold.d.ts","sourceRoot":"","sources":["../../src/tools/threshold.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,eAAe;;;;;;;;;iBAS1B,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D,wBAAsB,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAyBvI;AAED,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkBzB,CAAC"}
|
package/build/tools/threshold.js
CHANGED
|
@@ -10,13 +10,14 @@ export const thresholdSchema = z.object({
|
|
|
10
10
|
experimentId: z.string().optional().describe('Experiment to set the threshold of (default: the production model)'),
|
|
11
11
|
modelName: z.string().optional().describe('Model name'),
|
|
12
12
|
precision: z.number().optional().describe('Target positive precision (above 0, at most 1): the lowest threshold reaching it on dataFile is chosen'),
|
|
13
|
+
precisionOf: z.string().optional().describe('The class whose precision is targeted, by its label value (default: the positive class) — the negative class too, when a wrong "no" is the costly answer'),
|
|
13
14
|
dataFile: z.string().optional().describe('Labeled evaluation file the threshold is chosen on (required with precision)'),
|
|
14
15
|
weight: z.string().optional().describe('Column that weights the rows'),
|
|
15
16
|
clear: z.boolean().optional().describe('Remove the threshold: the model answers at 0.5 again'),
|
|
16
17
|
});
|
|
17
18
|
export async function threshold(params) {
|
|
18
19
|
try {
|
|
19
|
-
const { projectPath, experimentId, modelName, precision, dataFile, weight, clear } = params;
|
|
20
|
+
const { projectPath, experimentId, modelName, precision, precisionOf, dataFile, weight, clear } = params;
|
|
20
21
|
const args = ['threshold'];
|
|
21
22
|
if (experimentId)
|
|
22
23
|
args.push(experimentId);
|
|
@@ -24,6 +25,8 @@ export async function threshold(params) {
|
|
|
24
25
|
args.push('--name', modelName);
|
|
25
26
|
if (precision !== undefined)
|
|
26
27
|
args.push('--precision', String(precision));
|
|
28
|
+
if (precisionOf)
|
|
29
|
+
args.push('--precision-of', precisionOf);
|
|
27
30
|
if (dataFile)
|
|
28
31
|
args.push('--data', dataFile);
|
|
29
32
|
if (weight)
|
|
@@ -45,7 +48,7 @@ export async function threshold(params) {
|
|
|
45
48
|
}
|
|
46
49
|
export const thresholdTool = {
|
|
47
50
|
name: 'mloop_threshold',
|
|
48
|
-
description: 'A binary classifier\'s decision threshold, as JSON. With precision and dataFile, chooses the
|
|
51
|
+
description: 'A binary classifier\'s decision threshold, as JSON. With precision and dataFile, chooses the probability threshold at which the precision of the positive class — or of precisionOf, the negative one included (mloop >= 0.40) — reaches the target on those labeled rows, keeping the most of that class\'s recall, and writes it beside the model — predict, serve, evaluate and the gate then answer at it, and promote carries it. Without precision, shows the current one; with clear, removes it. Refused for a model that is not binary or gives no probability, or when no threshold reaches the precision (mloop >= 0.39).',
|
|
49
52
|
inputSchema: {
|
|
50
53
|
type: 'object',
|
|
51
54
|
properties: {
|
|
@@ -53,6 +56,7 @@ export const thresholdTool = {
|
|
|
53
56
|
experimentId: { type: 'string', description: 'Experiment (default: production)' },
|
|
54
57
|
modelName: { type: 'string', description: 'Model name for namespacing' },
|
|
55
58
|
precision: { type: 'number', description: 'Target positive precision, above 0 and at most 1' },
|
|
59
|
+
precisionOf: { type: 'string', description: 'Class whose precision is targeted, by label value (default: positive class)' },
|
|
56
60
|
dataFile: { type: 'string', description: 'Labeled evaluation file (required with precision)' },
|
|
57
61
|
weight: { type: 'string', description: 'Column that weights the rows' },
|
|
58
62
|
clear: { type: 'boolean', description: 'Remove the threshold' },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"threshold.js","sourceRoot":"","sources":["../../src/tools/threshold.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;IACnE,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oEAAoE,CAAC;IAClH,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;IACvD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wGAAwG,CAAC;IACnJ,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8EAA8E,CAAC;IACxH,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;IACtE,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;CAC/F,CAAC,CAAC;AAIH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAuB;IACrD,IAAI,CAAC;QACH,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"threshold.js","sourceRoot":"","sources":["../../src/tools/threshold.ts"],"names":[],"mappings":"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"}
|