namespace AIStudio.Assistants.BatchProcessing; /// /// The result of processing one file within a batch run. /// public sealed class BatchProcessingFileResult { /// /// The absolute path of the processed file. /// public required string FilePath { get; init; } /// /// The file name of the processed file. /// public required string FileName { get; init; } /// /// The path of the file relative to the input folder. For files directly /// inside the input folder, this is the file name. /// /// /// This is the identity of the document within a batch run: it is written /// to the log and is used to recognize the document when a previous run is /// continued. The file name alone would not be sufficient, because two /// subfolders may contain a document of the same name. /// public required string RelativePath { get; init; } /// /// The processing state of the file. /// public BatchProcessingFileStatus Status { get; set; } = BatchProcessingFileStatus.QUEUED; /// /// An optional message, e.g., the error message when the processing failed. /// public string Message { get; set; } = string.Empty; /// /// The AI answer for this file. /// public string ResultText { get; set; } = string.Empty; /// /// The model which produced the answer for this file. /// /// /// We store the model per file instead of reading the currently selected /// model when writing the results table. Otherwise, changing the model /// between two batch runs would relabel the rows of the previous run. /// public string ModelName { get; set; } = string.Empty; /// /// The time when the processing of this file finished. /// public DateTimeOffset ProcessedAt { get; set; } }