Files
llm-pii-poc/src/PiiRedaction.TestHarness.Wpf/Services/ModelStatusService.cs

47 lines
1.5 KiB
C#
Raw Normal View History

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