2025-02-18 11:24:43 +01:00
using AIStudio.Chat ;
using AIStudio.Provider ;
namespace AIStudio.Tools.RAG ;
public interface IAugmentationProcess
{
/// <summary>
/// How is the augmentation process called?
/// </summary>
public string TechnicalName { get ; }
/// <summary>
/// How is the augmentation process called in the UI?
/// </summary>
public string UIName { get ; }
/// <summary>
/// How works the augmentation process?
/// </summary>
public string Description { get ; }
/// <summary>
/// Starts the augmentation process.
/// </summary>
/// <param name="provider">The LLM provider. Gets used, e.g., for automatic retrieval context validation.</param>
2026-11-05 19:27:08 +01:00
/// <param name="chatModel">The model which answers. Its context window decides how much room the retrieval contexts get.</param>
2025-09-25 19:47:18 +02:00
/// <param name="lastUserPrompt">The last user prompt that was issued by the user.</param>
2025-02-18 11:24:43 +01:00
/// <param name="chatThread">The chat thread.</param>
2026-11-05 19:27:08 +01:00
/// <param name="retrievalContextsByDataSource">The retrieval contexts that were issued by the retrieval process, per data source, each in the order of their rank.</param>
2025-02-18 11:24:43 +01:00
/// <param name="token">The cancellation token.</param>
2026-10-26 10:00:01 +01:00
/// <returns>The altered chat thread, together with the retrieval contexts handed to the AI.</returns>
2026-11-05 19:27:08 +01:00
public Task < AugmentationResult > ProcessAsync ( IProvider provider , Model chatModel , IContent lastUserPrompt , ChatThread chatThread , IReadOnlyList < IReadOnlyList < IRetrievalContext >> retrievalContextsByDataSource , CancellationToken token = default );
2025-02-18 11:24:43 +01:00
}