< Summary

Information
Class: Intentum.AspNetCore.HealthChecks.EmbeddingProviderHealthCheck
Assembly: Intentum.AspNetCore
File(s): /home/runner/work/Intentum/Intentum/src/Intentum.AspNetCore/HealthChecks/EmbeddingProviderHealthCheck.cs
Line coverage
100%
Covered lines: 16
Uncovered lines: 0
Coverable lines: 16
Total lines: 36
Line coverage: 100%
Branch coverage
50%
Covered branches: 1
Total branches: 2
Branch coverage: 50%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Cyclomatic complexity NPath complexity Sequence coverage
.ctor(...)50%22100%
CheckHealthAsync()100%11100%

File(s)

/home/runner/work/Intentum/Intentum/src/Intentum.AspNetCore/HealthChecks/EmbeddingProviderHealthCheck.cs

#LineLine coverage
 1using Intentum.AI.Embeddings;
 2using Microsoft.Extensions.Diagnostics.HealthChecks;
 3
 4namespace Intentum.AspNetCore.HealthChecks;
 5
 6/// <summary>
 7/// Health check for embedding providers.
 8/// </summary>
 9public sealed class EmbeddingProviderHealthCheck : IHealthCheck
 10{
 11    private readonly IIntentEmbeddingProvider _embeddingProvider;
 12
 213    public EmbeddingProviderHealthCheck(IIntentEmbeddingProvider embeddingProvider)
 214    {
 215        _embeddingProvider = embeddingProvider ?? throw new ArgumentNullException(nameof(embeddingProvider));
 216    }
 17
 18    public async Task<HealthCheckResult> CheckHealthAsync(
 19        HealthCheckContext context,
 20        CancellationToken cancellationToken = default)
 221    {
 22        try
 223        {
 224            var testKey = "health:check";
 225            var embedding = await _embeddingProvider.EmbedAsync(testKey, cancellationToken);
 126            return HealthCheckResult.Healthy(
 127                $"Embedding provider is healthy. Test embedding score: {embedding.Score:F2}");
 28        }
 129        catch (Exception ex)
 130        {
 131            return HealthCheckResult.Unhealthy(
 132                "Embedding provider health check failed",
 133                ex);
 34        }
 235    }
 36}