Renamed LLMAssistantAggregatorParams fields for clarity.
This commit is contained in:
@@ -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")
|
||||||
|
|||||||
Reference in New Issue
Block a user