using AIStudio.Chat;
using AIStudio.Provider;
namespace AIStudio.Tools.RAG;
public interface IDataSourceSelectionProcess
{
///
/// 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 data source selection process.
///
/// The LLM provider. Used as default for data selection agents.
/// The last prompt that was issued by the user.
/// The chat thread.
/// The allowed data sources yielded by the data source service.
/// The cancellation token.
///
public Task SelectDataSourcesAsync(IProvider provider, IContent lastPrompt, ChatThread chatThread, AllowedSelectedDataSources dataSources, CancellationToken token = default);
}