TrustedFilter.JsonMl.ModelKit
0.1.0
dotnet add package TrustedFilter.JsonMl.ModelKit --version 0.1.0
NuGet\Install-Package TrustedFilter.JsonMl.ModelKit -Version 0.1.0
<PackageReference Include="TrustedFilter.JsonMl.ModelKit" Version="0.1.0" />
<PackageVersion Include="TrustedFilter.JsonMl.ModelKit" Version="0.1.0" />
<PackageReference Include="TrustedFilter.JsonMl.ModelKit" />
paket add TrustedFilter.JsonMl.ModelKit --version 0.1.0
#r "nuget: TrustedFilter.JsonMl.ModelKit, 0.1.0"
#:package TrustedFilter.JsonMl.ModelKit@0.1.0
#addin nuget:?package=TrustedFilter.JsonMl.ModelKit&version=0.1.0
#tool nuget:?package=TrustedFilter.JsonMl.ModelKit&version=0.1.0
TrustedFilter.JsonMl.ModelKit
Build an ML model for the TrustedFilter json-ml-relay container in one call. The
library trains a calibrated text classifier from your own valid/invalid message
samples, verifies it satisfies the relay's model contract, and exports the ML.NET
.zip the container loads at startup.
One command
using TrustedFilter.JsonMl.ModelKit;
var result = MlModelBuilder.BuildAndExport(
validDirectory: "samples/valid", // files of messages the relay should PASS, one per line
invalidDirectory: "samples/invalid", // files of messages the relay should BLOCK, one per line
new ModelBuildOptions { OutputPath = "models/custom-model.zip" });
Console.WriteLine($"Model: {result.ModelPath}");
Console.WriteLine($"AUC {result.Auc:F4}, suggested Relay:Ml:Threshold {result.SuggestedThreshold:F2}");
An overload accepts IEnumerable<string> collections instead of directories.
Preparing samples
- One message per line, formatted exactly as it will arrive on the wire (compact single-line JSON — the relay scores raw bytes, so pretty-printed training data produces a model that fails on real traffic).
- Roughly one invalid sample per valid one. Good negatives decide the model's sharpness: mix near-misses of your format (missing/typo'd keys), other valid JSON envelopes, and garbage.
Reading the result
MinPositiveProbability and MaxNegativeProbability bound the usable threshold: any
Relay:Ml:Threshold between them separates the classes cleanly on the held-out data,
and SuggestedThreshold is their midpoint. A narrow or inverted gap means the classes
overlap — improve the samples rather than shipping the model.
Deploying the model
Use the trustedfilter json-ml relay g
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Microsoft.ML (>= 5.0.0)
-
net8.0
- Microsoft.ML (>= 5.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0 | 112 | 8/20/2026 |