From 61ac83e2d9f77c0c602819b200b85d126f139b60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aleix=20Conchillo=20Flaqu=C3=A9?= Date: Wed, 14 Aug 2024 22:26:49 -0700 Subject: [PATCH] processors(rtvi): process options in the order they are defined --- src/pipecat/processors/frameworks/rtvi.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/pipecat/processors/frameworks/rtvi.py b/src/pipecat/processors/frameworks/rtvi.py index aa0f8a824..ac74c6fcf 100644 --- a/src/pipecat/processors/frameworks/rtvi.py +++ b/src/pipecat/processors/frameworks/rtvi.py @@ -498,10 +498,14 @@ class RTVIProcessor(FrameProcessor): async def _update_service_config(self, config: RTVIServiceConfig): service = self._registered_services[config.service] - for option in config.options: - handler = service._options_dict[option.name].handler - await handler(self, service.name, option) - self._update_config_option(service.name, option) + # Process options in the order they are defined, not in the order they + # are sent. + for option_def in service.options: + for option in config.options: + if option_def.name == option.name: + handler = option_def.handler + await handler(self, service.name, option) + self._update_config_option(service.name, option) async def _update_config(self, data: RTVIConfig): for service_config in data.config: