diff --git a/examples/turn-management/turn-management-filter-incomplete-turns.py b/examples/turn-management/turn-management-filter-incomplete-turns.py index 00066b6c8..99c0394fb 100644 --- a/examples/turn-management/turn-management-filter-incomplete-turns.py +++ b/examples/turn-management/turn-management-filter-incomplete-turns.py @@ -10,7 +10,7 @@ Demonstrates LLM-based turn completion detection to suppress bot responses when the user was cut off mid-thought. The LLM outputs one of three markers: - ✓ (complete): User finished their thought, respond normally - ○ (incomplete short): User was cut off, wait ~5s then prompt -- ◐ (incomplete long): User needs time to think, wait ~15s then prompt +- ◐ (incomplete long): User needs time to think, wait ~10s then prompt When incomplete is detected, the bot's response is suppressed. After the timeout expires, the LLM is automatically prompted to re-engage the user. @@ -91,7 +91,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): # with one of: # ✓ = complete (respond normally) # ○ = incomplete short (wait 5s, then prompt) - # ◐ = incomplete long (wait 15s, then prompt) + # ◐ = incomplete long (wait 10s, then prompt) user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( @@ -100,7 +100,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): # Optional: customize turn completion behavior # config=UserTurnCompletionConfig( # incomplete_short_timeout=5.0, - # incomplete_long_timeout=15.0, + # incomplete_long_timeout=10.0, # incomplete_short_prompt="Custom prompt...", # incomplete_long_prompt="Custom prompt...", # instructions="Custom turn completion instructions...", diff --git a/src/pipecat/turns/user_turn_completion_mixin.py b/src/pipecat/turns/user_turn_completion_mixin.py index cf600466d..c423e16bf 100644 --- a/src/pipecat/turns/user_turn_completion_mixin.py +++ b/src/pipecat/turns/user_turn_completion_mixin.py @@ -187,8 +187,8 @@ class UserTurnCompletionLLMServiceMixin(FrameProcessor): It processes turn completion markers to enable smarter conversation flow: - ✓ (COMPLETE): Push response normally - - ○ (INCOMPLETE SHORT): Suppress response, wait ~5s, then prompt - - ◐ (INCOMPLETE LONG): Suppress response, wait ~15s, then prompt + - ○ (INCOMPLETE SHORT): Suppress response, wait 5s, then prompt + - ◐ (INCOMPLETE LONG): Suppress response, wait 10s, then prompt When incomplete timeouts expire, the mixin automatically prompts the LLM with a contextual follow-up message to re-engage the user. diff --git a/src/pipecat/turns/user_turn_strategies.py b/src/pipecat/turns/user_turn_strategies.py index eee0b6ff6..613722804 100644 --- a/src/pipecat/turns/user_turn_strategies.py +++ b/src/pipecat/turns/user_turn_strategies.py @@ -138,7 +138,7 @@ class FilterIncompleteUserTurnStrategies(UserTurnStrategies): user_turn_strategies=FilterIncompleteUserTurnStrategies( config=UserTurnCompletionConfig( incomplete_short_timeout=5.0, - incomplete_long_timeout=15.0, + incomplete_long_timeout=10.0, ), ) """