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));
|
||
|
|
}
|
||
|
|
}
|