Fix DeepgramSageMakerSTTService._update_settings live_options sync to match DeepgramSTTService pattern.
Add missing reverse sync (live_options → top-level model/language) and `set_model_name()` call.
This commit is contained in:
@@ -167,10 +167,13 @@ class DeepgramSageMakerSTTService(STTService):
|
|||||||
"""Apply a settings update, keeping ``live_options`` in sync.
|
"""Apply a settings update, keeping ``live_options`` in sync.
|
||||||
|
|
||||||
Top-level ``model`` and ``language`` are the source of truth. When
|
Top-level ``model`` and ``language`` are the source of truth. When
|
||||||
they change their values are propagated into ``live_options``.
|
they are given in *update* their values are propagated into
|
||||||
|
``live_options``. When only ``live_options`` is given, its ``model``
|
||||||
|
and ``language`` are propagated *up* to the top-level fields.
|
||||||
|
|
||||||
Any change triggers a reconnect.
|
Any change triggers a reconnect.
|
||||||
"""
|
"""
|
||||||
|
# Determine which top-level fields are explicitly provided.
|
||||||
model_given = isinstance(update, DeepgramSageMakerSTTSettings) and is_given(
|
model_given = isinstance(update, DeepgramSageMakerSTTSettings) and is_given(
|
||||||
getattr(update, "model", NOT_GIVEN)
|
getattr(update, "model", NOT_GIVEN)
|
||||||
)
|
)
|
||||||
@@ -183,16 +186,23 @@ class DeepgramSageMakerSTTService(STTService):
|
|||||||
if not changed:
|
if not changed:
|
||||||
return changed
|
return changed
|
||||||
|
|
||||||
# Sync model into live_options
|
# --- Sync model --------------------------------------------------
|
||||||
if model_given and "model" in changed:
|
if model_given:
|
||||||
|
# Top-level model wins → push into live_options.
|
||||||
self._settings.live_options.model = self._settings.model
|
self._settings.live_options.model = self._settings.model
|
||||||
|
elif "live_options" in changed and self._settings.live_options.model is not None:
|
||||||
|
# Only live_options was given → pull model up.
|
||||||
|
self._settings.model = self._settings.live_options.model
|
||||||
|
self.set_model_name(self._settings.model)
|
||||||
|
|
||||||
# Sync language into live_options
|
# --- Sync language -----------------------------------------------
|
||||||
if language_given and "language" in changed:
|
if language_given:
|
||||||
lang = self._settings.language
|
lang = self._settings.language
|
||||||
if isinstance(lang, Language):
|
if isinstance(lang, Language):
|
||||||
lang = lang.value
|
lang = lang.value
|
||||||
self._settings.live_options.language = lang
|
self._settings.live_options.language = lang
|
||||||
|
elif "live_options" in changed and self._settings.live_options.language is not None:
|
||||||
|
self._settings.language = self._settings.live_options.language
|
||||||
|
|
||||||
await self._disconnect()
|
await self._disconnect()
|
||||||
await self._connect()
|
await self._connect()
|
||||||
|
|||||||
Reference in New Issue
Block a user