Table of Contents

Namespace Qavren.Edge.Rag

Classes

DelegateRetriever

An IEdgeRetriever over a lambda, for a consumer whose corpus is not an MEVD collection - an in-memory list, an HTTP search endpoint, a hand-rolled index.

EdgeRagBuilderExtensions

Registration for the RAG recipe.

EdgeRagEventIds

960-999 is the RAG range, published from the package that logs it - Qavren.Edge.Rag does not reference Qavren.Edge.Chat.Onnx, so a constant declared there would be unreachable from the code that logs it.

EdgeRagException

A retrieval-augmented generation failure: the 7200-7299 range. Carries the retriever name, the collection name and a remediation sentence, because all three are what a caller needs and none of them survive a bare message.

ExtractiveChatClient

The no-LLM floor: answers verbatim from the highest-ranked sources with their citations attached. Needs no model, no natives and no memory - so the product still answers on a device that refused the budget or never downloaded a model, and the entire RAG path is tier-1 testable. It is an IChatClient, so UseRag() over it is the same call, the same pipeline and the same CitationAnnotations.

ExtractiveChatOptions

Tuning for the no-LLM extractive floor.

RagChatClient

Retrieve, assemble, stream, cite. Ordinary MEAI middleware.

RagChatClientBuilderExtensions

The one line that turns any IChatClient pipeline into a RAG pipeline.

RagCitations

The two property keys the pipeline talks over, the pin key, and the marker resolver.

RagOptions

Everything the RAG middleware lets a caller change.

RagPrompts

The two pure functions the whole recipe rests on, and the three default prompts.

RagSource

One retrieved chunk, on its way to a numbered slot in the assembled context block.

RetrievalRequest

What the middleware asks a retriever for.

VectorStoreRetrieverOptions<TRecord>

Everything VectorStoreRetriever<TKey, TRecord> lets a caller change.

VectorStoreRetriever<TKey, TRecord>

Adapts any MEVD collection. Nothing here is Qavren-specific: point it at Qdrant, Azure AI Search or EdgeVectorStoreCollection and it behaves identically. It chooses the hybrid lane when the collection implements IKeywordHybridSearchable<TRecord> and keywords are present, the vector lane otherwise, stamps ScoreKind to match, and always returns best-first.

Interfaces

IEdgeRetriever

The whole retrieval seam.

Enums

RetrievalQuerySource

Which part of the conversation becomes the retrieval query.

RetrievalScoreKind

Which direction a retriever's score runs.