Table of Contents

Class FilterPipelineExtensions

Namespace
LMKit.TextGeneration.Filters
Assembly
LM-Kit.NET.dll

Extension methods for FilterPipeline that enable concise inline filter registration.

public static class FilterPipelineExtensions
Inheritance
FilterPipelineExtensions
Inherited Members

Examples

Adding filters with lambdas:

using LMKit.TextGeneration.Filters;

var pipeline = new FilterPipeline();

// Prompt logging
pipeline.AddPromptFilter(async (ctx, next) =>
{
    Console.WriteLine($"[Prompt] {ctx.Prompt}");
    await next(ctx);
    Console.WriteLine($"[Done] {ctx.Result?.GeneratedTokenCount} tokens");
});

// Completion telemetry
pipeline.AddCompletionFilter(async (ctx, next) =>
{
    await next(ctx);
    Console.WriteLine($"[Quality] {ctx.Result?.QualityScore:F2}");
});

// Tool call logging
pipeline.AddToolInvocationFilter(async (ctx, next) =>
{
    Console.WriteLine($"[Tool] {ctx.ToolCall.Name}");
    await next(ctx);
});

Remarks

These methods wrap lambda delegates into the corresponding filter interfaces, allowing you to add filters without creating a dedicated class.

Methods

AddCompletionFilter(FilterPipeline, Func<CompletionFilterContext, Func<CompletionFilterContext, Task>, Task>)

Adds an inline completion filter using a lambda delegate.

AddPromptFilter(FilterPipeline, Func<PromptFilterContext, Func<PromptFilterContext, Task>, Task>)

Adds an inline prompt filter using a lambda delegate.

AddToolInvocationFilter(FilterPipeline, Func<ToolInvocationFilterContext, Func<ToolInvocationFilterContext, Task>, Task>)

Adds an inline tool invocation filter using a lambda delegate.