using AIStudio.Chat; using AIStudio.Provider; namespace AIStudio.Tools.RAG; public interface IAugmentationProcess { /// /// How is the augmentation process called? /// public string TechnicalName { get; } /// /// How is the augmentation process called in the UI? /// public string UIName { get; } /// /// How works the augmentation process? /// public string Description { get; } /// /// Starts the augmentation process. /// /// The LLM provider. Gets used, e.g., for automatic retrieval context validation. /// The last prompt that was issued by the user. /// The chat thread. /// The retrieval contexts that were issued by the retrieval process. /// The cancellation token. /// The altered chat thread. public Task ProcessAsync(IProvider provider, IContent lastPrompt, ChatThread chatThread, IReadOnlyList retrievalContexts, CancellationToken token = default); }