Table of Contents

Method QueryPartitionsAsync

Namespace
LMKit.Retrieval
Assembly
LM-Kit.NET.dll

QueryPartitionsAsync(string, IEnumerable<PartitionSimilarity>, IConversation, CancellationToken)

Asynchronously generates a text response by querying specified partitions within a conversation context.

public Task<TextGenerationResult> QueryPartitionsAsync(string question, IEnumerable<PartitionSimilarity> partitionSimilarities, IConversation chat, CancellationToken cancellationToken = default)

Parameters

question string

The question text to ask.

partitionSimilarities IEnumerable<PartitionSimilarity>

A collection of PartitionSimilarity instances providing context.

chat IConversation

The IConversation representing the chat context.

cancellationToken CancellationToken

A token to cancel the operation.

Returns

Task<TextGenerationResult>

A task that resolves to a TextGenerationResult containing the generated response.

Examples

LM embeddingModel = LM.LoadFromModelID("embeddinggemma-300m");
RagEngine ragEngine = new RagEngine(embeddingModel);

LM chatModel = LM.LoadFromModelID("gemma3:4b");
IConversation chat = new SingleTurnConversation(chatModel);

// Find similar partitions first
var partitions = await ragEngine.FindMatchingPartitionsAsync("What is RAG?", topK: 3);

// Generate a response using the partitions as context
TextGenerationResult result = await ragEngine.QueryPartitionsAsync("What is RAG?", partitions, chat);
Console.WriteLine(result.Text);

Remarks

This method builds a RAG prompt from the provided partitions and submits it to the conversation. The default prompt template (LMKit.Retrieval.RagPromptBuilder.DefaultPromptTemplate) is used.

QueryPartitionsAsync(string, string, IEnumerable<PartitionSimilarity>, IConversation, CancellationToken)

Asynchronously generates a text response by querying specified partitions within a conversation context, using a custom prompt template.

public Task<TextGenerationResult> QueryPartitionsAsync(string question, string promptTemplate, IEnumerable<PartitionSimilarity> partitionSimilarities, IConversation chat, CancellationToken cancellationToken = default)

Parameters

question string

The question text to ask.

promptTemplate string

The prompt template containing @context and @question placeholders.

partitionSimilarities IEnumerable<PartitionSimilarity>

A collection of PartitionSimilarity instances providing context.

chat IConversation

The IConversation representing the chat context.

cancellationToken CancellationToken

A token to cancel the operation.

Returns

Task<TextGenerationResult>

A task that resolves to a TextGenerationResult containing the generated response.

Examples

string template =
    "## Context:\n@context\n\n" +
    "## Question:\n@question\n\n" +
    "## Answer:\n";

TextGenerationResult result = await ragEngine.QueryPartitionsAsync(
    "What is RAG?",
    template,
    partitions,
    chat);

Remarks

The template must contain the following placeholders (case-sensitive):

  • @context - Replaced with the concatenation of all non-empty Payload values.
  • @question - Replaced with the question value.

Replacement is performed on the template only; occurrences of @context or @question inside the inserted payload text are not processed.

Exceptions

ArgumentException

Thrown when promptTemplate is null, empty, whitespace, or missing required placeholders.