Renamed LLMAssistantAggregatorParams fields for clarity.

This commit is contained in:
filipi87
2026-02-27 18:41:17 -03:00
parent f11d4b6944
commit 08d93ce9b6

View File

@@ -79,7 +79,10 @@ from pipecat.turns.user_stop import BaseUserTurnStopStrategy, UserTurnStoppedPar
from pipecat.turns.user_turn_completion_mixin import UserTurnCompletionConfig from pipecat.turns.user_turn_completion_mixin import UserTurnCompletionConfig
from pipecat.turns.user_turn_controller import UserTurnController from pipecat.turns.user_turn_controller import UserTurnController
from pipecat.turns.user_turn_strategies import ExternalUserTurnStrategies, UserTurnStrategies from pipecat.turns.user_turn_strategies import ExternalUserTurnStrategies, UserTurnStrategies
from pipecat.utils.context.llm_context_summarization import LLMContextSummarizationConfig from pipecat.utils.context.llm_context_summarization import (
LLMAutoContextSummarizationConfig,
LLMContextSummarizationConfig,
)
from pipecat.utils.string import TextPartForConcatenation, concatenate_aggregated_text from pipecat.utils.string import TextPartForConcatenation, concatenate_aggregated_text
from pipecat.utils.time import time_now_iso8601 from pipecat.utils.time import time_now_iso8601
@@ -125,18 +128,54 @@ class LLMAssistantAggregatorParams:
in text frames by adding spaces between tokens. This parameter is in text frames by adding spaces between tokens. This parameter is
ignored when used with the newer LLMAssistantAggregator, which ignored when used with the newer LLMAssistantAggregator, which
handles word spacing automatically. handles word spacing automatically.
enable_context_summarization: Enable automatic context summarization when token enable_auto_context_summarization: Enable automatic context summarization when token
limits are reached (disabled by default). When enabled, older conversation or message-count limits are reached (disabled by default). When enabled,
messages are automatically compressed into summaries to manage context size. older conversation messages are automatically compressed into summaries to
context_summarization_config: Configuration for context summarization behavior. manage context size.
Controls thresholds, message preservation, and summarization prompts. If None auto_context_summarization_config: Configuration for automatic context
and summarization is enabled, uses default configuration values. summarization. Controls trigger thresholds, message preservation, and
summarization prompts. If None, uses default
``LLMAutoContextSummarizationConfig`` values.
""" """
expect_stripped_words: bool = True expect_stripped_words: bool = True
enable_context_summarization: bool = False enable_auto_context_summarization: bool = False
auto_context_summarization_config: Optional[LLMAutoContextSummarizationConfig] = None
# ---------------------------------------------------------------------------
# Deprecated field names — kept for backward compatibility.
# Use enable_auto_context_summarization and auto_context_summarization_config instead.
# ---------------------------------------------------------------------------
enable_context_summarization: Optional[bool] = None
context_summarization_config: Optional[LLMContextSummarizationConfig] = None context_summarization_config: Optional[LLMContextSummarizationConfig] = None
def __post_init__(self):
if self.enable_context_summarization is not None:
warnings.warn(
"LLMAssistantAggregatorParams.enable_context_summarization is deprecated. "
"Use enable_auto_context_summarization instead.",
DeprecationWarning,
stacklevel=2,
)
self.enable_auto_context_summarization = self.enable_context_summarization
self.enable_context_summarization = None
if self.context_summarization_config is not None:
warnings.warn(
"LLMAssistantAggregatorParams.context_summarization_config is deprecated. "
"Use auto_context_summarization_config (LLMAutoContextSummarizationConfig) instead.",
DeprecationWarning,
stacklevel=2,
)
if isinstance(self.context_summarization_config, LLMContextSummarizationConfig):
self.auto_context_summarization_config = (
self.context_summarization_config.to_auto_config()
)
else:
# Accept LLMAutoContextSummarizationConfig passed to the deprecated field
self.auto_context_summarization_config = self.context_summarization_config # type: ignore[assignment]
self.context_summarization_config = None
@dataclass @dataclass
class UserTurnStoppedMessage: class UserTurnStoppedMessage:
@@ -825,16 +864,18 @@ class LLMAssistantAggregator(LLMContextAggregator):
self._thought_aggregation: List[TextPartForConcatenation] = [] self._thought_aggregation: List[TextPartForConcatenation] = []
self._thought_start_time: str = "" self._thought_start_time: str = ""
# Context summarization # Context summarization — always create the summarizer so that manually
self._summarizer: Optional[LLMContextSummarizer] = None # pushed LLMSummarizeContextFrame frames are always handled.
if self._params.enable_context_summarization: # Auto-triggering based on thresholds is only enabled when
self._summarizer = LLMContextSummarizer( # enable_auto_context_summarization is True.
context=self._context, self._summarizer: Optional[LLMContextSummarizer] = LLMContextSummarizer(
config=self._params.context_summarization_config, context=self._context,
) config=self._params.auto_context_summarization_config,
self._summarizer.add_event_handler( auto_trigger=self._params.enable_auto_context_summarization,
"on_request_summarization", self._on_request_summarization )
) self._summarizer.add_event_handler(
"on_request_summarization", self._on_request_summarization
)
self._register_event_handler("on_assistant_turn_started") self._register_event_handler("on_assistant_turn_started")
self._register_event_handler("on_assistant_turn_stopped") self._register_event_handler("on_assistant_turn_stopped")