Table of Contents

Class RagDiagnosticSession

Namespace
Mythosia.AI.Rag.Diagnostics
Assembly
Mythosia.AI.Rag.dll

Fluent diagnostic session for debugging RAG search quality issues. Access via extension method: ragStore.Diagnose() or ragPipeline.Diagnose().

public class RagDiagnosticSession
Inheritance
RagDiagnosticSession
Inherited Members

Examples

// One-liner: "Why didn't my query find this text?"
var report = await ragStore.Diagnose()
    .WhyMissingAsync("์ตœ๊ทผ ์—ฐ๋ด‰์ด ์–ผ๋งˆ?", "$1");
Console.WriteLine(report.ToReport());

// Health check on the entire index
var health = await ragStore.Diagnose().HealthCheckAsync();
Console.WriteLine(health.ToReport());

// Compare splitter configurations
var comparison = ragStore.Diagnose().CompareSplitters(document, "$1",
    new RecursiveTextSplitter(500, 100),
    new RecursiveTextSplitter(1000, 200));
Console.WriteLine(comparison.ToReport());

Methods

CompareSplitters(RagDocument, string, params ITextSplitter[])

Compares how different splitter configurations handle the same document. Shows where the target text ends up in each configuration and the resulting keyword density.

public SplitterComparison CompareSplitters(RagDocument document, string targetText, params ITextSplitter[] splitters)

Parameters

document RagDocument

The document to split.

targetText string

Text to track across splitter outputs (e.g., "6,300๋งŒ์›").

splitters ITextSplitter[]

Two or more splitter configurations to compare.

Returns

SplitterComparison

HealthCheckAsync(CancellationToken)

Runs a health check on the stored index, detecting common quality issues: chunk size variance, oversized chunks, very small chunks, and potential duplicates.

public Task<HealthCheckResult> HealthCheckAsync(CancellationToken cancellationToken = default)

Parameters

cancellationToken CancellationToken

Returns

Task<HealthCheckResult>

WhyMissingAsync(string, string, CancellationToken)

Analyzes exactly WHY a specific text was not found (or ranked low) for a given query. Traces through every pipeline stage and reports the root cause with actionable suggestions.

public Task<MissingAnalysis> WhyMissingAsync(string query, string expectedText, CancellationToken cancellationToken = default)

Parameters

query string

The query that produced incorrect/incomplete results.

expectedText string

The text you expected to find in results (e.g., "6,300๋งŒ์›").

cancellationToken CancellationToken

Cancellation token.

Returns

Task<MissingAnalysis>