Remove deprecated allow_interruptions parameter

This field was deprecated in v0.0.99 in favor of LLMUserAggregator's
user_turn_strategies / user_mute_strategies parameters. Since the default
was True (interruptions allowed), removing the guards keeps the current
default behavior.
This commit is contained in:
Mark Backman
2026-04-02 10:47:44 -04:00
parent 74acb0b7d0
commit f8267f1ea6
7 changed files with 3 additions and 45 deletions

View File

@@ -878,11 +878,6 @@ class StartFrame(SystemFrame):
Parameters: Parameters:
audio_in_sample_rate: Input audio sample rate in Hz. audio_in_sample_rate: Input audio sample rate in Hz.
audio_out_sample_rate: Output audio sample rate in Hz. audio_out_sample_rate: Output audio sample rate in Hz.
allow_interruptions: Whether to allow user interruptions.
.. deprecated:: 0.0.99
Use `LLMUserAggregator`'s new `user_mute_strategies` parameter instead.
enable_metrics: Whether to enable performance metrics collection. enable_metrics: Whether to enable performance metrics collection.
enable_tracing: Whether to enable OpenTelemetry tracing. enable_tracing: Whether to enable OpenTelemetry tracing.
enable_usage_metrics: Whether to enable usage metrics collection. enable_usage_metrics: Whether to enable usage metrics collection.
@@ -897,7 +892,6 @@ class StartFrame(SystemFrame):
audio_in_sample_rate: int = 16000 audio_in_sample_rate: int = 16000
audio_out_sample_rate: int = 24000 audio_out_sample_rate: int = 24000
allow_interruptions: bool = False
enable_metrics: bool = False enable_metrics: bool = False
enable_tracing: bool = False enable_tracing: bool = False
enable_usage_metrics: bool = False enable_usage_metrics: bool = False

View File

@@ -111,11 +111,6 @@ class PipelineParams(BaseModel):
constructor arguments instead. constructor arguments instead.
Parameters: Parameters:
allow_interruptions: Whether to allow pipeline interruptions.
.. deprecated:: 0.0.99
Use `LLMUserAggregator`'s new `user_turn_strategies` parameter instead.
audio_in_sample_rate: Input audio sample rate in Hz. audio_in_sample_rate: Input audio sample rate in Hz.
audio_out_sample_rate: Output audio sample rate in Hz. audio_out_sample_rate: Output audio sample rate in Hz.
enable_heartbeats: Whether to enable heartbeat monitoring. enable_heartbeats: Whether to enable heartbeat monitoring.
@@ -136,7 +131,6 @@ class PipelineParams(BaseModel):
model_config = ConfigDict(arbitrary_types_allowed=True) model_config = ConfigDict(arbitrary_types_allowed=True)
allow_interruptions: bool = True
audio_in_sample_rate: int = 16000 audio_in_sample_rate: int = 16000
audio_out_sample_rate: int = 24000 audio_out_sample_rate: int = 24000
enable_heartbeats: bool = False enable_heartbeats: bool = False
@@ -778,7 +772,6 @@ class PipelineTask(BasePipelineTask):
self._maybe_start_idle_task() self._maybe_start_idle_task()
start_frame = StartFrame( start_frame = StartFrame(
allow_interruptions=self._params.allow_interruptions,
audio_in_sample_rate=self._params.audio_in_sample_rate, audio_in_sample_rate=self._params.audio_in_sample_rate,
audio_out_sample_rate=self._params.audio_out_sample_rate, audio_out_sample_rate=self._params.audio_out_sample_rate,
enable_metrics=self._params.enable_metrics, enable_metrics=self._params.enable_metrics,

View File

@@ -731,7 +731,7 @@ class LLMUserAggregator(LLMContextAggregator):
await self._user_idle_controller.process_frame(UserStartedSpeakingFrame()) await self._user_idle_controller.process_frame(UserStartedSpeakingFrame())
if params.enable_interruptions and self._allow_interruptions: if params.enable_interruptions:
await self.broadcast_interruption() await self.broadcast_interruption()
await self._call_event_handler("on_user_turn_started", strategy) await self._call_event_handler("on_user_turn_started", strategy)

View File

@@ -193,8 +193,6 @@ class FrameProcessor(BaseObject):
self._enable_metrics = False self._enable_metrics = False
self._enable_usage_metrics = False self._enable_usage_metrics = False
self._report_only_initial_ttfb = False self._report_only_initial_ttfb = False
# Other properties (deprecated)
self._allow_interruptions = False
self._interruption_strategies: List[BaseInterruptionStrategy] = [] self._interruption_strategies: List[BaseInterruptionStrategy] = []
# Indicates whether we have received the StartFrame. # Indicates whether we have received the StartFrame.
@@ -307,29 +305,6 @@ class FrameProcessor(BaseObject):
""" """
return self._prev return self._prev
@property
def interruptions_allowed(self):
"""Check if interruptions are allowed for this processor.
.. deprecated:: 0.0.99
Use `LLMUserAggregator`'s new `user_mute_strategies` parameter instead.
Returns:
True if interruptions are allowed.
"""
import warnings
with warnings.catch_warnings():
warnings.simplefilter("always")
warnings.warn(
"`FrameProcessor.interruptions_allowed` is deprecated. "
"Use `LLMUserAggregator`'s new `user_mute_strategies` parameter instead.",
DeprecationWarning,
stacklevel=2,
)
return self._allow_interruptions
@property @property
def metrics_enabled(self): def metrics_enabled(self):
"""Check if metrics collection is enabled. """Check if metrics collection is enabled.
@@ -819,7 +794,6 @@ class FrameProcessor(BaseObject):
frame: The start frame containing initialization parameters. frame: The start frame containing initialization parameters.
""" """
self.__started = True self.__started = True
self._allow_interruptions = frame.allow_interruptions
self._enable_metrics = frame.enable_metrics self._enable_metrics = frame.enable_metrics
self._enable_usage_metrics = frame.enable_usage_metrics self._enable_usage_metrics = frame.enable_usage_metrics
self._interruption_strategies = frame.interruption_strategies self._interruption_strategies = frame.interruption_strategies

View File

@@ -518,7 +518,7 @@ class BaseInputTransport(FrameProcessor):
) )
# Make sure we notify about interruptions quickly out-of-band. # Make sure we notify about interruptions quickly out-of-band.
if should_push_immediate_interruption and self._allow_interruptions: if should_push_immediate_interruption:
await self.broadcast_interruption() await self.broadcast_interruption()
elif self.interruption_strategies and self._bot_speaking: elif self.interruption_strategies and self._bot_speaking:
logger.debug( logger.debug(

View File

@@ -517,9 +517,6 @@ class BaseOutputTransport(FrameProcessor):
Args: Args:
_: The start interruption frame (unused). _: The start interruption frame (unused).
""" """
if not self._transport._allow_interruptions:
return
# Cancel tasks. # Cancel tasks.
await self._cancel_audio_task() await self._cancel_audio_task()
await self._cancel_clock_task() await self._cancel_clock_task()

View File

@@ -181,7 +181,7 @@ class UserTurnProcessor(FrameProcessor):
await self._user_idle_controller.process_frame(UserStartedSpeakingFrame()) await self._user_idle_controller.process_frame(UserStartedSpeakingFrame())
if params.enable_interruptions and self._allow_interruptions: if params.enable_interruptions:
await self.broadcast_interruption() await self.broadcast_interruption()
await self._call_event_handler("on_user_turn_started", strategy) await self._call_event_handler("on_user_turn_started", strategy)