Make clearer the distinction between "storage-mode" and "delta-mode" usage of *Settings objects

- Storage mode: for use in `self._settings`. All fields should be specified, i.e. should not be `NOT_GIVEN`.
- Delta mode: for use in `*UpdateSettingsFrame`.

In service of this, this commit:
- Adds a runtime check that all fields are specified in storage mode
- Updates all services to specify all fields in stored settings
- Updates all services to no longer check for `is_given` in stored settings (not necessary anymore)
- Updates relevant docstrings
- Renames `update` to `delta` in `*UpdateSettingsFrame`
- Updates community integrations guide
This commit is contained in:
Paul Kompfner
2026-02-24 10:52:05 -05:00
parent 57d25c564c
commit bcc2b4def4
145 changed files with 732 additions and 587 deletions

View File

@@ -103,7 +103,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Deepgram Flux STT settings: language=es")
await task.queue_frame(
STTUpdateSettingsFrame(update=DeepgramFluxSTTSettings(language=Language.ES))
STTUpdateSettingsFrame(delta=DeepgramFluxSTTSettings(language=Language.ES))
)
@transport.event_handler("on_client_disconnected")

View File

@@ -109,7 +109,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Deepgram SageMaker STT settings: language=es")
await task.queue_frame(
STTUpdateSettingsFrame(update=DeepgramSageMakerSTTSettings(language=Language.ES))
STTUpdateSettingsFrame(delta=DeepgramSageMakerSTTSettings(language=Language.ES))
)
@transport.event_handler("on_client_disconnected")

View File

@@ -103,7 +103,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Deepgram STT settings: language=es")
await task.queue_frame(
STTUpdateSettingsFrame(update=DeepgramSTTSettings(language=Language.ES))
STTUpdateSettingsFrame(delta=DeepgramSTTSettings(language=Language.ES))
)
@transport.event_handler("on_client_disconnected")

View File

@@ -105,9 +105,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Azure STT settings: language=es")
await task.queue_frame(
STTUpdateSettingsFrame(update=AzureSTTSettings(language=Language.ES))
)
await task.queue_frame(STTUpdateSettingsFrame(delta=AzureSTTSettings(language=Language.ES)))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -103,7 +103,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Google STT settings: language=es")
await task.queue_frame(
STTUpdateSettingsFrame(update=GoogleSTTSettings(language=Language.ES))
STTUpdateSettingsFrame(delta=GoogleSTTSettings(language=Language.ES))
)
@transport.event_handler("on_client_disconnected")

View File

@@ -103,7 +103,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating AssemblyAI STT settings: language=es")
await task.queue_frame(
STTUpdateSettingsFrame(update=AssemblyAISTTSettings(language=Language.ES))
STTUpdateSettingsFrame(delta=AssemblyAISTTSettings(language=Language.ES))
)
@transport.event_handler("on_client_disconnected")

View File

@@ -103,7 +103,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Gladia STT settings: language=es")
await task.queue_frame(
STTUpdateSettingsFrame(update=GladiaSTTSettings(language=Language.ES))
STTUpdateSettingsFrame(delta=GladiaSTTSettings(language=Language.ES))
)
@transport.event_handler("on_client_disconnected")

View File

@@ -106,7 +106,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating ElevenLabs Realtime STT settings: language=es")
await task.queue_frame(
STTUpdateSettingsFrame(update=ElevenLabsRealtimeSTTSettings(language=Language.ES))
STTUpdateSettingsFrame(delta=ElevenLabsRealtimeSTTSettings(language=Language.ES))
)
@transport.event_handler("on_client_disconnected")

View File

@@ -108,7 +108,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating ElevenLabs STT settings: language=es")
await task.queue_frame(
STTUpdateSettingsFrame(update=ElevenLabsSTTSettings(language=Language.ES))
STTUpdateSettingsFrame(delta=ElevenLabsSTTSettings(language=Language.ES))
)
@transport.event_handler("on_client_disconnected")

View File

@@ -110,13 +110,13 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Speechmatics STT settings: language=es")
await task.queue_frame(
STTUpdateSettingsFrame(update=SpeechmaticsSTTSettings(language=Language.ES))
STTUpdateSettingsFrame(delta=SpeechmaticsSTTSettings(language=Language.ES))
)
await asyncio.sleep(10)
logger.info("Updating Speechmatics STT settings: focus_speakers=['S1']")
await task.queue_frame(
STTUpdateSettingsFrame(update=SpeechmaticsSTTSettings(focus_speakers=["S1"]))
STTUpdateSettingsFrame(delta=SpeechmaticsSTTSettings(focus_speakers=["S1"]))
)
await asyncio.sleep(10)
@@ -125,7 +125,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
)
await task.queue_frame(
STTUpdateSettingsFrame(
update=SpeechmaticsSTTSettings(
delta=SpeechmaticsSTTSettings(
speaker_active_format="<SPEAKER_{speaker_id}>{text}</SPEAKER_{speaker_id}>"
)
)

View File

@@ -108,7 +108,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info('Updating OpenAI STT settings: language="es"')
await task.queue_frame(STTUpdateSettingsFrame(update=BaseWhisperSTTSettings(language="es")))
await task.queue_frame(STTUpdateSettingsFrame(delta=BaseWhisperSTTSettings(language="es")))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -103,7 +103,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Sarvam STT settings: language=en-IN")
await task.queue_frame(
STTUpdateSettingsFrame(update=SarvamSTTSettings(language=Language.EN_IN))
STTUpdateSettingsFrame(delta=SarvamSTTSettings(language=Language.EN_IN))
)
@transport.event_handler("on_client_disconnected")

View File

@@ -103,7 +103,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Soniox STT settings: language=es")
await task.queue_frame(
STTUpdateSettingsFrame(update=SonioxSTTSettings(language=Language.ES))
STTUpdateSettingsFrame(delta=SonioxSTTSettings(language=Language.ES))
)
@transport.event_handler("on_client_disconnected")

View File

@@ -103,7 +103,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating AWS Transcribe STT settings: language=es")
await task.queue_frame(
STTUpdateSettingsFrame(update=AWSTranscribeSTTSettings(language=Language.ES))
STTUpdateSettingsFrame(delta=AWSTranscribeSTTSettings(language=Language.ES))
)
@transport.event_handler("on_client_disconnected")

View File

@@ -103,7 +103,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Cartesia STT settings: language=es")
await task.queue_frame(
STTUpdateSettingsFrame(update=CartesiaSTTSettings(language=Language.ES))
STTUpdateSettingsFrame(delta=CartesiaSTTSettings(language=Language.ES))
)
@transport.event_handler("on_client_disconnected")

View File

@@ -107,7 +107,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
logger.info("Updating Cartesia HTTP TTS settings: speed increased to 1.5")
await task.queue_frame(
TTSUpdateSettingsFrame(
update=CartesiaTTSSettings(generation_config=GenerationConfig(speed=1.5))
delta=CartesiaTTSSettings(generation_config=GenerationConfig(speed=1.5))
)
)

View File

@@ -106,7 +106,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
logger.info("Updating Cartesia TTS settings: speed increased to 1.5")
await task.queue_frame(
TTSUpdateSettingsFrame(
update=CartesiaTTSSettings(generation_config=GenerationConfig(speed=1.5))
delta=CartesiaTTSSettings(generation_config=GenerationConfig(speed=1.5))
)
)

View File

@@ -107,7 +107,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating ElevenLabs TTS settings: speed=0.7")
await task.queue_frame(
TTSUpdateSettingsFrame(update=ElevenLabsHttpTTSSettings(speed=0.7))
TTSUpdateSettingsFrame(delta=ElevenLabsHttpTTSSettings(speed=0.7))
)
@transport.event_handler("on_client_disconnected")

View File

@@ -102,13 +102,13 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating ElevenLabs TTS settings: speed=0.7")
await task.queue_frame(TTSUpdateSettingsFrame(update=ElevenLabsTTSSettings(speed=0.7)))
await task.queue_frame(TTSUpdateSettingsFrame(delta=ElevenLabsTTSSettings(speed=0.7)))
await asyncio.sleep(10)
logger.info("Updating ElevenLabs TTS settings: switching to a different voice")
await task.queue_frame(
TTSUpdateSettingsFrame(
update=ElevenLabsTTSSettings(voice=os.getenv("ELEVENLABS_VOICE_ID_ALT"))
delta=ElevenLabsTTSSettings(voice=os.getenv("ELEVENLABS_VOICE_ID_ALT"))
)
)

View File

@@ -99,7 +99,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating OpenAI TTS settings: speed=2.0")
await task.queue_frame(TTSUpdateSettingsFrame(update=OpenAITTSSettings(speed=2.0)))
await task.queue_frame(TTSUpdateSettingsFrame(delta=OpenAITTSSettings(speed=2.0)))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -106,13 +106,13 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info('Updating Deepgram TTS settings: voice="aura-2-aries-en"')
await task.queue_frame(
TTSUpdateSettingsFrame(update=DeepgramTTSSettings(voice="aura-2-aries-en"))
TTSUpdateSettingsFrame(delta=DeepgramTTSSettings(voice="aura-2-aries-en"))
)
await asyncio.sleep(10)
logger.info('Updating Deepgram TTS settings: voice="aura-2-luna-en"')
await task.queue_frame(
TTSUpdateSettingsFrame(update=DeepgramTTSSettings(voice="aura-2-luna-en"))
TTSUpdateSettingsFrame(delta=DeepgramTTSSettings(voice="aura-2-luna-en"))
)
@transport.event_handler("on_client_disconnected")

View File

@@ -106,13 +106,13 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info('Updating Deepgram SageMaker TTS settings: voice="aura-2-aries-en"')
await task.queue_frame(
TTSUpdateSettingsFrame(update=DeepgramSageMakerTTSSettings(voice="aura-2-aries-en"))
TTSUpdateSettingsFrame(delta=DeepgramSageMakerTTSSettings(voice="aura-2-aries-en"))
)
await asyncio.sleep(10)
logger.info('Updating Deepgram SageMaker TTS settings: voice="aura-2-luna-en"')
await task.queue_frame(
TTSUpdateSettingsFrame(update=DeepgramSageMakerTTSSettings(voice="aura-2-luna-en"))
TTSUpdateSettingsFrame(delta=DeepgramSageMakerTTSSettings(voice="aura-2-luna-en"))
)
@transport.event_handler("on_client_disconnected")

View File

@@ -99,13 +99,13 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info('Updating Deepgram TTS settings: voice="aura-2-aries-en"')
await task.queue_frame(
TTSUpdateSettingsFrame(update=DeepgramTTSSettings(voice="aura-2-aries-en"))
TTSUpdateSettingsFrame(delta=DeepgramTTSSettings(voice="aura-2-aries-en"))
)
await asyncio.sleep(10)
logger.info('Updating Deepgram TTS settings: voice="aura-2-luna-en"')
await task.queue_frame(
TTSUpdateSettingsFrame(update=DeepgramTTSSettings(voice="aura-2-luna-en"))
TTSUpdateSettingsFrame(delta=DeepgramTTSSettings(voice="aura-2-luna-en"))
)
@transport.event_handler("on_client_disconnected")

View File

@@ -102,7 +102,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info('Updating Azure TTS settings: rate="0.7", style="sad"')
await task.queue_frame(
TTSUpdateSettingsFrame(update=AzureTTSSettings(rate="0.7", style="sad"))
TTSUpdateSettingsFrame(delta=AzureTTSSettings(rate="0.7", style="sad"))
)
@transport.event_handler("on_client_disconnected")

View File

@@ -102,7 +102,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info('Updating Azure TTS settings: rate="0.7", style="sad"')
await task.queue_frame(
TTSUpdateSettingsFrame(update=AzureTTSSettings(rate="0.7", style="sad"))
TTSUpdateSettingsFrame(delta=AzureTTSSettings(rate="0.7", style="sad"))
)
@transport.event_handler("on_client_disconnected")

View File

@@ -99,7 +99,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Google HTTP TTS settings: speaking_rate=1.4")
await task.queue_frame(
TTSUpdateSettingsFrame(update=GoogleHttpTTSSettings(speaking_rate=1.4))
TTSUpdateSettingsFrame(delta=GoogleHttpTTSSettings(speaking_rate=1.4))
)
@transport.event_handler("on_client_disconnected")

View File

@@ -99,7 +99,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Google Stream TTS settings: speaking_rate=1.4")
await task.queue_frame(
TTSUpdateSettingsFrame(update=GoogleStreamTTSSettings(speaking_rate=1.4))
TTSUpdateSettingsFrame(delta=GoogleStreamTTSSettings(speaking_rate=1.4))
)
@transport.event_handler("on_client_disconnected")

View File

@@ -102,7 +102,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating PlayHT TTS settings: speed=1.3")
await task.queue_frame(TTSUpdateSettingsFrame(update=PlayHTTTSSettings(speed=1.3)))
await task.queue_frame(TTSUpdateSettingsFrame(delta=PlayHTTTSSettings(speed=1.3)))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -104,7 +104,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Rime TTS settings: voice=rex")
await task.queue_frame(TTSUpdateSettingsFrame(update=RimeTTSSettings(voice="rex")))
await task.queue_frame(TTSUpdateSettingsFrame(delta=RimeTTSSettings(voice="rex")))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -101,7 +101,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Rime TTS settings: voice=bond")
await task.queue_frame(TTSUpdateSettingsFrame(update=RimeTTSSettings(voice="bond")))
await task.queue_frame(TTSUpdateSettingsFrame(delta=RimeTTSSettings(voice="bond")))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -101,7 +101,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info('Updating LMNT TTS settings: voice="tyler"')
await task.queue_frame(TTSUpdateSettingsFrame(update=LmntTTSSettings(voice="tyler")))
await task.queue_frame(TTSUpdateSettingsFrame(delta=LmntTTSSettings(voice="tyler")))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -102,7 +102,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Fish Audio TTS settings: prosody_speed=1.5")
await task.queue_frame(
TTSUpdateSettingsFrame(update=FishAudioTTSSettings(prosody_speed=1.5))
TTSUpdateSettingsFrame(delta=FishAudioTTSSettings(prosody_speed=1.5))
)
@transport.event_handler("on_client_disconnected")

View File

@@ -105,7 +105,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info('Updating MiniMax TTS settings: speed=1.5, emotion="happy"')
await task.queue_frame(
TTSUpdateSettingsFrame(update=MiniMaxTTSSettings(speed=1.5, emotion="happy"))
TTSUpdateSettingsFrame(delta=MiniMaxTTSSettings(speed=1.5, emotion="happy"))
)
@transport.event_handler("on_client_disconnected")

View File

@@ -98,7 +98,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Groq TTS settings: speed=1.5")
await task.queue_frame(TTSUpdateSettingsFrame(update=GroqTTSSettings(speed=1.5)))
await task.queue_frame(TTSUpdateSettingsFrame(delta=GroqTTSSettings(speed=1.5)))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -103,7 +103,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
logger.info('Updating Hume TTS settings: speed=2.0, description="Speak with excitement"')
await task.queue_frame(
TTSUpdateSettingsFrame(
update=HumeTTSSettings(speed=2.0, description="Speak with excitement")
delta=HumeTTSSettings(speed=2.0, description="Speak with excitement")
)
)

View File

@@ -103,7 +103,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Neuphonic HTTP TTS settings: speed=1.4")
await task.queue_frame(TTSUpdateSettingsFrame(update=NeuphonicTTSSettings(speed=1.4)))
await task.queue_frame(TTSUpdateSettingsFrame(delta=NeuphonicTTSSettings(speed=1.4)))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -98,7 +98,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Neuphonic TTS settings: speed=1.4")
await task.queue_frame(TTSUpdateSettingsFrame(update=NeuphonicTTSSettings(speed=1.4)))
await task.queue_frame(TTSUpdateSettingsFrame(delta=NeuphonicTTSSettings(speed=1.4)))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -103,9 +103,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Inworld TTS settings: speaking_rate=1.5, temperature=0.8")
await task.queue_frame(
TTSUpdateSettingsFrame(
update=InworldTTSSettings(speaking_rate=1.5, temperature=0.8)
)
TTSUpdateSettingsFrame(delta=InworldTTSSettings(speaking_rate=1.5, temperature=0.8))
)
@transport.event_handler("on_client_disconnected")

View File

@@ -99,7 +99,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Inworld TTS settings: speaking_rate=1.5, temperature=0.8")
await task.queue_frame(
TTSUpdateSettingsFrame(update=InworldTTSSettings(speaking_rate=1.5, temperature=0.8))
TTSUpdateSettingsFrame(delta=InworldTTSSettings(speaking_rate=1.5, temperature=0.8))
)
@transport.event_handler("on_client_disconnected")

View File

@@ -108,7 +108,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info('Updating Gemini TTS settings: prompt="Speak slowly and dramatically"')
await task.queue_frame(
TTSUpdateSettingsFrame(update=GeminiTTSSettings(prompt="Speak slowly and dramatically"))
TTSUpdateSettingsFrame(delta=GeminiTTSSettings(prompt="Speak slowly and dramatically"))
)
@transport.event_handler("on_client_disconnected")

View File

@@ -98,7 +98,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info('Updating AWS Polly TTS settings: rate="fast"')
await task.queue_frame(TTSUpdateSettingsFrame(update=AWSPollyTTSSettings(rate="fast")))
await task.queue_frame(TTSUpdateSettingsFrame(delta=AWSPollyTTSSettings(rate="fast")))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -102,7 +102,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Sarvam TTS settings: pace=1.5")
await task.queue_frame(TTSUpdateSettingsFrame(update=SarvamHttpTTSSettings(pace=1.5)))
await task.queue_frame(TTSUpdateSettingsFrame(delta=SarvamHttpTTSSettings(pace=1.5)))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -98,7 +98,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Sarvam TTS settings: pace=1.5")
await task.queue_frame(TTSUpdateSettingsFrame(update=SarvamTTSSettings(pace=1.5)))
await task.queue_frame(TTSUpdateSettingsFrame(delta=SarvamTTSSettings(pace=1.5)))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -99,7 +99,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Camb TTS settings: language -> Spanish")
await task.queue_frame(TTSUpdateSettingsFrame(update=CambTTSSettings(language=Language.ES)))
await task.queue_frame(TTSUpdateSettingsFrame(delta=CambTTSSettings(language=Language.ES)))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -101,7 +101,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Hathora TTS settings: speed=1.3")
await task.queue_frame(TTSUpdateSettingsFrame(update=HathoraTTSSettings(speed=1.3)))
await task.queue_frame(TTSUpdateSettingsFrame(delta=HathoraTTSSettings(speed=1.3)))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -103,7 +103,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
logger.info("Updating ResembleAI TTS settings: voice (changed)")
await task.queue_frame(
TTSUpdateSettingsFrame(
update=ResembleAITTSSettings(voice=os.getenv("RESEMBLE_VOICE_UUID_ALT"))
delta=ResembleAITTSSettings(voice=os.getenv("RESEMBLE_VOICE_UUID_ALT"))
)
)

View File

@@ -106,7 +106,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Azure LLM settings: temperature=0.1")
await task.queue_frame(LLMUpdateSettingsFrame(update=OpenAILLMSettings(temperature=0.1)))
await task.queue_frame(LLMUpdateSettingsFrame(delta=OpenAILLMSettings(temperature=0.1)))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -102,7 +102,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating OpenAI LLM settings: temperature=0.1")
await task.queue_frame(LLMUpdateSettingsFrame(update=OpenAILLMSettings(temperature=0.1)))
await task.queue_frame(LLMUpdateSettingsFrame(delta=OpenAILLMSettings(temperature=0.1)))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -101,7 +101,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Anthropic LLM settings: temperature=0.1")
await task.queue_frame(LLMUpdateSettingsFrame(update=AnthropicLLMSettings(temperature=0.1)))
await task.queue_frame(LLMUpdateSettingsFrame(delta=AnthropicLLMSettings(temperature=0.1)))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -101,7 +101,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Google LLM settings: temperature=0.1")
await task.queue_frame(LLMUpdateSettingsFrame(update=GoogleLLMSettings(temperature=0.1)))
await task.queue_frame(LLMUpdateSettingsFrame(delta=GoogleLLMSettings(temperature=0.1)))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -106,7 +106,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Google Vertex LLM settings: temperature=0.1")
await task.queue_frame(LLMUpdateSettingsFrame(update=GoogleLLMSettings(temperature=0.1)))
await task.queue_frame(LLMUpdateSettingsFrame(delta=GoogleLLMSettings(temperature=0.1)))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -102,7 +102,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
logger.info("Updating Azure Realtime LLM settings: output_modalities=['text']")
await task.queue_frame(
LLMUpdateSettingsFrame(
update=OpenAIRealtimeLLMSettings(
delta=OpenAIRealtimeLLMSettings(
session_properties=events.SessionProperties(output_modalities=["text"])
)
)
@@ -112,7 +112,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
logger.info("Updating Azure Realtime LLM settings: output_modalities=['audio']")
await task.queue_frame(
LLMUpdateSettingsFrame(
update=OpenAIRealtimeLLMSettings(
delta=OpenAIRealtimeLLMSettings(
session_properties=events.SessionProperties(output_modalities=["audio"])
)
)

View File

@@ -101,7 +101,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
logger.info("Updating OpenAI Realtime LLM settings: output_modalities=['text']")
await task.queue_frame(
LLMUpdateSettingsFrame(
update=OpenAIRealtimeLLMSettings(
delta=OpenAIRealtimeLLMSettings(
session_properties=events.SessionProperties(output_modalities=["text"])
)
)
@@ -111,7 +111,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
logger.info("Updating OpenAI Realtime LLM settings: output_modalities=['audio']")
await task.queue_frame(
LLMUpdateSettingsFrame(
update=OpenAIRealtimeLLMSettings(
delta=OpenAIRealtimeLLMSettings(
session_properties=events.SessionProperties(output_modalities=["audio"])
)
)

View File

@@ -91,9 +91,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Gemini Live Vertex LLM settings: temperature=0.1")
await task.queue_frame(
LLMUpdateSettingsFrame(update=GeminiLiveLLMSettings(temperature=0.1))
)
await task.queue_frame(LLMUpdateSettingsFrame(delta=GeminiLiveLLMSettings(temperature=0.1)))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -89,9 +89,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Gemini Live LLM settings: temperature=0.1")
await task.queue_frame(
LLMUpdateSettingsFrame(update=GeminiLiveLLMSettings(temperature=0.1))
)
await task.queue_frame(LLMUpdateSettingsFrame(delta=GeminiLiveLLMSettings(temperature=0.1)))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -112,13 +112,13 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Ultravox Realtime LLM settings: output_medium=text")
await task.queue_frame(
LLMUpdateSettingsFrame(update=UltravoxRealtimeLLMSettings(output_medium="text"))
LLMUpdateSettingsFrame(delta=UltravoxRealtimeLLMSettings(output_medium="text"))
)
await asyncio.sleep(10)
logger.info("Updating Ultravox Realtime LLM settings: output_medium=voice")
await task.queue_frame(
LLMUpdateSettingsFrame(update=UltravoxRealtimeLLMSettings(output_medium="voice"))
LLMUpdateSettingsFrame(delta=UltravoxRealtimeLLMSettings(output_medium="voice"))
)
@transport.event_handler("on_client_disconnected")

View File

@@ -101,7 +101,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
logger.info("Updating Grok Realtime LLM settings: voice='Rex'")
await task.queue_frame(
LLMUpdateSettingsFrame(
update=GrokRealtimeLLMSettings(
delta=GrokRealtimeLLMSettings(
session_properties=events.SessionProperties(voice="Rex")
)
)

View File

@@ -105,9 +105,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating AWS Bedrock LLM settings: temperature=0.1")
await task.queue_frame(
LLMUpdateSettingsFrame(update=AWSBedrockLLMSettings(temperature=0.1))
)
await task.queue_frame(LLMUpdateSettingsFrame(delta=AWSBedrockLLMSettings(temperature=0.1)))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -101,7 +101,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info('Updating Fal STT settings: task="translate"')
await task.queue_frame(STTUpdateSettingsFrame(update=FalSTTSettings(task="translate")))
await task.queue_frame(STTUpdateSettingsFrame(delta=FalSTTSettings(task="translate")))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -104,7 +104,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Gradium STT settings: delay_in_frames=5")
await task.queue_frame(STTUpdateSettingsFrame(update=GradiumSTTSettings(delay_in_frames=5)))
await task.queue_frame(STTUpdateSettingsFrame(delta=GradiumSTTSettings(delay_in_frames=5)))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -104,7 +104,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Hathora STT settings: language=es")
await task.queue_frame(
STTUpdateSettingsFrame(update=HathoraSTTSettings(language=Language.ES))
STTUpdateSettingsFrame(delta=HathoraSTTSettings(language=Language.ES))
)
@transport.event_handler("on_client_disconnected")

View File

@@ -102,7 +102,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating NVIDIA Segmented STT settings: profanity_filter=True")
await task.queue_frame(
STTUpdateSettingsFrame(update=NvidiaSegmentedSTTSettings(profanity_filter=True))
STTUpdateSettingsFrame(delta=NvidiaSegmentedSTTSettings(profanity_filter=True))
)
@transport.event_handler("on_client_disconnected")

View File

@@ -103,7 +103,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating NVIDIA STT settings: language=es")
await task.queue_frame(
STTUpdateSettingsFrame(update=NvidiaSTTSettings(language=Language.ES))
STTUpdateSettingsFrame(delta=NvidiaSTTSettings(language=Language.ES))
)
@transport.event_handler("on_client_disconnected")

View File

@@ -103,7 +103,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating OpenAI Realtime STT settings: language=es")
await task.queue_frame(
STTUpdateSettingsFrame(update=OpenAIRealtimeSTTSettings(language=Language.ES))
STTUpdateSettingsFrame(delta=OpenAIRealtimeSTTSettings(language=Language.ES))
)
@transport.event_handler("on_client_disconnected")

View File

@@ -108,7 +108,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating AsyncAI HTTP TTS settings: language=es")
await task.queue_frame(
TTSUpdateSettingsFrame(update=AsyncAITTSSettings(language=Language.ES))
TTSUpdateSettingsFrame(delta=AsyncAITTSSettings(language=Language.ES))
)
@transport.event_handler("on_client_disconnected")

View File

@@ -103,7 +103,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating AsyncAI TTS settings: language=es")
await task.queue_frame(
TTSUpdateSettingsFrame(update=AsyncAITTSSettings(language=Language.ES))
TTSUpdateSettingsFrame(delta=AsyncAITTSSettings(language=Language.ES))
)
@transport.event_handler("on_client_disconnected")

View File

@@ -103,7 +103,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info('Updating Gradium TTS settings: voice="LFZvm12tW_z0xfGo"')
await task.queue_frame(
TTSUpdateSettingsFrame(update=GradiumTTSSettings(voice="LFZvm12tW_z0xfGo"))
TTSUpdateSettingsFrame(delta=GradiumTTSSettings(voice="LFZvm12tW_z0xfGo"))
)
@transport.event_handler("on_client_disconnected")

View File

@@ -102,7 +102,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Cerebras LLM settings: temperature=0.1")
await task.queue_frame(LLMUpdateSettingsFrame(update=OpenAILLMSettings(temperature=0.1)))
await task.queue_frame(LLMUpdateSettingsFrame(delta=OpenAILLMSettings(temperature=0.1)))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -102,7 +102,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating DeepSeek LLM settings: temperature=0.1")
await task.queue_frame(LLMUpdateSettingsFrame(update=OpenAILLMSettings(temperature=0.1)))
await task.queue_frame(LLMUpdateSettingsFrame(delta=OpenAILLMSettings(temperature=0.1)))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -105,7 +105,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Fireworks LLM settings: temperature=0.1")
await task.queue_frame(LLMUpdateSettingsFrame(update=OpenAILLMSettings(temperature=0.1)))
await task.queue_frame(LLMUpdateSettingsFrame(delta=OpenAILLMSettings(temperature=0.1)))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -102,7 +102,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Grok LLM settings: temperature=0.1")
await task.queue_frame(LLMUpdateSettingsFrame(update=OpenAILLMSettings(temperature=0.1)))
await task.queue_frame(LLMUpdateSettingsFrame(delta=OpenAILLMSettings(temperature=0.1)))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -104,7 +104,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Groq LLM settings: temperature=0.1")
await task.queue_frame(LLMUpdateSettingsFrame(update=OpenAILLMSettings(temperature=0.1)))
await task.queue_frame(LLMUpdateSettingsFrame(delta=OpenAILLMSettings(temperature=0.1)))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -102,7 +102,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Mistral LLM settings: temperature=0.1")
await task.queue_frame(LLMUpdateSettingsFrame(update=OpenAILLMSettings(temperature=0.1)))
await task.queue_frame(LLMUpdateSettingsFrame(delta=OpenAILLMSettings(temperature=0.1)))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -104,7 +104,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating NVIDIA LLM settings: temperature=0.1")
await task.queue_frame(LLMUpdateSettingsFrame(update=OpenAILLMSettings(temperature=0.1)))
await task.queue_frame(LLMUpdateSettingsFrame(delta=OpenAILLMSettings(temperature=0.1)))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -102,7 +102,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating OLLama LLM settings: temperature=0.1")
await task.queue_frame(LLMUpdateSettingsFrame(update=OpenAILLMSettings(temperature=0.1)))
await task.queue_frame(LLMUpdateSettingsFrame(delta=OpenAILLMSettings(temperature=0.1)))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -102,7 +102,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating OpenRouter LLM settings: temperature=0.1")
await task.queue_frame(LLMUpdateSettingsFrame(update=OpenAILLMSettings(temperature=0.1)))
await task.queue_frame(LLMUpdateSettingsFrame(delta=OpenAILLMSettings(temperature=0.1)))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -101,7 +101,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Perplexity LLM settings: temperature=0.1")
await task.queue_frame(LLMUpdateSettingsFrame(update=OpenAILLMSettings(temperature=0.1)))
await task.queue_frame(LLMUpdateSettingsFrame(delta=OpenAILLMSettings(temperature=0.1)))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -102,7 +102,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Qwen LLM settings: temperature=0.1")
await task.queue_frame(LLMUpdateSettingsFrame(update=OpenAILLMSettings(temperature=0.1)))
await task.queue_frame(LLMUpdateSettingsFrame(delta=OpenAILLMSettings(temperature=0.1)))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -102,7 +102,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating SambaNova LLM settings: temperature=0.1")
await task.queue_frame(LLMUpdateSettingsFrame(update=OpenAILLMSettings(temperature=0.1)))
await task.queue_frame(LLMUpdateSettingsFrame(delta=OpenAILLMSettings(temperature=0.1)))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -105,7 +105,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating Together LLM settings: temperature=0.1")
await task.queue_frame(LLMUpdateSettingsFrame(update=OpenAILLMSettings(temperature=0.1)))
await task.queue_frame(LLMUpdateSettingsFrame(delta=OpenAILLMSettings(temperature=0.1)))
@transport.event_handler("on_client_disconnected")
async def on_client_disconnected(transport, client):

View File

@@ -99,7 +99,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info("Updating AWS Nova Sonic LLM settings: temperature=0.1")
await task.queue_frame(
LLMUpdateSettingsFrame(update=AWSNovaSonicLLMSettings(temperature=0.1))
LLMUpdateSettingsFrame(delta=AWSNovaSonicLLMSettings(temperature=0.1))
)
@transport.event_handler("on_client_disconnected")

View File

@@ -100,7 +100,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info('Updating NVIDIA TTS settings: language="ES_US"')
await task.queue_frame(
TTSUpdateSettingsFrame(update=NvidiaTTSSettings(language=Language.ES_US))
TTSUpdateSettingsFrame(delta=NvidiaTTSSettings(language=Language.ES_US))
)
@transport.event_handler("on_client_disconnected")

View File

@@ -104,7 +104,7 @@ async def run_bot(transport: BaseTransport, runner_args: RunnerArguments):
await asyncio.sleep(10)
logger.info('Updating Speechmatics TTS settings: voice="theo"')
await task.queue_frame(
TTSUpdateSettingsFrame(update=SpeechmaticsTTSSettings(voice="theo"))
TTSUpdateSettingsFrame(delta=SpeechmaticsTTSSettings(voice="theo"))
)
@transport.event_handler("on_client_disconnected")