Public Access
33 lines
959 B
C#
33 lines
959 B
C#
using Microsoft.Agents.AI.Compaction;
|
|
|
|
namespace MeetingAssistant.Summary;
|
|
|
|
#pragma warning disable MAAI001
|
|
public sealed class LiteLlmResponsesCompactionOptions
|
|
{
|
|
public bool Enabled { get; init; }
|
|
|
|
public int ContextWindowTokens { get; init; }
|
|
|
|
public int MaxOutputTokens { get; init; }
|
|
|
|
public double RemainingRatio { get; init; }
|
|
|
|
public string CompactPath { get; init; } = "responses/compact";
|
|
|
|
public CompactionStrategy? FallbackStrategy { get; init; }
|
|
|
|
public int TriggerTokens
|
|
{
|
|
get
|
|
{
|
|
var contextWindow = Math.Max(1, ContextWindowTokens);
|
|
var outputReserve = Math.Clamp(MaxOutputTokens, 0, contextWindow - 1);
|
|
var inputBudget = contextWindow - outputReserve;
|
|
var remainingRatio = Math.Clamp(RemainingRatio, 0.01, 0.90);
|
|
return Math.Max(1, (int)Math.Floor(inputBudget * (1 - remainingRatio)));
|
|
}
|
|
}
|
|
}
|
|
#pragma warning restore MAAI001
|