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 model which answers. Its context window decides how much room the retrieval contexts get. /// The last user prompt that was issued by the user. /// The chat thread. /// The retrieval contexts that were issued by the retrieval process, per data source, each in the order of their rank. /// The cancellation token. /// The altered chat thread, together with the retrieval contexts handed to the AI. public Task ProcessAsync(IProvider provider, Model chatModel, IContent lastUserPrompt, ChatThread chatThread, IReadOnlyList> retrievalContextsByDataSource, CancellationToken token = default); }