Introduce dual-script ONNX NER routing (English/Tamil/mixed), Tamil console samples and integration tests, model download scripts, and a resizable WPF MVVM harness with click-to-load prompts, batch validation, and runtime-adjustable detection panels.
47 lines
1.5 KiB
C#
47 lines
1.5 KiB
C#
using Microsoft.Extensions.Options;
|
|
using PiiRedaction.Core.Configuration;
|
|
using PiiRedaction.Infrastructure.Onnx;
|
|
using PiiRedaction.TestHarness.Wpf.Models;
|
|
|
|
namespace PiiRedaction.TestHarness.Wpf.Services;
|
|
|
|
public sealed class ModelStatusService : IModelStatusService
|
|
{
|
|
private readonly EnglishOnnxNerRunner _englishRunner;
|
|
private readonly TamilOnnxNerRunner _tamilRunner;
|
|
private readonly PiiRedactionOptions _options;
|
|
|
|
public ModelStatusService(
|
|
EnglishOnnxNerRunner englishRunner,
|
|
TamilOnnxNerRunner tamilRunner,
|
|
IOptions<PiiRedactionOptions> options)
|
|
{
|
|
_englishRunner = englishRunner;
|
|
_tamilRunner = tamilRunner;
|
|
_options = options.Value;
|
|
}
|
|
|
|
public ModelStatusSnapshot GetStatus()
|
|
{
|
|
var englishPath = OnnxAssetPathResolver.ResolveModelPath(
|
|
_options.EnglishOnnxModelPath,
|
|
_options.OnnxModelPath);
|
|
|
|
var tamilPath = OnnxAssetPathResolver.ResolveModelPath(_options.TamilOnnxModelPath);
|
|
|
|
var englishAvailability = _englishRunner.IsModelAvailable
|
|
? ModelAvailability.Ready
|
|
: ModelAvailability.Missing;
|
|
|
|
var tamilAvailability = !_options.EnableTamilNer
|
|
? ModelAvailability.Disabled
|
|
: _tamilRunner.IsModelAvailable
|
|
? ModelAvailability.Ready
|
|
: ModelAvailability.Missing;
|
|
|
|
return new ModelStatusSnapshot(
|
|
new NerModelStatus("English", englishAvailability, englishPath),
|
|
new NerModelStatus("Tamil", tamilAvailability, tamilPath));
|
|
}
|
|
}
|