| File: IEvaluationResultStore.cs | Web Access |
| Project: src\src\Libraries\Microsoft.Extensions.AI.Evaluation.Reporting\CSharp\Microsoft.Extensions.AI.Evaluation.Reporting.csproj (Microsoft.Extensions.AI.Evaluation.Reporting) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; namespace Microsoft.Extensions.AI.Evaluation.Reporting; /// <summary> /// Represents a store for <see cref="ScenarioRunResult"/>s. /// </summary> public interface IEvaluationResultStore { /// <summary> /// Returns <see cref="ScenarioRunResult"/>s for <see cref="ScenarioRun"/>s filtered by the specified /// <paramref name="executionName"/>, <paramref name="scenarioName"/>, and <paramref name="iterationName"/> from /// the store. /// </summary> /// <remarks> /// Returns all <see cref="ScenarioRunResult"/>s in the store if <paramref name="executionName"/>, /// <paramref name="scenarioName"/>, and <paramref name="iterationName"/> are all omitted. /// </remarks> /// <param name="executionName"> /// The <see cref="ScenarioRun.ExecutionName"/> by which the <see cref="ScenarioRunResult"/>s should be filtered. /// If omitted, all <see cref="ScenarioRun.ExecutionName"/>s are considered. /// </param> /// <param name="scenarioName"> /// The <see cref="ScenarioRun.ScenarioName"/> by which the <see cref="ScenarioRunResult"/>s should be filtered. /// If omitted, all <see cref="ScenarioRun.ScenarioName"/>s that are in scope based on the specified /// <paramref name="executionName"/> filter are considered. /// </param> /// <param name="iterationName"> /// The <see cref="ScenarioRun.IterationName"/> by which the <see cref="ScenarioRunResult"/>s should be filtered. /// If omitted, all <see cref="ScenarioRun.IterationName"/>s that are in scope based on the specified /// <paramref name="executionName"/>, and <paramref name="scenarioName"/> filters are considered. /// </param> /// <param name="cancellationToken">A <see cref="CancellationToken"/> that can cancel the operation.</param> /// <returns>The matching <see cref="ScenarioRunResult"/>s.</returns> IAsyncEnumerable<ScenarioRunResult> ReadResultsAsync( string? executionName = null, string? scenarioName = null, string? iterationName = null, CancellationToken cancellationToken = default); /// <summary> /// Writes the supplied <paramref name="results"/>s to the store. /// </summary> /// <param name="results">The <see cref="ScenarioRunResult"/>s to be written.</param> /// <param name="cancellationToken">A <see cref="CancellationToken"/> that can cancel the operation.</param> /// <returns>A <see cref="ValueTask"/> that represents the asynchronous operation.</returns> ValueTask WriteResultsAsync(IEnumerable<ScenarioRunResult> results, CancellationToken cancellationToken = default); /// <summary> /// Deletes <see cref="ScenarioRunResult"/>s for <see cref="ScenarioRun"/>s filtered by the specified /// <paramref name="executionName"/>, <paramref name="scenarioName"/>, and <paramref name="iterationName"/> from /// the store. /// </summary> /// <remarks> /// Deletes all <see cref="ScenarioRunResult"/>s in the store if <paramref name="executionName"/>, /// <paramref name="scenarioName"/>, and <paramref name="iterationName"/> are all omitted. /// </remarks> /// <param name="executionName"> /// The <see cref="ScenarioRun.ExecutionName"/> by which the <see cref="ScenarioRunResult"/>s should be filtered. /// If omitted, all <see cref="ScenarioRun.ExecutionName"/>s are considered. /// </param> /// <param name="scenarioName"> /// The <see cref="ScenarioRun.ScenarioName"/> by which the <see cref="ScenarioRunResult"/>s should be filtered. /// If omitted, all <see cref="ScenarioRun.ScenarioName"/>s that are in scope based on the specified /// <paramref name="executionName"/> filter are considered. /// </param> /// <param name="iterationName"> /// The <see cref="ScenarioRun.IterationName"/> by which the <see cref="ScenarioRunResult"/>s should be filtered. /// If omitted, all <see cref="ScenarioRun.IterationName"/>s that are in scope based on the specified /// <paramref name="executionName"/>, and <paramref name="scenarioName"/> filters are considered. /// </param> /// <param name="cancellationToken">A <see cref="CancellationToken"/> that can cancel the operation.</param> /// <returns>A <see cref="ValueTask"/> that represents the asynchronous operation.</returns> ValueTask DeleteResultsAsync( string? executionName = null, string? scenarioName = null, string? iterationName = null, CancellationToken cancellationToken = default); /// <summary> /// Gets the <see cref="ScenarioRun.ExecutionName"/>s of the most recent <paramref name="count"/> executions from /// the store (ordered from most recent to least recent). /// </summary> /// <param name="count">The number of <see cref="ScenarioRun.ExecutionName"/>s to retrieve.</param> /// <param name="cancellationToken">A <see cref="CancellationToken"/> that can cancel the operation.</param> /// <returns> /// The <see cref="ScenarioRun.ExecutionName"/>s of the most recent <paramref name="count"/> executions from the /// store (ordered from most recent to least recent). /// </returns> IAsyncEnumerable<string> GetLatestExecutionNamesAsync( int? count = null, CancellationToken cancellationToken = default); /// <summary> /// Gets the <see cref="ScenarioRun.ScenarioName"/>s present in the execution with the specified /// <paramref name="executionName"/>. /// </summary> /// <param name="executionName">The <see cref="ScenarioRun.ExecutionName"/>.</param> /// <param name="cancellationToken">A <see cref="CancellationToken"/> that can cancel the operation.</param> /// <returns> /// The <see cref="ScenarioRun.ScenarioName"/>s present in the execution with the specified /// <paramref name="executionName"/>. /// </returns> IAsyncEnumerable<string> GetScenarioNamesAsync( string executionName, CancellationToken cancellationToken = default); /// <summary> /// Gets the <see cref="ScenarioRun.IterationName"/>s present in the scenario with the specified /// <paramref name="scenarioName"/> under the execution with the specified <paramref name="executionName"/>. /// </summary> /// <param name="executionName">The <see cref="ScenarioRun.ExecutionName"/>.</param> /// <param name="scenarioName">The <see cref="ScenarioRun.ScenarioName"/>.</param> /// <param name="cancellationToken">A <see cref="CancellationToken"/> that can cancel the operation.</param> /// <returns> /// The <see cref="ScenarioRun.IterationName"/>s present in the scenario with the specified /// <paramref name="scenarioName"/> under the execution with the specified <paramref name="executionName"/>. /// </returns> IAsyncEnumerable<string> GetIterationNamesAsync( string executionName, string scenarioName, CancellationToken cancellationToken = default); }