/
afanasevn
/
PdfEncoder
Обзор
Документация
Войти
/
afanasevn
/
PdfEncoder
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/PdfEncoder.Application/Abstractions/IParseResultValidator.cs
63 строки
2 KB
IBS\NAfanasev
Parse results functional update
07 июл 2026, 00:06
07 июл 2026, 00:06
8e97443
Код
Авторство
О чём код?
using PdfEncoder.Application.Models; using PdfEncoder.Domain.Models; namespace PdfEncoder.Application.Abstractions; /// <summary> /// Валидация LLM-результата и расчёт confidence. /// </summary> public interface IParseResultValidator { /// <summary> /// Преобразует extraction + classify в <see cref="GenericParseResult"/>. /// </summary> /// <param name="request">Входные данные валидации.</param> /// <param name="ct">Токен отмены.</param> GenericParseResult Validate(ParseResultValidationRequest request, CancellationToken ct); } /// <summary> /// Запрос на валидацию и сборку финального результата. /// </summary> public sealed record ParseResultValidationRequest { /// <summary> /// Локальный контекст документа. /// </summary> public DocumentContext Context { get; init; } = null!; /// <summary> /// Результат LLM extract. /// </summary> public StructuredExtractionResult Extraction { get; init; } = null!; /// <summary> /// Определённый тип документа. /// </summary> public string DetectedDocumentType { get; init; } = "unknown"; /// <summary> /// Confidence LLM classify (0 при пропуске classify). /// </summary> public double ClassifyConfidence { get; init; } /// <summary> /// Шаги pipeline до validate. /// </summary> public IReadOnlyList<ProcessingStep> Steps { get; init; } = []; /// <summary> /// Предупреждения pipeline. /// </summary> public IReadOnlyList<string> Warnings { get; init; } = []; /// <summary> /// Сводка LLM usage. /// </summary> public LlmUsageSummary? LlmUsage { get; init; } /// <summary> /// Краткое описание содержимого при unknown. /// </summary> public DocumentContentHint? ContentHint { get; init; } }