Class RagPipeline
RAG (Retrieval Augmented Generation) orchestrator. Coordinates the full pipeline: load ??split ??embed ??store (indexing) and query ??search ??context build ??LLM call (querying).
public class RagPipeline : IRagPipeline
- Inheritance
-
RagPipeline
- Implements
- Inherited Members
- Extension Methods
Constructors
RagPipeline(IEmbeddingProvider, IVectorStore, ITextSplitter, IContextBuilder, IRetrievalStrategy?, IReranker?, RagPipelineOptions?)
Creates a new RAG pipeline with the specified components including retrieval strategy and reranker.
public RagPipeline(IEmbeddingProvider embeddingProvider, IVectorStore vectorStore, ITextSplitter textSplitter, IContextBuilder contextBuilder, IRetrievalStrategy? retrievalStrategy, IReranker? reranker, RagPipelineOptions? options = null)
Parameters
embeddingProviderIEmbeddingProvidervectorStoreIVectorStoretextSplitterITextSplittercontextBuilderIContextBuilderretrievalStrategyIRetrievalStrategyrerankerIRerankeroptionsRagPipelineOptions
RagPipeline(IEmbeddingProvider, IVectorStore, ITextSplitter, IContextBuilder, RagPipelineOptions?)
Creates a new RAG pipeline with the specified components.
public RagPipeline(IEmbeddingProvider embeddingProvider, IVectorStore vectorStore, ITextSplitter textSplitter, IContextBuilder contextBuilder, RagPipelineOptions? options = null)
Parameters
embeddingProviderIEmbeddingProvidervectorStoreIVectorStoretextSplitterITextSplittercontextBuilderIContextBuilderoptionsRagPipelineOptions
Properties
Options
Pipeline configuration options.
public RagPipelineOptions Options { get; set; }
Property Value
Methods
DeleteDocumentAsync(string, CancellationToken)
Deletes a document and all its chunks from the vector store.
public Task DeleteDocumentAsync(string documentId, CancellationToken cancellationToken = default)
Parameters
documentIdstringcancellationTokenCancellationToken
Returns
IndexAsync(IDocumentLoader, string, CancellationToken)
Indexes documents from a loader: load ??split ??embed ??store.
public Task IndexAsync(IDocumentLoader loader, string source, CancellationToken cancellationToken = default)
Parameters
loaderIDocumentLoadersourcestringcancellationTokenCancellationToken
Returns
IndexDocumentAsync(RagDocument, ITextSplitter?, CancellationToken)
Indexes a single document with an optional per-source text splitter.
public Task IndexDocumentAsync(RagDocument document, ITextSplitter? textSplitter, CancellationToken cancellationToken = default)
Parameters
documentRagDocumenttextSplitterITextSplittercancellationTokenCancellationToken
Returns
IndexDocumentAsync(RagDocument, CancellationToken)
Indexes a single document: split ??embed ??store.
public Task IndexDocumentAsync(RagDocument document, CancellationToken cancellationToken = default)
Parameters
documentRagDocumentcancellationTokenCancellationToken
Returns
IndexDocumentsAsync(IEnumerable<RagDocument>, ITextSplitter?, CancellationToken)
Indexes pre-loaded documents with an optional per-source text splitter.
public Task IndexDocumentsAsync(IEnumerable<RagDocument> documents, ITextSplitter? textSplitter, CancellationToken cancellationToken = default)
Parameters
documentsIEnumerable<RagDocument>textSplitterITextSplittercancellationTokenCancellationToken
Returns
IndexDocumentsAsync(IEnumerable<RagDocument>, CancellationToken)
Indexes pre-loaded documents: split ??embed ??store.
public Task IndexDocumentsAsync(IEnumerable<RagDocument> documents, CancellationToken cancellationToken = default)
Parameters
documentsIEnumerable<RagDocument>cancellationTokenCancellationToken
Returns
ProcessAsync(string, RagQueryOptions?, CancellationToken)
Implements IRagPipeline with per-request query overrides.
public Task<RagProcessedQuery> ProcessAsync(string query, RagQueryOptions? options, CancellationToken cancellationToken = default)
Parameters
querystringoptionsRagQueryOptionscancellationTokenCancellationToken
Returns
ProcessAsync(string, CancellationToken)
Implements IRagPipeline: embed query ??search ??build context ??return request message content.
public Task<RagProcessedQuery> ProcessAsync(string query, CancellationToken cancellationToken = default)
Parameters
querystringcancellationTokenCancellationToken
Returns
QueryAndGenerateAsync(IAIService, string, RagQueryOptions?, VectorFilter?, CancellationToken)
Performs a full RAG query with per-request overrides and calls the LLM.
public Task<string> QueryAndGenerateAsync(IAIService aiService, string query, RagQueryOptions? queryOptions, VectorFilter? filter = null, CancellationToken cancellationToken = default)
Parameters
aiServiceIAIServicequerystringqueryOptionsRagQueryOptionsfilterVectorFiltercancellationTokenCancellationToken
Returns
QueryAndGenerateAsync(IAIService, string, int?, VectorFilter?, CancellationToken)
Performs a full RAG query and calls the LLM: embed query ??search ??context build ??LLM call.
public Task<string> QueryAndGenerateAsync(IAIService aiService, string query, int? topK = null, VectorFilter? filter = null, CancellationToken cancellationToken = default)
Parameters
aiServiceIAIServicequerystringtopKint?filterVectorFiltercancellationTokenCancellationToken
Returns
QueryAsync(string, RagQueryOptions?, VectorFilter?, CancellationToken)
Performs a RAG query with per-request query overrides: embed query ??search ??build context.
public Task<RagQueryResult> QueryAsync(string query, RagQueryOptions? queryOptions, VectorFilter? filter = null, CancellationToken cancellationToken = default)
Parameters
querystringqueryOptionsRagQueryOptionsfilterVectorFiltercancellationTokenCancellationToken
Returns
QueryAsync(string, int?, VectorFilter?, CancellationToken)
Performs a RAG query: embed query ??search ??build context ??return context string. Use the returned context to call an LLM (e.g., via AIService.GetCompletionAsync).
public Task<RagQueryResult> QueryAsync(string query, int? topK = null, VectorFilter? filter = null, CancellationToken cancellationToken = default)
Parameters
querystringtopKint?filterVectorFiltercancellationTokenCancellationToken
Returns
SetRetrievalStrategy(IRetrievalStrategy?)
Updates the retrieval strategy at runtime (e.g., switching between vector-only and hybrid search).
public void SetRetrievalStrategy(IRetrievalStrategy? retrievalStrategy)
Parameters
retrievalStrategyIRetrievalStrategy