using AIStudio.Chat; using AIStudio.Provider; namespace AIStudio.Tools.RAG; public interface IRagProcess { /// /// How is the RAG process called? /// public string TechnicalName { get; } /// /// How is the RAG process called in the UI? /// public string UIName { get; } /// /// How works the RAG process? /// public string Description { get; } /// /// Starts the RAG process. /// /// The LLM provider. Used to check whether the data sources are allowed to be used by this LLM. /// The last prompt that was issued by the user. /// The chat thread. /// The cancellation token. /// The altered chat thread. public Task ProcessAsync(IProvider provider, IContent lastPrompt, ChatThread chatThread, CancellationToken token = default); }