Table of Contents

Class RagPipeline

Namespace
Mythosia.AI.Rag
Assembly
Mythosia.AI.Rag.dll

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

embeddingProvider IEmbeddingProvider
vectorStore IVectorStore
textSplitter ITextSplitter
contextBuilder IContextBuilder
retrievalStrategy IRetrievalStrategy
reranker IReranker
options RagPipelineOptions

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

embeddingProvider IEmbeddingProvider
vectorStore IVectorStore
textSplitter ITextSplitter
contextBuilder IContextBuilder
options RagPipelineOptions

Properties

Options

Pipeline configuration options.

public RagPipelineOptions Options { get; set; }

Property Value

RagPipelineOptions

Methods

DeleteDocumentAsync(string, CancellationToken)

Deletes a document and all its chunks from the vector store.

public Task DeleteDocumentAsync(string documentId, CancellationToken cancellationToken = default)

Parameters

documentId string
cancellationToken CancellationToken

Returns

Task

IndexAsync(IDocumentLoader, string, CancellationToken)

Indexes documents from a loader: load ??split ??embed ??store.

public Task IndexAsync(IDocumentLoader loader, string source, CancellationToken cancellationToken = default)

Parameters

loader IDocumentLoader
source string
cancellationToken CancellationToken

Returns

Task

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

document RagDocument
textSplitter ITextSplitter
cancellationToken CancellationToken

Returns

Task

IndexDocumentAsync(RagDocument, CancellationToken)

Indexes a single document: split ??embed ??store.

public Task IndexDocumentAsync(RagDocument document, CancellationToken cancellationToken = default)

Parameters

document RagDocument
cancellationToken CancellationToken

Returns

Task

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

documents IEnumerable<RagDocument>
textSplitter ITextSplitter
cancellationToken CancellationToken

Returns

Task

IndexDocumentsAsync(IEnumerable<RagDocument>, CancellationToken)

Indexes pre-loaded documents: split ??embed ??store.

public Task IndexDocumentsAsync(IEnumerable<RagDocument> documents, CancellationToken cancellationToken = default)

Parameters

documents IEnumerable<RagDocument>
cancellationToken CancellationToken

Returns

Task

ProcessAsync(string, RagQueryOptions?, CancellationToken)

Implements IRagPipeline with per-request query overrides.

public Task<RagProcessedQuery> ProcessAsync(string query, RagQueryOptions? options, CancellationToken cancellationToken = default)

Parameters

query string
options RagQueryOptions
cancellationToken CancellationToken

Returns

Task<RagProcessedQuery>

ProcessAsync(string, CancellationToken)

Implements IRagPipeline: embed query ??search ??build context ??return request message content.

public Task<RagProcessedQuery> ProcessAsync(string query, CancellationToken cancellationToken = default)

Parameters

query string
cancellationToken CancellationToken

Returns

Task<RagProcessedQuery>

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

aiService IAIService
query string
queryOptions RagQueryOptions
filter VectorFilter
cancellationToken CancellationToken

Returns

Task<string>

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

aiService IAIService
query string
topK int?
filter VectorFilter
cancellationToken CancellationToken

Returns

Task<string>

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

query string
queryOptions RagQueryOptions
filter VectorFilter
cancellationToken CancellationToken

Returns

Task<RagQueryResult>

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

query string
topK int?
filter VectorFilter
cancellationToken CancellationToken

Returns

Task<RagQueryResult>

SetRetrievalStrategy(IRetrievalStrategy?)

Updates the retrieval strategy at runtime (e.g., switching between vector-only and hybrid search).

public void SetRetrievalStrategy(IRetrievalStrategy? retrievalStrategy)

Parameters

retrievalStrategy IRetrievalStrategy