Method QueryPartitions
QueryPartitions(string, IEnumerable<PartitionSimilarity>, IConversation, CancellationToken)
Generates a text response by querying specified partitions within a conversation context.
public TextGenerationResult QueryPartitions(string question, IEnumerable<PartitionSimilarity> partitionSimilarities, IConversation chat, CancellationToken cancellationToken = default)
Parameters
questionstringThe question text to ask.
partitionSimilaritiesIEnumerable<PartitionSimilarity>A collection of PartitionSimilarity instances providing context.
chatIConversationThe IConversation representing the chat context.
cancellationTokenCancellationTokenA token to cancel the operation.
Returns
- TextGenerationResult
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 = ragEngine.FindMatchingPartitions("What is RAG?", topK: 3);
// Generate a response using the partitions as context
TextGenerationResult result = ragEngine.QueryPartitions("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.
QueryPartitions(string, string, IEnumerable<PartitionSimilarity>, IConversation, CancellationToken)
Generates a text response by querying specified partitions within a conversation context, using a custom prompt template.
public TextGenerationResult QueryPartitions(string question, string promptTemplate, IEnumerable<PartitionSimilarity> partitionSimilarities, IConversation chat, CancellationToken cancellationToken = default)
Parameters
questionstringThe question text to ask.
promptTemplatestringThe prompt template containing
@contextand@questionplaceholders.partitionSimilaritiesIEnumerable<PartitionSimilarity>A collection of PartitionSimilarity instances providing context.
chatIConversationThe IConversation representing the chat context.
cancellationTokenCancellationTokenA token to cancel the operation.
Returns
- TextGenerationResult
A TextGenerationResult containing the generated response.
Examples
string template =
"## Context:\n@context\n\n" +
"## Question:\n@question\n\n" +
"## Answer:\n";
TextGenerationResult result = ragEngine.QueryPartitions(
"Summarize the main idea.",
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 thequestionvalue.
Replacement is performed on the template only; occurrences of @context or @question
inside the inserted payload text are not processed.
Exceptions
- ArgumentException
Thrown when
promptTemplateisnull, empty, whitespace, or missing required placeholders.