/
afanasevn
/
PdfEncoder
Обзор
Документация
Войти
/
afanasevn
/
PdfEncoder
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/PdfEncoder.Application/Abstractions/IDocumentContextBuilder.cs
55 строк
2 KB
IBS\NAfanasev
DocumentContext local functional
01 июл 2026, 15:30
01 июл 2026, 15:30
b4038c9
Код
Авторство
О чём код?
using PdfEncoder.Domain.Enums; using PdfEncoder.Domain.Models; namespace PdfEncoder.Application.Abstractions; /// <summary> /// Сборка <see cref="DocumentContext"/> из результатов локального extraction. /// </summary> public interface IDocumentContextBuilder { /// <summary> /// Объединяет результаты extraction в <see cref="DocumentContext"/> с обрезкой для LLM. /// </summary> /// <param name="request">Входные данные сборки.</param> /// <param name="ct">Токен отмены.</param> DocumentContext Build( DocumentContextBuildRequest request, CancellationToken ct); } /// <summary> /// Запрос на сборку DocumentContext. /// </summary> public sealed record DocumentContextBuildRequest { /// <summary> /// Идентификатор документа. /// </summary> public Guid DocumentId { get; init; } /// <summary> /// SHA256 hex-хеш содержимого PDF. /// </summary> public string ContentHash { get; init; } = string.Empty; /// <summary> /// Технический тип PDF после классификации. /// </summary> public PdfDocumentKind PdfKind { get; init; } /// <summary> /// Метаданные исходного файла. /// </summary> public DocumentMetadata Metadata { get; init; } = new(); /// <summary> /// Извлечённые страницы до обрезки по лимитам LLM. /// </summary> public IReadOnlyList<PageContext> Pages { get; init; } = []; /// <summary> /// Полное число страниц в исходном PDF (до обрезки). /// </summary> public int TotalPagesInDocument { get; init; } }