diff --git a/examples/foundational/04-transports-small-webrtc.py b/examples/foundational/04-transports-small-webrtc.py index 26b3291dd..8ed1291ba 100644 --- a/examples/foundational/04-transports-small-webrtc.py +++ b/examples/foundational/04-transports-small-webrtc.py @@ -85,7 +85,7 @@ async def run_example(webrtc_connection: SmallWebRTCConnection): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -98,11 +98,11 @@ async def run_example(webrtc_connection: SmallWebRTCConnection): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/04a-transports-daily.py b/examples/foundational/04a-transports-daily.py index 6f31bc6b4..27321e028 100644 --- a/examples/foundational/04a-transports-daily.py +++ b/examples/foundational/04a-transports-daily.py @@ -68,7 +68,7 @@ async def main(): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -82,11 +82,11 @@ async def main(): pipeline = Pipeline( [ transport.input(), # Transport user input - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/04b-transports-livekit.py b/examples/foundational/04b-transports-livekit.py index c24a082c5..c58e6b5fd 100644 --- a/examples/foundational/04b-transports-livekit.py +++ b/examples/foundational/04b-transports-livekit.py @@ -78,7 +78,7 @@ async def main(): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -91,11 +91,11 @@ async def main(): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/06-listen-and-respond.py b/examples/foundational/06-listen-and-respond.py index 9290becb2..95e59b167 100644 --- a/examples/foundational/06-listen-and-respond.py +++ b/examples/foundational/06-listen-and-respond.py @@ -106,7 +106,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -119,12 +119,12 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), stt, - context_aggregator.user(), + user_aggregator, llm, tts, ml, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/06a-image-sync.py b/examples/foundational/06a-image-sync.py index 363502fac..cc4664578 100644 --- a/examples/foundational/06a-image-sync.py +++ b/examples/foundational/06a-image-sync.py @@ -120,7 +120,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -138,12 +138,12 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), stt, - context_aggregator.user(), + user_aggregator, llm, tts, image_sync_aggregator, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/07-interruptible-cartesia-http.py b/examples/foundational/07-interruptible-cartesia-http.py index 919660b03..2d0a9f6d1 100644 --- a/examples/foundational/07-interruptible-cartesia-http.py +++ b/examples/foundational/07-interruptible-cartesia-http.py @@ -77,7 +77,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -90,11 +90,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07-interruptible.py b/examples/foundational/07-interruptible.py index b9e8bb0f7..d9bb5a449 100644 --- a/examples/foundational/07-interruptible.py +++ b/examples/foundational/07-interruptible.py @@ -76,7 +76,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -89,11 +89,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07a-interruptible-speechmatics-vad.py b/examples/foundational/07a-interruptible-speechmatics-vad.py index 8f1898f3f..864e9635d 100644 --- a/examples/foundational/07a-interruptible-speechmatics-vad.py +++ b/examples/foundational/07a-interruptible-speechmatics-vad.py @@ -131,7 +131,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams(user_turn_strategies=ExternalUserTurnStrategies()), ) @@ -140,11 +140,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07a-interruptible-speechmatics.py b/examples/foundational/07a-interruptible-speechmatics.py index 370b2c998..78959eccf 100644 --- a/examples/foundational/07a-interruptible-speechmatics.py +++ b/examples/foundational/07a-interruptible-speechmatics.py @@ -117,7 +117,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -132,11 +132,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07aa-interruptible-soniox.py b/examples/foundational/07aa-interruptible-soniox.py index ba0e2be27..15da33507 100644 --- a/examples/foundational/07aa-interruptible-soniox.py +++ b/examples/foundational/07aa-interruptible-soniox.py @@ -76,7 +76,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -89,11 +89,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) task = PipelineTask( diff --git a/examples/foundational/07ab-interruptible-inworld-http.py b/examples/foundational/07ab-interruptible-inworld-http.py index a947f0edf..b2bf05660 100644 --- a/examples/foundational/07ab-interruptible-inworld-http.py +++ b/examples/foundational/07ab-interruptible-inworld-http.py @@ -82,7 +82,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -100,11 +100,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): transport.input(), rtvi, stt, - context_aggregator.user(), + user_aggregator, llm, tts, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/07ab-interruptible-inworld.py b/examples/foundational/07ab-interruptible-inworld.py index f830ed485..8d3d351a5 100644 --- a/examples/foundational/07ab-interruptible-inworld.py +++ b/examples/foundational/07ab-interruptible-inworld.py @@ -79,7 +79,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -95,11 +95,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): transport.input(), rtvi, stt, - context_aggregator.user(), + user_aggregator, llm, tts, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/07ac-interruptible-asyncai-http.py b/examples/foundational/07ac-interruptible-asyncai-http.py index 3ac659b3f..21da1cf17 100644 --- a/examples/foundational/07ac-interruptible-asyncai-http.py +++ b/examples/foundational/07ac-interruptible-asyncai-http.py @@ -82,7 +82,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -97,11 +97,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07ac-interruptible-asyncai.py b/examples/foundational/07ac-interruptible-asyncai.py index b13615110..d3dcf8766 100644 --- a/examples/foundational/07ac-interruptible-asyncai.py +++ b/examples/foundational/07ac-interruptible-asyncai.py @@ -78,7 +78,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -91,11 +91,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07ad-interruptible-aicoustics.py b/examples/foundational/07ad-interruptible-aicoustics.py index 75686469b..8a49e734f 100644 --- a/examples/foundational/07ad-interruptible-aicoustics.py +++ b/examples/foundational/07ad-interruptible-aicoustics.py @@ -105,7 +105,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -118,12 +118,12 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output audiobuffer, # write audio data to a file - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07ae-interruptible-hume.py b/examples/foundational/07ae-interruptible-hume.py index 238e45637..33ea4d278 100644 --- a/examples/foundational/07ae-interruptible-hume.py +++ b/examples/foundational/07ae-interruptible-hume.py @@ -81,7 +81,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -97,11 +97,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): transport.input(), # Transport user input rtvi, stt, - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS (HumeTTSService with word timestamps) transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07af-interruptible-gradium.py b/examples/foundational/07af-interruptible-gradium.py index 4b21e887b..b6207d9f4 100644 --- a/examples/foundational/07af-interruptible-gradium.py +++ b/examples/foundational/07af-interruptible-gradium.py @@ -76,7 +76,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -89,11 +89,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07b-interruptible-langchain.py b/examples/foundational/07b-interruptible-langchain.py index a5a8f3d0e..b9b5c6177 100644 --- a/examples/foundational/07b-interruptible-langchain.py +++ b/examples/foundational/07b-interruptible-langchain.py @@ -103,7 +103,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): lc = LangchainProcessor(history_chain) context = LLMContext() - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -116,11 +116,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User responses + user_aggregator, # User responses lc, # Langchain tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07c-interruptible-deepgram-flux.py b/examples/foundational/07c-interruptible-deepgram-flux.py index 87c1ca7e9..5a1a63e7e 100644 --- a/examples/foundational/07c-interruptible-deepgram-flux.py +++ b/examples/foundational/07c-interruptible-deepgram-flux.py @@ -71,7 +71,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams(user_turn_strategies=ExternalUserTurnStrategies()), ) @@ -80,11 +80,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07c-interruptible-deepgram-http.py b/examples/foundational/07c-interruptible-deepgram-http.py index c0b607986..190d37280 100644 --- a/examples/foundational/07c-interruptible-deepgram-http.py +++ b/examples/foundational/07c-interruptible-deepgram-http.py @@ -81,7 +81,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -96,11 +96,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07c-interruptible-deepgram-sagemaker.py b/examples/foundational/07c-interruptible-deepgram-sagemaker.py index 53da2dba7..a625c1eea 100644 --- a/examples/foundational/07c-interruptible-deepgram-sagemaker.py +++ b/examples/foundational/07c-interruptible-deepgram-sagemaker.py @@ -86,7 +86,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -99,11 +99,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07c-interruptible-deepgram-vad.py b/examples/foundational/07c-interruptible-deepgram-vad.py index 482ff2b26..e7dca7701 100644 --- a/examples/foundational/07c-interruptible-deepgram-vad.py +++ b/examples/foundational/07c-interruptible-deepgram-vad.py @@ -72,7 +72,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams(user_turn_strategies=ExternalUserTurnStrategies()), ) @@ -81,11 +81,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07c-interruptible-deepgram.py b/examples/foundational/07c-interruptible-deepgram.py index 5754b33a9..7e81b5a74 100644 --- a/examples/foundational/07c-interruptible-deepgram.py +++ b/examples/foundational/07c-interruptible-deepgram.py @@ -75,7 +75,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -88,11 +88,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07d-interruptible-elevenlabs-http.py b/examples/foundational/07d-interruptible-elevenlabs-http.py index 933f6ffdb..d289258c1 100644 --- a/examples/foundational/07d-interruptible-elevenlabs-http.py +++ b/examples/foundational/07d-interruptible-elevenlabs-http.py @@ -85,7 +85,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -100,11 +100,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07d-interruptible-elevenlabs.py b/examples/foundational/07d-interruptible-elevenlabs.py index aa519fd5b..4850cd473 100644 --- a/examples/foundational/07d-interruptible-elevenlabs.py +++ b/examples/foundational/07d-interruptible-elevenlabs.py @@ -78,7 +78,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -91,11 +91,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07e-interruptible-playht-http.py b/examples/foundational/07e-interruptible-playht-http.py index 9e6f94c63..0d731d6e4 100644 --- a/examples/foundational/07e-interruptible-playht-http.py +++ b/examples/foundational/07e-interruptible-playht-http.py @@ -78,7 +78,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -91,11 +91,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07e-interruptible-playht.py b/examples/foundational/07e-interruptible-playht.py index 516179995..598565868 100644 --- a/examples/foundational/07e-interruptible-playht.py +++ b/examples/foundational/07e-interruptible-playht.py @@ -80,7 +80,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -93,11 +93,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07f-interruptible-azure-http.py b/examples/foundational/07f-interruptible-azure-http.py index 882aa61c0..1fc0a1bba 100644 --- a/examples/foundational/07f-interruptible-azure-http.py +++ b/examples/foundational/07f-interruptible-azure-http.py @@ -84,7 +84,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -97,11 +97,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07f-interruptible-azure.py b/examples/foundational/07f-interruptible-azure.py index 7688731ae..0ff69e44e 100644 --- a/examples/foundational/07f-interruptible-azure.py +++ b/examples/foundational/07f-interruptible-azure.py @@ -84,7 +84,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -97,11 +97,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07g-interruptible-openai.py b/examples/foundational/07g-interruptible-openai.py index 236787af6..3c588cf11 100644 --- a/examples/foundational/07g-interruptible-openai.py +++ b/examples/foundational/07g-interruptible-openai.py @@ -78,7 +78,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -91,11 +91,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07h-interruptible-openpipe.py b/examples/foundational/07h-interruptible-openpipe.py index baa8c869c..555c4049b 100644 --- a/examples/foundational/07h-interruptible-openpipe.py +++ b/examples/foundational/07h-interruptible-openpipe.py @@ -83,7 +83,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -96,11 +96,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07i-interruptible-xtts.py b/examples/foundational/07i-interruptible-xtts.py index fed73d2c3..9d1843177 100644 --- a/examples/foundational/07i-interruptible-xtts.py +++ b/examples/foundational/07i-interruptible-xtts.py @@ -81,7 +81,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -96,11 +96,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07j-interruptible-gladia-vad.py b/examples/foundational/07j-interruptible-gladia-vad.py index 7f2790611..58d094d3b 100644 --- a/examples/foundational/07j-interruptible-gladia-vad.py +++ b/examples/foundational/07j-interruptible-gladia-vad.py @@ -86,7 +86,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams(user_turn_strategies=ExternalUserTurnStrategies()), ) @@ -95,11 +95,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07j-interruptible-gladia.py b/examples/foundational/07j-interruptible-gladia.py index 5a1cd305b..664c19ce1 100644 --- a/examples/foundational/07j-interruptible-gladia.py +++ b/examples/foundational/07j-interruptible-gladia.py @@ -87,7 +87,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -100,11 +100,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07k-interruptible-lmnt.py b/examples/foundational/07k-interruptible-lmnt.py index 048e91d15..43618f84f 100644 --- a/examples/foundational/07k-interruptible-lmnt.py +++ b/examples/foundational/07k-interruptible-lmnt.py @@ -75,7 +75,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -88,11 +88,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User respones + user_aggregator, # User respones llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07l-interruptible-groq.py b/examples/foundational/07l-interruptible-groq.py index 55791e0ce..c1e7e2d4d 100644 --- a/examples/foundational/07l-interruptible-groq.py +++ b/examples/foundational/07l-interruptible-groq.py @@ -76,7 +76,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -89,11 +89,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07m-interruptible-aws-strands.py b/examples/foundational/07m-interruptible-aws-strands.py index c3e830a1f..f72e3560c 100644 --- a/examples/foundational/07m-interruptible-aws-strands.py +++ b/examples/foundational/07m-interruptible-aws-strands.py @@ -120,7 +120,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): # Setup context aggregators for message handling context = LLMContext() - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -133,11 +133,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # Speech-to-text - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # Strands Agents processor tts, # Text-to-speech transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07m-interruptible-aws.py b/examples/foundational/07m-interruptible-aws.py index eb4974d8f..0f00e1185 100644 --- a/examples/foundational/07m-interruptible-aws.py +++ b/examples/foundational/07m-interruptible-aws.py @@ -80,7 +80,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -93,11 +93,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07n-interruptible-gemini-image.py b/examples/foundational/07n-interruptible-gemini-image.py index 08ab8fb81..a465724f2 100644 --- a/examples/foundational/07n-interruptible-gemini-image.py +++ b/examples/foundational/07n-interruptible-gemini-image.py @@ -102,7 +102,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -115,11 +115,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # Gemini TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07n-interruptible-gemini.py b/examples/foundational/07n-interruptible-gemini.py index e8234a60d..f9dc0bc3b 100644 --- a/examples/foundational/07n-interruptible-gemini.py +++ b/examples/foundational/07n-interruptible-gemini.py @@ -107,7 +107,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -120,11 +120,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # Gemini TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07n-interruptible-google-http.py b/examples/foundational/07n-interruptible-google-http.py index 42f251612..9c58489a9 100644 --- a/examples/foundational/07n-interruptible-google-http.py +++ b/examples/foundational/07n-interruptible-google-http.py @@ -90,7 +90,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -103,11 +103,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User respones + user_aggregator, # User respones llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07n-interruptible-google.py b/examples/foundational/07n-interruptible-google.py index 4c5969a04..a7ebc9dc3 100644 --- a/examples/foundational/07n-interruptible-google.py +++ b/examples/foundational/07n-interruptible-google.py @@ -90,7 +90,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -103,11 +103,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User respones + user_aggregator, # User respones llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07o-interruptible-assemblyai.py b/examples/foundational/07o-interruptible-assemblyai.py index 36f90a183..9cdaafebb 100644 --- a/examples/foundational/07o-interruptible-assemblyai.py +++ b/examples/foundational/07o-interruptible-assemblyai.py @@ -80,7 +80,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -93,11 +93,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07p-interruptible-krisp-viva.py b/examples/foundational/07p-interruptible-krisp-viva.py index ca11ef90e..be336f003 100644 --- a/examples/foundational/07p-interruptible-krisp-viva.py +++ b/examples/foundational/07p-interruptible-krisp-viva.py @@ -95,7 +95,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -108,11 +108,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07p-interruptible-krisp.py b/examples/foundational/07p-interruptible-krisp.py index e66928bf2..8665e270e 100644 --- a/examples/foundational/07p-interruptible-krisp.py +++ b/examples/foundational/07p-interruptible-krisp.py @@ -78,7 +78,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -91,11 +91,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07q-interruptible-rime-http.py b/examples/foundational/07q-interruptible-rime-http.py index 45b68bfb1..1cbe7f01b 100644 --- a/examples/foundational/07q-interruptible-rime-http.py +++ b/examples/foundational/07q-interruptible-rime-http.py @@ -83,7 +83,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -98,11 +98,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07q-interruptible-rime.py b/examples/foundational/07q-interruptible-rime.py index d2d1207e1..d54a97d78 100644 --- a/examples/foundational/07q-interruptible-rime.py +++ b/examples/foundational/07q-interruptible-rime.py @@ -77,7 +77,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -90,11 +90,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07r-interruptible-nvidia.py b/examples/foundational/07r-interruptible-nvidia.py index d93ce19eb..460f6ebfe 100644 --- a/examples/foundational/07r-interruptible-nvidia.py +++ b/examples/foundational/07r-interruptible-nvidia.py @@ -76,7 +76,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -89,11 +89,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07s-interruptible-google-audio-in.py b/examples/foundational/07s-interruptible-google-audio-in.py index 3fb48354a..9aaa3c415 100644 --- a/examples/foundational/07s-interruptible-google-audio-in.py +++ b/examples/foundational/07s-interruptible-google-audio-in.py @@ -249,7 +249,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -257,7 +257,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ), ), ) - audio_collector = UserAudioCollector(context, context_aggregator.user()) + audio_collector = UserAudioCollector(context, user_aggregator) pull_transcript_out_of_llm_output = TranscriptExtractor(context) fixup_context_messages = TranscriptionContextFixup(context) @@ -265,12 +265,12 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input audio_collector, - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM pull_transcript_out_of_llm_output, tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses fixup_context_messages, ] ) diff --git a/examples/foundational/07t-interruptible-fish.py b/examples/foundational/07t-interruptible-fish.py index 9e2bc6e5c..86750b631 100644 --- a/examples/foundational/07t-interruptible-fish.py +++ b/examples/foundational/07t-interruptible-fish.py @@ -78,7 +78,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -91,11 +91,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07v-interruptible-neuphonic-http.py b/examples/foundational/07v-interruptible-neuphonic-http.py index c97b6e381..5f5928cad 100644 --- a/examples/foundational/07v-interruptible-neuphonic-http.py +++ b/examples/foundational/07v-interruptible-neuphonic-http.py @@ -82,7 +82,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -97,11 +97,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07v-interruptible-neuphonic.py b/examples/foundational/07v-interruptible-neuphonic.py index 9a142f1bf..78fc9c2e8 100644 --- a/examples/foundational/07v-interruptible-neuphonic.py +++ b/examples/foundational/07v-interruptible-neuphonic.py @@ -77,7 +77,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -90,11 +90,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07w-interruptible-fal.py b/examples/foundational/07w-interruptible-fal.py index 62c33d1c9..a60725b16 100644 --- a/examples/foundational/07w-interruptible-fal.py +++ b/examples/foundational/07w-interruptible-fal.py @@ -80,7 +80,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -93,11 +93,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07x-interruptible-local.py b/examples/foundational/07x-interruptible-local.py index b0cd28e55..0baa6ebad 100644 --- a/examples/foundational/07x-interruptible-local.py +++ b/examples/foundational/07x-interruptible-local.py @@ -62,7 +62,7 @@ async def main(): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -75,11 +75,11 @@ async def main(): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07y-interruptible-minimax.py b/examples/foundational/07y-interruptible-minimax.py index ba8d56c28..855e41516 100644 --- a/examples/foundational/07y-interruptible-minimax.py +++ b/examples/foundational/07y-interruptible-minimax.py @@ -84,7 +84,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -99,11 +99,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07z-interruptible-sarvam-http.py b/examples/foundational/07z-interruptible-sarvam-http.py index 8ad54ab4c..df176ab22 100644 --- a/examples/foundational/07z-interruptible-sarvam-http.py +++ b/examples/foundational/07z-interruptible-sarvam-http.py @@ -86,7 +86,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -101,11 +101,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/07z-interruptible-sarvam.py b/examples/foundational/07z-interruptible-sarvam.py index 500f08b41..990af6fef 100644 --- a/examples/foundational/07z-interruptible-sarvam.py +++ b/examples/foundational/07z-interruptible-sarvam.py @@ -80,7 +80,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -93,11 +93,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/08-custom-frame-processor.py b/examples/foundational/08-custom-frame-processor.py index ae44b4fba..82ff858b6 100644 --- a/examples/foundational/08-custom-frame-processor.py +++ b/examples/foundational/08-custom-frame-processor.py @@ -115,7 +115,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -130,11 +130,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), stt, - context_aggregator.user(), + user_aggregator, llm, tts, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, metrics_frame_processor, # pretty print metrics frames ] ) diff --git a/examples/foundational/10-wake-phrase.py b/examples/foundational/10-wake-phrase.py index ace7f6f4f..fe7052a5b 100644 --- a/examples/foundational/10-wake-phrase.py +++ b/examples/foundational/10-wake-phrase.py @@ -79,7 +79,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): hey_robot_filter = WakeCheckFilter(["hey robot", "hey, robot"]) context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -93,11 +93,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): transport.input(), # Transport user input stt, # STT hey_robot_filter, # Filter out speech not directed at the robot - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/11-sound-effects.py b/examples/foundational/11-sound-effects.py index 0dee4264e..8201790ac 100644 --- a/examples/foundational/11-sound-effects.py +++ b/examples/foundational/11-sound-effects.py @@ -127,7 +127,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -144,7 +144,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), stt, - context_aggregator.user(), + user_aggregator, in_sound, fl2, llm, @@ -152,7 +152,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): tts, out_sound, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/12-describe-image-openai.py b/examples/foundational/12-describe-image-openai.py index 2df4ccaea..60cdeafed 100644 --- a/examples/foundational/12-describe-image-openai.py +++ b/examples/foundational/12-describe-image-openai.py @@ -73,7 +73,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -86,11 +86,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/12a-describe-image-anthropic.py b/examples/foundational/12a-describe-image-anthropic.py index 2263040ba..507cca019 100644 --- a/examples/foundational/12a-describe-image-anthropic.py +++ b/examples/foundational/12a-describe-image-anthropic.py @@ -73,7 +73,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -86,11 +86,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/12b-describe-image-aws.py b/examples/foundational/12b-describe-image-aws.py index 8e37bf5d3..ed02f5024 100644 --- a/examples/foundational/12b-describe-image-aws.py +++ b/examples/foundational/12b-describe-image-aws.py @@ -80,7 +80,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -93,11 +93,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/12c-describe-image-gemini-flash.py b/examples/foundational/12c-describe-image-gemini-flash.py index a97480a4e..a00465135 100644 --- a/examples/foundational/12c-describe-image-gemini-flash.py +++ b/examples/foundational/12c-describe-image-gemini-flash.py @@ -73,7 +73,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -86,11 +86,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/14-function-calling.py b/examples/foundational/14-function-calling.py index e0bf7de2d..22f84397c 100644 --- a/examples/foundational/14-function-calling.py +++ b/examples/foundational/14-function-calling.py @@ -126,7 +126,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -139,11 +139,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), stt, - context_aggregator.user(), + user_aggregator, llm, tts, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/14a-function-calling-anthropic.py b/examples/foundational/14a-function-calling-anthropic.py index c86abe61a..08133cf83 100644 --- a/examples/foundational/14a-function-calling-anthropic.py +++ b/examples/foundational/14a-function-calling-anthropic.py @@ -121,7 +121,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): messages = [{"role": "user", "content": "Say 'hello' to start the conversation."}] context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -134,11 +134,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User spoken responses + user_aggregator, # User spoken responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses and tool context + assistant_aggregator, # Assistant spoken responses and tool context ] ) diff --git a/examples/foundational/14c-function-calling-together.py b/examples/foundational/14c-function-calling-together.py index dc9ec9f51..a4bf5cd19 100644 --- a/examples/foundational/14c-function-calling-together.py +++ b/examples/foundational/14c-function-calling-together.py @@ -112,7 +112,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -125,11 +125,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), stt, - context_aggregator.user(), + user_aggregator, llm, tts, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/14d-function-calling-anthropic-video.py b/examples/foundational/14d-function-calling-anthropic-video.py index d851b99fc..8097ee988 100644 --- a/examples/foundational/14d-function-calling-anthropic-video.py +++ b/examples/foundational/14d-function-calling-anthropic-video.py @@ -136,7 +136,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -149,11 +149,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/14d-function-calling-aws-video.py b/examples/foundational/14d-function-calling-aws-video.py index 3e8c1785f..b972f4097 100644 --- a/examples/foundational/14d-function-calling-aws-video.py +++ b/examples/foundational/14d-function-calling-aws-video.py @@ -143,7 +143,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -156,11 +156,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/14d-function-calling-gemini-flash-video.py b/examples/foundational/14d-function-calling-gemini-flash-video.py index 2c6a6c6ac..ba9dcd266 100644 --- a/examples/foundational/14d-function-calling-gemini-flash-video.py +++ b/examples/foundational/14d-function-calling-gemini-flash-video.py @@ -136,7 +136,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -149,11 +149,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/14d-function-calling-moondream-video.py b/examples/foundational/14d-function-calling-moondream-video.py index cf244880c..0b10854ea 100644 --- a/examples/foundational/14d-function-calling-moondream-video.py +++ b/examples/foundational/14d-function-calling-moondream-video.py @@ -166,7 +166,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -188,14 +188,14 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User responses + user_aggregator, # User responses ParallelPipeline( [llm], # LLM [moondream, moondream_text_wrapper], ), tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/14d-function-calling-openai-video.py b/examples/foundational/14d-function-calling-openai-video.py index e1c3f52be..3afebe7bb 100644 --- a/examples/foundational/14d-function-calling-openai-video.py +++ b/examples/foundational/14d-function-calling-openai-video.py @@ -136,7 +136,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -149,11 +149,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/14e-function-calling-google.py b/examples/foundational/14e-function-calling-google.py index 69791ffbc..4e7abf997 100644 --- a/examples/foundational/14e-function-calling-google.py +++ b/examples/foundational/14e-function-calling-google.py @@ -189,7 +189,7 @@ indicate you should use the get_image tool are: ] context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -202,11 +202,11 @@ indicate you should use the get_image tool are: [ transport.input(), stt, - context_aggregator.user(), + user_aggregator, llm, tts, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/14f-function-calling-groq.py b/examples/foundational/14f-function-calling-groq.py index 91ed9caa6..989dafb0e 100644 --- a/examples/foundational/14f-function-calling-groq.py +++ b/examples/foundational/14f-function-calling-groq.py @@ -109,7 +109,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -122,11 +122,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), stt, - context_aggregator.user(), + user_aggregator, llm, tts, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/14g-function-calling-grok.py b/examples/foundational/14g-function-calling-grok.py index 8ea41d6aa..cfb52cbc5 100644 --- a/examples/foundational/14g-function-calling-grok.py +++ b/examples/foundational/14g-function-calling-grok.py @@ -105,7 +105,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -118,11 +118,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), stt, - context_aggregator.user(), + user_aggregator, llm, tts, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/14h-function-calling-azure.py b/examples/foundational/14h-function-calling-azure.py index 77e7579de..a108a7779 100644 --- a/examples/foundational/14h-function-calling-azure.py +++ b/examples/foundational/14h-function-calling-azure.py @@ -113,7 +113,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -126,11 +126,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), stt, - context_aggregator.user(), + user_aggregator, llm, tts, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/14i-function-calling-fireworks.py b/examples/foundational/14i-function-calling-fireworks.py index a79ab925f..9b1692430 100644 --- a/examples/foundational/14i-function-calling-fireworks.py +++ b/examples/foundational/14i-function-calling-fireworks.py @@ -116,7 +116,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -129,11 +129,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), stt, - context_aggregator.user(), + user_aggregator, llm, tts, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/14j-function-calling-nvidia.py b/examples/foundational/14j-function-calling-nvidia.py index 3f4dfe8c1..354e0fbdb 100644 --- a/examples/foundational/14j-function-calling-nvidia.py +++ b/examples/foundational/14j-function-calling-nvidia.py @@ -118,7 +118,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -131,11 +131,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), stt, - context_aggregator.user(), + user_aggregator, llm, tts, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/14k-function-calling-cerebras.py b/examples/foundational/14k-function-calling-cerebras.py index 1a5fe4c38..994c29169 100644 --- a/examples/foundational/14k-function-calling-cerebras.py +++ b/examples/foundational/14k-function-calling-cerebras.py @@ -119,7 +119,7 @@ Start by asking me for my location. Then, use 'get_weather_current' to give me a ] context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -132,11 +132,11 @@ Start by asking me for my location. Then, use 'get_weather_current' to give me a [ transport.input(), stt, - context_aggregator.user(), + user_aggregator, llm, tts, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/14l-function-calling-deepseek.py b/examples/foundational/14l-function-calling-deepseek.py index 497af8609..fc9dc5677 100644 --- a/examples/foundational/14l-function-calling-deepseek.py +++ b/examples/foundational/14l-function-calling-deepseek.py @@ -119,7 +119,7 @@ Start by asking me for my location. Then, use 'get_weather_current' to give me a ] context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -132,11 +132,11 @@ Start by asking me for my location. Then, use 'get_weather_current' to give me a [ transport.input(), stt, - context_aggregator.user(), + user_aggregator, llm, tts, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/14m-function-calling-openrouter.py b/examples/foundational/14m-function-calling-openrouter.py index 34c59ef9e..963da638b 100644 --- a/examples/foundational/14m-function-calling-openrouter.py +++ b/examples/foundational/14m-function-calling-openrouter.py @@ -113,7 +113,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -126,11 +126,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), stt, - context_aggregator.user(), + user_aggregator, llm, tts, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/14n-function-calling-perplexity.py b/examples/foundational/14n-function-calling-perplexity.py index d768f3e77..a3745cc5a 100644 --- a/examples/foundational/14n-function-calling-perplexity.py +++ b/examples/foundational/14n-function-calling-perplexity.py @@ -83,7 +83,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -96,11 +96,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), stt, - context_aggregator.user(), + user_aggregator, llm, tts, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/14p-function-calling-gemini-vertex-ai.py b/examples/foundational/14p-function-calling-gemini-vertex-ai.py index bae9def68..0fe2da06d 100644 --- a/examples/foundational/14p-function-calling-gemini-vertex-ai.py +++ b/examples/foundational/14p-function-calling-gemini-vertex-ai.py @@ -114,7 +114,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -127,11 +127,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), stt, - context_aggregator.user(), + user_aggregator, llm, tts, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/14q-function-calling-qwen.py b/examples/foundational/14q-function-calling-qwen.py index 256ff1499..9b6c641ed 100644 --- a/examples/foundational/14q-function-calling-qwen.py +++ b/examples/foundational/14q-function-calling-qwen.py @@ -111,7 +111,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -124,11 +124,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), stt, - context_aggregator.user(), + user_aggregator, llm, tts, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/14r-function-calling-aws.py b/examples/foundational/14r-function-calling-aws.py index 95b7f9d68..ff438ac27 100644 --- a/examples/foundational/14r-function-calling-aws.py +++ b/examples/foundational/14r-function-calling-aws.py @@ -126,7 +126,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -139,11 +139,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), stt, - context_aggregator.user(), + user_aggregator, llm, tts, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/14s-function-calling-sambanova.py b/examples/foundational/14s-function-calling-sambanova.py index fbd1a7176..60076e370 100644 --- a/examples/foundational/14s-function-calling-sambanova.py +++ b/examples/foundational/14s-function-calling-sambanova.py @@ -115,7 +115,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -128,11 +128,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), stt, - context_aggregator.user(), + user_aggregator, llm, tts, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/14t-function-calling-direct.py b/examples/foundational/14t-function-calling-direct.py index 6f682327c..ae6db7564 100644 --- a/examples/foundational/14t-function-calling-direct.py +++ b/examples/foundational/14t-function-calling-direct.py @@ -112,7 +112,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -125,11 +125,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), stt, - context_aggregator.user(), + user_aggregator, llm, tts, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/14u-function-calling-ollama.py b/examples/foundational/14u-function-calling-ollama.py index 5a66b81fe..a76c65dd8 100644 --- a/examples/foundational/14u-function-calling-ollama.py +++ b/examples/foundational/14u-function-calling-ollama.py @@ -127,7 +127,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -140,11 +140,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), stt, - context_aggregator.user(), + user_aggregator, llm, tts, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/14v-function-calling-openai.py b/examples/foundational/14v-function-calling-openai.py index c84b6a78c..ac60c0901 100644 --- a/examples/foundational/14v-function-calling-openai.py +++ b/examples/foundational/14v-function-calling-openai.py @@ -134,7 +134,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -147,11 +147,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), stt, - context_aggregator.user(), + user_aggregator, llm, tts, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/14w-function-calling-mistral.py b/examples/foundational/14w-function-calling-mistral.py index 135328cf8..721726f82 100644 --- a/examples/foundational/14w-function-calling-mistral.py +++ b/examples/foundational/14w-function-calling-mistral.py @@ -122,7 +122,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -135,11 +135,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), stt, - context_aggregator.user(), + user_aggregator, llm, tts, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/14x-function-calling-openpipe.py b/examples/foundational/14x-function-calling-openpipe.py index 0191e18fb..42c951a4e 100644 --- a/examples/foundational/14x-function-calling-openpipe.py +++ b/examples/foundational/14x-function-calling-openpipe.py @@ -132,7 +132,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -145,11 +145,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), stt, - context_aggregator.user(), + user_aggregator, llm, tts, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/15-switch-voices.py b/examples/foundational/15-switch-voices.py index 27e1464aa..ff0a0e9f7 100644 --- a/examples/foundational/15-switch-voices.py +++ b/examples/foundational/15-switch-voices.py @@ -144,7 +144,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -157,11 +157,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS with switch voice functionality transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/15a-switch-languages.py b/examples/foundational/15a-switch-languages.py index 1ce8f4dff..73e818bc5 100644 --- a/examples/foundational/15a-switch-languages.py +++ b/examples/foundational/15a-switch-languages.py @@ -134,7 +134,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -147,11 +147,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS (bot will speak the chosen language) transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/16-gpu-container-local-bot.py b/examples/foundational/16-gpu-container-local-bot.py index 8c547300e..a64edcec2 100644 --- a/examples/foundational/16-gpu-container-local-bot.py +++ b/examples/foundational/16-gpu-container-local-bot.py @@ -88,7 +88,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -101,11 +101,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), + user_aggregator, llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/17-detect-user-idle.py b/examples/foundational/17-detect-user-idle.py index ddef92a5b..f1fe0d068 100644 --- a/examples/foundational/17-detect-user-idle.py +++ b/examples/foundational/17-detect-user-idle.py @@ -78,7 +78,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -119,11 +119,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): transport.input(), # Transport user input stt, user_idle, # Idle user check-in - context_aggregator.user(), + user_aggregator, llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/19-openai-realtime.py b/examples/foundational/19-openai-realtime.py index 2b3750d0b..443a2817b 100644 --- a/examples/foundational/19-openai-realtime.py +++ b/examples/foundational/19-openai-realtime.py @@ -188,10 +188,7 @@ Remember, your responses should be short. Just one or two sentences, usually. Re tools, ) - context_aggregator = LLMContextAggregatorPair(context) - - user_aggregator = context_aggregator.user() - assistant_aggregator = context_aggregator.assistant() + user_aggregator, assistant_aggregator = LLMContextAggregatorPair(context) pipeline = Pipeline( [ diff --git a/examples/foundational/19a-azure-realtime.py b/examples/foundational/19a-azure-realtime.py index 6e245328a..20932da3c 100644 --- a/examples/foundational/19a-azure-realtime.py +++ b/examples/foundational/19a-azure-realtime.py @@ -173,15 +173,15 @@ Remember, your responses should be short. Just one or two sentences, usually. Re tools, ) - context_aggregator = LLMContextAggregatorPair(context) + user_aggregator, assistant_aggregator = LLMContextAggregatorPair(context) pipeline = Pipeline( [ transport.input(), # Transport user input - context_aggregator.user(), + user_aggregator, llm, # LLM transport.output(), # Transport bot output - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/19b-openai-realtime-text.py b/examples/foundational/19b-openai-realtime-text.py index ec254f186..a3190f44c 100644 --- a/examples/foundational/19b-openai-realtime-text.py +++ b/examples/foundational/19b-openai-realtime-text.py @@ -171,16 +171,16 @@ Remember, your responses should be short. Just one or two sentences, usually. Re tools, ) - context_aggregator = LLMContextAggregatorPair(context) + user_aggregator, assistant_aggregator = LLMContextAggregatorPair(context) pipeline = Pipeline( [ transport.input(), # Transport user input - context_aggregator.user(), + user_aggregator, llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/19c-openai-realtime-live-video.py b/examples/foundational/19c-openai-realtime-live-video.py index af48b2355..31369717d 100644 --- a/examples/foundational/19c-openai-realtime-live-video.py +++ b/examples/foundational/19c-openai-realtime-live-video.py @@ -104,15 +104,15 @@ Remember, your responses should be short. Just one or two sentences, usually. Re [{"role": "user", "content": "Say hello!"}], ) - context_aggregator = LLMContextAggregatorPair(context) + user_aggregator, assistant_aggregator = LLMContextAggregatorPair(context) pipeline = Pipeline( [ transport.input(), # Transport user input - context_aggregator.user(), + user_aggregator, llm, # LLM transport.output(), # Transport bot output - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/20a-persistent-context-openai.py b/examples/foundational/20a-persistent-context-openai.py index 502d2d354..ae7c6ca8e 100644 --- a/examples/foundational/20a-persistent-context-openai.py +++ b/examples/foundational/20a-persistent-context-openai.py @@ -201,7 +201,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): llm.register_function("load_conversation", load_conversation) context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -214,11 +214,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), + user_aggregator, llm, # LLM tts, transport.output(), # Transport bot output - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/20b-persistent-context-openai-realtime.py b/examples/foundational/20b-persistent-context-openai-realtime.py index 2133fa628..0d09cf40a 100644 --- a/examples/foundational/20b-persistent-context-openai-realtime.py +++ b/examples/foundational/20b-persistent-context-openai-realtime.py @@ -215,16 +215,16 @@ Remember, your responses should be short. Just one or two sentences, usually.""" llm.register_function("load_conversation", load_conversation) context = LLMContext([{"role": "user", "content": "Say hello!"}], tools) - context_aggregator = LLMContextAggregatorPair(context) + user_aggregator, assistant_aggregator = LLMContextAggregatorPair(context) pipeline = Pipeline( [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), + user_aggregator, llm, # LLM transport.output(), # Transport bot output - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/20c-persistent-context-anthropic.py b/examples/foundational/20c-persistent-context-anthropic.py index 6dac15aa5..be70fd4b9 100644 --- a/examples/foundational/20c-persistent-context-anthropic.py +++ b/examples/foundational/20c-persistent-context-anthropic.py @@ -212,7 +212,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): llm.register_function("load_conversation", load_conversation) context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -225,11 +225,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), + user_aggregator, llm, # LLM tts, transport.output(), # Transport bot output - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/20d-persistent-context-gemini.py b/examples/foundational/20d-persistent-context-gemini.py index 37a2f16a2..a29eb5cf9 100644 --- a/examples/foundational/20d-persistent-context-gemini.py +++ b/examples/foundational/20d-persistent-context-gemini.py @@ -282,7 +282,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): llm.register_function("get_image", get_image) context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -295,11 +295,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), + user_aggregator, llm, # LLM tts, transport.output(), # Transport bot output - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/20e-persistent-context-aws-nova-sonic.py b/examples/foundational/20e-persistent-context-aws-nova-sonic.py index 16801d377..bd95fb7e7 100644 --- a/examples/foundational/20e-persistent-context-aws-nova-sonic.py +++ b/examples/foundational/20e-persistent-context-aws-nova-sonic.py @@ -235,15 +235,15 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ], tools=tools, ) - context_aggregator = LLMContextAggregatorPair(context) + user_aggregator, assistant_aggregator = LLMContextAggregatorPair(context) pipeline = Pipeline( [ transport.input(), # Transport user input - context_aggregator.user(), + user_aggregator, llm, # LLM transport.output(), # Transport bot output - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/20f-persistent-context-grok-realtime.py b/examples/foundational/20f-persistent-context-grok-realtime.py index 3fd73eed5..efa04c732 100644 --- a/examples/foundational/20f-persistent-context-grok-realtime.py +++ b/examples/foundational/20f-persistent-context-grok-realtime.py @@ -203,15 +203,15 @@ Remember, your responses should be short - just one or two sentences usually.""" llm.register_function("load_conversation", load_conversation) context = LLMContext([{"role": "user", "content": "Say hello!"}], tools) - context_aggregator = LLMContextAggregatorPair(context) + user_aggregator, assistant_aggregator = LLMContextAggregatorPair(context) pipeline = Pipeline( [ transport.input(), - context_aggregator.user(), + user_aggregator, llm, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/21-tavus-transport.py b/examples/foundational/21-tavus-transport.py index 940d57bb9..b4f5c159a 100644 --- a/examples/foundational/21-tavus-transport.py +++ b/examples/foundational/21-tavus-transport.py @@ -69,7 +69,7 @@ async def main(): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -84,11 +84,11 @@ async def main(): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/21a-tavus-video-service.py b/examples/foundational/21a-tavus-video-service.py index 64393d49b..0d68e2300 100644 --- a/examples/foundational/21a-tavus-video-service.py +++ b/examples/foundational/21a-tavus-video-service.py @@ -87,7 +87,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -102,12 +102,12 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS tavus, # Tavus output layer transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/22b-natural-conversation-proposal.py b/examples/foundational/22b-natural-conversation-proposal.py index 75f53ad4d..256a6c9df 100644 --- a/examples/foundational/22b-natural-conversation-proposal.py +++ b/examples/foundational/22b-natural-conversation-proposal.py @@ -338,7 +338,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -354,11 +354,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), stt, - context_aggregator.user(), + user_aggregator, llm, tts, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/22c-natural-conversation-mixed-llms.py b/examples/foundational/22c-natural-conversation-mixed-llms.py index b354575cf..bdb557594 100644 --- a/examples/foundational/22c-natural-conversation-mixed-llms.py +++ b/examples/foundational/22c-natural-conversation-mixed-llms.py @@ -541,7 +541,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -557,11 +557,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), stt, - context_aggregator.user(), + user_aggregator, llm, tts, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/22d-natural-conversation-gemini-audio.py b/examples/foundational/22d-natural-conversation-gemini-audio.py index 562364d52..b144f485e 100644 --- a/examples/foundational/22d-natural-conversation-gemini-audio.py +++ b/examples/foundational/22d-natural-conversation-gemini-audio.py @@ -443,6 +443,7 @@ class CompletenessCheck(FrameProcessor): if self._idle_task: await self.cancel_task(self._idle_task) self._idle_task = None + await self.push_frame(frame, direction) elif isinstance(frame, UserStartedSpeakingFrame): if self._idle_task: await self.cancel_task(self._idle_task) @@ -741,7 +742,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ) context = LLMContext() - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -755,10 +756,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): pipeline = Pipeline( [ transport.input(), + user_aggregator, llm, tts, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ], ) diff --git a/examples/foundational/23-bot-background-sound.py b/examples/foundational/23-bot-background-sound.py index c19a91498..1cc944f26 100644 --- a/examples/foundational/23-bot-background-sound.py +++ b/examples/foundational/23-bot-background-sound.py @@ -96,7 +96,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -109,11 +109,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/24-stt-mute-filter.py b/examples/foundational/24-stt-mute-filter.py index 72f9682bb..0c51716b8 100644 --- a/examples/foundational/24-stt-mute-filter.py +++ b/examples/foundational/24-stt-mute-filter.py @@ -117,7 +117,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -131,11 +131,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): transport.input(), # Transport user input stt, # STT stt_mute_processor, # Add the mute processor between STT and context aggregator - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/24-user-mute-strategy.py b/examples/foundational/24-user-mute-strategy.py index 621a2c682..df6619fd4 100644 --- a/examples/foundational/24-user-mute-strategy.py +++ b/examples/foundational/24-user-mute-strategy.py @@ -110,7 +110,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -127,11 +127,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/26a-gemini-live-transcription.py b/examples/foundational/26a-gemini-live-transcription.py index ad91ff2a1..e654fe304 100644 --- a/examples/foundational/26a-gemini-live-transcription.py +++ b/examples/foundational/26a-gemini-live-transcription.py @@ -94,7 +94,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): # }, ], ) - context_aggregator = LLMContextAggregatorPair(context) + user_aggregator, assistant_aggregator = LLMContextAggregatorPair(context) user_aggregator = context_aggregator.user() assistant_aggregator = context_aggregator.assistant() diff --git a/examples/foundational/26b-gemini-live-function-calling.py b/examples/foundational/26b-gemini-live-function-calling.py index 3f054dd65..a16445630 100644 --- a/examples/foundational/26b-gemini-live-function-calling.py +++ b/examples/foundational/26b-gemini-live-function-calling.py @@ -151,15 +151,15 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ], # tools, ) - context_aggregator = LLMContextAggregatorPair(context) + user_aggregator, assistant_aggregator = LLMContextAggregatorPair(context) pipeline = Pipeline( [ transport.input(), - context_aggregator.user(), + user_aggregator, llm, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/26c-gemini-live-video.py b/examples/foundational/26c-gemini-live-video.py index 5b3161cc7..314765bab 100644 --- a/examples/foundational/26c-gemini-live-video.py +++ b/examples/foundational/26c-gemini-live-video.py @@ -74,15 +74,15 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): }, ], ) - context_aggregator = LLMContextAggregatorPair(context) + user_aggregator, assistant_aggregator = LLMContextAggregatorPair(context) pipeline = Pipeline( [ transport.input(), - context_aggregator.user(), + user_aggregator, llm, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/26d-gemini-live-text.py b/examples/foundational/26d-gemini-live-text.py index c4eb62fb7..c51f32d7b 100644 --- a/examples/foundational/26d-gemini-live-text.py +++ b/examples/foundational/26d-gemini-live-text.py @@ -111,16 +111,16 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): # Set up conversation context and management # The context_aggregator will automatically collect conversation context context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair(context) + user_aggregator, assistant_aggregator = LLMContextAggregatorPair(context) pipeline = Pipeline( [ transport.input(), - context_aggregator.user(), + user_aggregator, llm, tts, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/26e-gemini-live-google-search.py b/examples/foundational/26e-gemini-live-google-search.py index bc14cf713..294cf1789 100644 --- a/examples/foundational/26e-gemini-live-google-search.py +++ b/examples/foundational/26e-gemini-live-google-search.py @@ -99,15 +99,15 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): } ], ) - context_aggregator = LLMContextAggregatorPair(context) + user_aggregator, assistant_aggregator = LLMContextAggregatorPair(context) pipeline = Pipeline( [ transport.input(), # Transport user input - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/26f-gemini-live-files-api.py b/examples/foundational/26f-gemini-live-files-api.py index 7f5f3eae2..3b9709869 100644 --- a/examples/foundational/26f-gemini-live-files-api.py +++ b/examples/foundational/26f-gemini-live-files-api.py @@ -163,16 +163,16 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ) # Create context aggregator - context_aggregator = LLMContextAggregatorPair(context) + user_aggregator, assistant_aggregator = LLMContextAggregatorPair(context) # Build the pipeline pipeline = Pipeline( [ transport.input(), - context_aggregator.user(), + user_aggregator, llm, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/26g-gemini-live-groundingMetadata.py b/examples/foundational/26g-gemini-live-groundingMetadata.py index 6626e9b39..1cf2be618 100644 --- a/examples/foundational/26g-gemini-live-groundingMetadata.py +++ b/examples/foundational/26g-gemini-live-groundingMetadata.py @@ -126,16 +126,16 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): # Set up conversation context and management context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair(context) + user_aggregator, assistant_aggregator = LLMContextAggregatorPair(context) pipeline = Pipeline( [ transport.input(), - context_aggregator.user(), + user_aggregator, llm, grounding_processor, # Add our grounding processor here transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/26h-gemini-live-vertex-function-calling.py b/examples/foundational/26h-gemini-live-vertex-function-calling.py index 35eb4ade0..35068e4c5 100644 --- a/examples/foundational/26h-gemini-live-vertex-function-calling.py +++ b/examples/foundational/26h-gemini-live-vertex-function-calling.py @@ -139,15 +139,15 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): llm.register_function("get_restaurant_recommendation", fetch_restaurant_recommendation) context = LLMContext([{"role": "user", "content": "Say hello."}]) - context_aggregator = LLMContextAggregatorPair(context) + user_aggregator, assistant_aggregator = LLMContextAggregatorPair(context) pipeline = Pipeline( [ transport.input(), - context_aggregator.user(), + user_aggregator, llm, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/26i-gemini-live-graceful-end.py b/examples/foundational/26i-gemini-live-graceful-end.py index 5363d7538..dae2bd109 100644 --- a/examples/foundational/26i-gemini-live-graceful-end.py +++ b/examples/foundational/26i-gemini-live-graceful-end.py @@ -156,15 +156,15 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): context = LLMContext( [{"role": "user", "content": "Say hello."}], ) - context_aggregator = LLMContextAggregatorPair(context) + user_aggregator, assistant_aggregator = LLMContextAggregatorPair(context) pipeline = Pipeline( [ transport.input(), - context_aggregator.user(), + user_aggregator, llm, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/27-simli-layer.py b/examples/foundational/27-simli-layer.py index e056e2f20..b89793c6b 100644 --- a/examples/foundational/27-simli-layer.py +++ b/examples/foundational/27-simli-layer.py @@ -85,7 +85,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -98,12 +98,12 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), stt, - context_aggregator.user(), + user_aggregator, llm, tts, simli_ai, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/28-user-assistant-turns.py b/examples/foundational/28-user-assistant-turns.py index da405088f..e870c836b 100644 --- a/examples/foundational/28-user-assistant-turns.py +++ b/examples/foundational/28-user-assistant-turns.py @@ -143,7 +143,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -152,9 +152,6 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ), ) - user_aggregator = context_aggregator.user() - assistant_aggregator = context_aggregator.assistant() - # Create transcript processor and handler transcript_handler = TranscriptHandler() # Output to log only # transcript_handler = TranscriptHandler(output_file="transcript.txt") # Output to file and log diff --git a/examples/foundational/29-turn-tracking-observer.py b/examples/foundational/29-turn-tracking-observer.py index d20996e31..6a9391232 100644 --- a/examples/foundational/29-turn-tracking-observer.py +++ b/examples/foundational/29-turn-tracking-observer.py @@ -78,7 +78,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -91,11 +91,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/30-observer.py b/examples/foundational/30-observer.py index 3a19e3fa3..e26e3280c 100644 --- a/examples/foundational/30-observer.py +++ b/examples/foundational/30-observer.py @@ -125,7 +125,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -138,11 +138,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/32-gemini-grounding-metadata.py b/examples/foundational/32-gemini-grounding-metadata.py index fb515b6af..ff4369224 100644 --- a/examples/foundational/32-gemini-grounding-metadata.py +++ b/examples/foundational/32-gemini-grounding-metadata.py @@ -125,7 +125,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): } ], ) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -138,11 +138,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), stt, - context_aggregator.user(), + user_aggregator, llm, tts, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/33-gemini-rag.py b/examples/foundational/33-gemini-rag.py index 5c50859f2..8df31426b 100644 --- a/examples/foundational/33-gemini-rag.py +++ b/examples/foundational/33-gemini-rag.py @@ -226,7 +226,7 @@ Your response will be turned into speech so use only simple words and punctuatio ] context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -239,11 +239,11 @@ Your response will be turned into speech so use only simple words and punctuatio [ transport.input(), stt, - context_aggregator.user(), + user_aggregator, llm, tts, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) task = PipelineTask( diff --git a/examples/foundational/34-audio-recording.py b/examples/foundational/34-audio-recording.py index d85812d70..6cbac25c6 100644 --- a/examples/foundational/34-audio-recording.py +++ b/examples/foundational/34-audio-recording.py @@ -136,7 +136,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -149,12 +149,12 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), stt, - context_aggregator.user(), + user_aggregator, llm, tts, transport.output(), audiobuffer, # Add audio buffer to pipeline - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/35-pattern-pair-voice-switching.py b/examples/foundational/35-pattern-pair-voice-switching.py index d35a9955c..c90a39b39 100644 --- a/examples/foundational/35-pattern-pair-voice-switching.py +++ b/examples/foundational/35-pattern-pair-voice-switching.py @@ -201,7 +201,7 @@ Remember: Use narrator voice for EVERYTHING except the actual quoted dialogue."" ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -215,11 +215,11 @@ Remember: Use narrator voice for EVERYTHING except the actual quoted dialogue."" [ transport.input(), stt, - context_aggregator.user(), + user_aggregator, llm, tts, # TTS with pattern aggregator transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/36-user-email-gathering.py b/examples/foundational/36-user-email-gathering.py index 2908bce76..1af985235 100644 --- a/examples/foundational/36-user-email-gathering.py +++ b/examples/foundational/36-user-email-gathering.py @@ -117,7 +117,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -130,11 +130,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), stt, - context_aggregator.user(), + user_aggregator, llm, tts, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/37-mem0.py b/examples/foundational/37-mem0.py index 0ba192dda..c82d39edc 100644 --- a/examples/foundational/37-mem0.py +++ b/examples/foundational/37-mem0.py @@ -247,7 +247,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): # Set up conversation context and management # The context_aggregator will automatically collect conversation context context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -262,12 +262,12 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): transport.input(), rtvi, stt, - context_aggregator.user(), + user_aggregator, memory, llm, tts, transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/38-smart-turn-fal.py b/examples/foundational/38-smart-turn-fal.py index 6c20e5a86..05bbba5e9 100644 --- a/examples/foundational/38-smart-turn-fal.py +++ b/examples/foundational/38-smart-turn-fal.py @@ -79,7 +79,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -99,11 +99,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/38a-smart-turn-local-coreml.py b/examples/foundational/38a-smart-turn-local-coreml.py index 1561e3c92..6500add0a 100644 --- a/examples/foundational/38a-smart-turn-local-coreml.py +++ b/examples/foundational/38a-smart-turn-local-coreml.py @@ -94,7 +94,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -113,11 +113,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/38b-smart-turn-local.py b/examples/foundational/38b-smart-turn-local.py index 5a0d76639..37112de4d 100644 --- a/examples/foundational/38b-smart-turn-local.py +++ b/examples/foundational/38b-smart-turn-local.py @@ -78,7 +78,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -94,11 +94,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): transport.input(), # Transport user input rtvi, stt, - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/39-mcp-stdio.py b/examples/foundational/39-mcp-stdio.py index 6d29cded1..02b4b2295 100644 --- a/examples/foundational/39-mcp-stdio.py +++ b/examples/foundational/39-mcp-stdio.py @@ -192,7 +192,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): messages = [{"role": "system", "content": system}] context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -207,12 +207,12 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User spoken responses + user_aggregator, # User spoken responses llm, # LLM tts, # TTS mcp_image, # URL image -> output transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses and tool context + assistant_aggregator, # Assistant spoken responses and tool context ] ) diff --git a/examples/foundational/39a-mcp-streamable-http.py b/examples/foundational/39a-mcp-streamable-http.py index 6b59e66bd..6bd8fad61 100644 --- a/examples/foundational/39a-mcp-streamable-http.py +++ b/examples/foundational/39a-mcp-streamable-http.py @@ -105,7 +105,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): messages = [{"role": "system", "content": system}] context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -118,11 +118,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User spoken responses + user_aggregator, # User spoken responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses and tool context + assistant_aggregator, # Assistant spoken responses and tool context ] ) diff --git a/examples/foundational/39b-mcp-streamable-http-gemini-live.py b/examples/foundational/39b-mcp-streamable-http-gemini-live.py index f83b741a9..6294d9d71 100644 --- a/examples/foundational/39b-mcp-streamable-http-gemini-live.py +++ b/examples/foundational/39b-mcp-streamable-http-gemini-live.py @@ -109,7 +109,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): await mcp.register_tools_schema(tools, llm) context = LLMContext([{"role": "user", "content": "Please introduce yourself."}]) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -121,10 +121,10 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): pipeline = Pipeline( [ transport.input(), # Transport user input - context_aggregator.user(), # User spoken responses + user_aggregator, # User spoken responses llm, # LLM transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses and tool context + assistant_aggregator, # Assistant spoken responses and tool context ] ) diff --git a/examples/foundational/39c-multiple-mcp.py b/examples/foundational/39c-multiple-mcp.py index 9a6fe0d12..6141b371e 100644 --- a/examples/foundational/39c-multiple-mcp.py +++ b/examples/foundational/39c-multiple-mcp.py @@ -193,7 +193,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): all_tools = ToolsSchema(standard_tools=all_standard_tools) context = LLMContext(messages, all_tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -209,12 +209,12 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User spoken responses + user_aggregator, # User spoken responses llm, # LLM tts, # TTS mcp_image_processor, # URL image -> output transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses and tool context + assistant_aggregator, # Assistant spoken responses and tool context ] ) diff --git a/examples/foundational/40-aws-nova-sonic.py b/examples/foundational/40-aws-nova-sonic.py index 42eac74a8..f80bc5220 100644 --- a/examples/foundational/40-aws-nova-sonic.py +++ b/examples/foundational/40-aws-nova-sonic.py @@ -156,10 +156,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ], tools=tools, ) - context_aggregator = LLMContextAggregatorPair(context) - - user_aggregator = context_aggregator.user() - assistant_aggregator = context_aggregator.assistant() + user_aggregator, assistant_aggregator = LLMContextAggregatorPair(context) # Build the pipeline pipeline = Pipeline( diff --git a/examples/foundational/42-interruption-config.py b/examples/foundational/42-interruption-config.py index 46937abfa..c70e54c2d 100644 --- a/examples/foundational/42-interruption-config.py +++ b/examples/foundational/42-interruption-config.py @@ -79,7 +79,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -93,11 +93,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/43-heygen-transport.py b/examples/foundational/43-heygen-transport.py index cda625f1f..42f44c3f9 100644 --- a/examples/foundational/43-heygen-transport.py +++ b/examples/foundational/43-heygen-transport.py @@ -67,7 +67,7 @@ async def main(): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -82,11 +82,11 @@ async def main(): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/43a-heygen-video-service.py b/examples/foundational/43a-heygen-video-service.py index 10ce8b677..9257fbc77 100644 --- a/examples/foundational/43a-heygen-video-service.py +++ b/examples/foundational/43a-heygen-video-service.py @@ -88,7 +88,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -103,12 +103,12 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS heyGen, # Avatar transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/44-voicemail-detection.py b/examples/foundational/44-voicemail-detection.py index 9c57343cc..baa76a05f 100644 --- a/examples/foundational/44-voicemail-detection.py +++ b/examples/foundational/44-voicemail-detection.py @@ -80,7 +80,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -94,12 +94,12 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): transport.input(), stt, voicemail.detector(), # Voicemail detection — between STT and User context aggregator - context_aggregator.user(), + user_aggregator, llm, tts, voicemail.gate(), # TTS gating — Immediately after the TTS service transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/45-before-and-after-events.py b/examples/foundational/45-before-and-after-events.py index a62cee730..c6f9376e5 100644 --- a/examples/foundational/45-before-and-after-events.py +++ b/examples/foundational/45-before-and-after-events.py @@ -88,7 +88,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -101,11 +101,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/46-video-processing.py b/examples/foundational/46-video-processing.py index e2afc4d0e..c35843eab 100644 --- a/examples/foundational/46-video-processing.py +++ b/examples/foundational/46-video-processing.py @@ -116,7 +116,7 @@ async def run_bot(pipecat_transport): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -131,7 +131,7 @@ async def run_bot(pipecat_transport): pipeline = Pipeline( [ pipecat_transport.input(), - context_aggregator.user(), + user_aggregator, rtvi, llm, # LLM EdgeDetectionProcessor( @@ -139,7 +139,7 @@ async def run_bot(pipecat_transport): pipecat_transport._params.video_out_height, ), # Sending the video back to the user pipecat_transport.output(), - context_aggregator.assistant(), + assistant_aggregator, ] ) diff --git a/examples/foundational/47-sentry-metrics.py b/examples/foundational/47-sentry-metrics.py index ac0a9e6b5..1b74210a1 100644 --- a/examples/foundational/47-sentry-metrics.py +++ b/examples/foundational/47-sentry-metrics.py @@ -91,7 +91,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -104,11 +104,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/48-service-switcher.py b/examples/foundational/48-service-switcher.py index a28d5750a..97b06a44a 100644 --- a/examples/foundational/48-service-switcher.py +++ b/examples/foundational/48-service-switcher.py @@ -136,7 +136,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): tools = ToolsSchema(standard_tools=[weather_function, get_restaurant_recommendation]) context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -149,11 +149,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt_switcher, - context_aggregator.user(), # User responses + user_aggregator, # User responses llm_switcher, # LLM tts_switcher, # TTS transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/examples/foundational/49a-thinking-anthropic.py b/examples/foundational/49a-thinking-anthropic.py index 80477ff14..d813aeee5 100644 --- a/examples/foundational/49a-thinking-anthropic.py +++ b/examples/foundational/49a-thinking-anthropic.py @@ -82,7 +82,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -91,9 +91,6 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ), ) - user_aggregator = context_aggregator.user() - assistant_aggregator = context_aggregator.assistant() - pipeline = Pipeline( [ transport.input(), # Transport user input diff --git a/examples/foundational/49b-thinking-google.py b/examples/foundational/49b-thinking-google.py index e0c9dcd6e..40cd48f31 100644 --- a/examples/foundational/49b-thinking-google.py +++ b/examples/foundational/49b-thinking-google.py @@ -87,7 +87,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -96,9 +96,6 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ), ) - user_aggregator = context_aggregator.user() - assistant_aggregator = context_aggregator.assistant() - pipeline = Pipeline( [ transport.input(), # Transport user input diff --git a/examples/foundational/49c-thinking-functions-anthropic.py b/examples/foundational/49c-thinking-functions-anthropic.py index b18f672f6..33ea3ff0d 100644 --- a/examples/foundational/49c-thinking-functions-anthropic.py +++ b/examples/foundational/49c-thinking-functions-anthropic.py @@ -108,7 +108,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -117,9 +117,6 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ), ) - user_aggregator = context_aggregator.user() - assistant_aggregator = context_aggregator.assistant() - pipeline = Pipeline( [ transport.input(), # Transport user input diff --git a/examples/foundational/49d-thinking-functions-google.py b/examples/foundational/49d-thinking-functions-google.py index 0595279b8..1a74da3ff 100644 --- a/examples/foundational/49d-thinking-functions-google.py +++ b/examples/foundational/49d-thinking-functions-google.py @@ -113,7 +113,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ] context = LLMContext(messages, tools) - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -122,9 +122,6 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): ), ) - user_aggregator = context_aggregator.user() - assistant_aggregator = context_aggregator.assistant() - pipeline = Pipeline( [ transport.input(), # Transport user input diff --git a/examples/foundational/50-ultravox-realtime.py b/examples/foundational/50-ultravox-realtime.py index 095131cc6..51c298d77 100644 --- a/examples/foundational/50-ultravox-realtime.py +++ b/examples/foundational/50-ultravox-realtime.py @@ -170,15 +170,15 @@ There is also a secret menu that changes daily. If the user asks about it, use t llm.register_function("get_secret_menu", get_secret_menu) # Necessary to complete the function call lifecycle in Pipecat. - context_aggregator = LLMContextAggregatorPair(LLMContext([])) + user_aggregator, assistant_aggregator = LLMContextAggregatorPair(LLMContext([])) # Build the pipeline pipeline = Pipeline( [ transport.input(), - context_aggregator.user(), + user_aggregator, llm, - context_aggregator.assistant(), + assistant_aggregator, transport.output(), ] ) diff --git a/examples/foundational/51-grok-realtime.py b/examples/foundational/51-grok-realtime.py index ee795270a..6a2fbe5a2 100644 --- a/examples/foundational/51-grok-realtime.py +++ b/examples/foundational/51-grok-realtime.py @@ -215,10 +215,7 @@ Always be helpful and proactive in offering assistance.""", tools, ) - context_aggregator = LLMContextAggregatorPair(context) - - user_aggregator = context_aggregator.user() - assistant_aggregator = context_aggregator.assistant() + user_aggregator, assistant_aggregator = LLMContextAggregatorPair(context) # Build the pipeline # Note: In realtime mode, transcription comes from Grok (upstream), diff --git a/examples/foundational/52-live-translation.py b/examples/foundational/52-live-translation.py index d92acb309..347c0a99e 100644 --- a/examples/foundational/52-live-translation.py +++ b/examples/foundational/52-live-translation.py @@ -83,7 +83,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): # every time a transcription is received. We disable interruptions, so the # user can continue speaking while the bot is transcribing, without # interrupting the bot. - context_aggregator = LLMContextAggregatorPair( + user_aggregator, assistant_aggregator = LLMContextAggregatorPair( context, user_params=LLMUserAggregatorParams( user_turn_strategies=UserTurnStrategies( @@ -97,11 +97,11 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments): [ transport.input(), # Transport user input stt, # STT - context_aggregator.user(), # User responses + user_aggregator, # User responses llm, # LLM tts, # TTS (bot will speak the chosen language) transport.output(), # Transport bot output - context_aggregator.assistant(), # Assistant spoken responses + assistant_aggregator, # Assistant spoken responses ] ) diff --git a/src/pipecat/processors/aggregators/llm_response_universal.py b/src/pipecat/processors/aggregators/llm_response_universal.py index 901e5c62c..85050e6d0 100644 --- a/src/pipecat/processors/aggregators/llm_response_universal.py +++ b/src/pipecat/processors/aggregators/llm_response_universal.py @@ -1052,3 +1052,15 @@ class LLMContextAggregatorPair: The assistant context aggregator instance. """ return self._assistant + + def __iter__(self): + """Allow tuple unpacking of the aggregator pair. + + This enables both usage patterns:: + pair = LLMContextAggregatorPair(context) # Returns the instance + user, assistant = LLMContextAggregatorPair(context) # Unpacks into tuple + + Yields: + The user aggregator, then the assistant aggregator. + """ + return iter((self._user, self._assistant))