ContextHelper class
Helper class for managing model context and token limits.
Uses the 80% rule:
Only 80% of the total context window is used to leave
a safety buffer and prevent truncation.
Example:
- Context: 2048 tokens
- Safe limit: 1638 tokens (80%)
- Safety buffer: 410 tokens (20%)
Constructors
- ContextHelper({required int contextSize, int maxMessagesToKeep = 15})
-
const
Properties
- contextSize → int
-
Total context window size.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- maxMessagesToKeep → int
-
Maximum number of messages to retain (including system prompt).
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- safeTokenLimit → int
-
Returns the safe token limit (80% of total context).
no setter
- safetyBuffer → int
-
Returns the size of the safety buffer (20% of total context).
no setter
Methods
-
calculateSafeMaxTokens(
int tokensUsed, int requestedMaxTokens) → int - Calculates a safe number of tokens to generate based on available context.
-
estimateTokens(
String text) → int - Estimates the number of tokens in the given text.
-
getUsagePercentage(
int tokensUsed) → double - Returns the percentage of context used (0–100%).
-
isNearLimit(
int tokensUsed) → bool - Checks if context usage is approaching the safe limit (≥72% of total).
-
mustClear(
int tokensUsed) → bool - Checks if context must be cleared (≥80% of total).
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Constants
- safeUsageLimit → const double
- Maximum percentage of context allowed before trimming.