Make deprecated-init-param warnings recommend the preferred Service.Settings(...) pattern

Move the warning helper into AIService as _warn_init_param_moved_to_settings.
It now uses type(self).__name__ to produce messages like
"Use settings=AnthropicLLMService.Settings(model=...)" instead of the raw
settings class name "AnthropicLLMSettings(model=...)". Callers no longer need
to pass the settings class explicitly.
This commit is contained in:
Paul Kompfner
2026-03-11 13:04:15 -04:00
parent eb9212f152
commit e5b60ba095
81 changed files with 282 additions and 311 deletions

View File

@@ -10,6 +10,7 @@ Provides the foundation for all AI services in the Pipecat framework, including
model management, settings handling, and frame processing lifecycle methods.
"""
import warnings
from typing import Any, AsyncGenerator, Dict
from loguru import logger
@@ -130,6 +131,43 @@ class AIService(FrameProcessor):
return changed
def _warn_init_param_moved_to_settings(
self,
param_name: str,
settings_field: str | None = None,
stacklevel: int = 3,
):
"""Warn that an ``__init__`` param has moved to ``Settings``.
Emits a ``DeprecationWarning`` directing users to the canonical
``settings=ServiceClass.Settings(field=...)`` API.
Args:
param_name: Name of the deprecated ``__init__`` parameter.
settings_field: The corresponding field on the ``Settings``
dataclass, if different from *param_name*. When ``None``
the message omits the field hint.
stacklevel: Stack depth for the warning. Default ``3`` targets
the caller's caller (i.e. user code that instantiated the
service).
"""
label = f"{type(self).__name__}.Settings"
if settings_field:
msg = (
f"The `{param_name}` parameter is deprecated. "
f"Use `settings={label}({settings_field}=...)` instead. "
f"If both are provided, `settings` takes precedence."
)
else:
msg = (
f"The `{param_name}` parameter is deprecated. "
f"Use `settings={label}(...)` instead. "
f"If both are provided, `settings` takes precedence."
)
with warnings.catch_warnings():
warnings.simplefilter("always")
warnings.warn(msg, DeprecationWarning, stacklevel=stacklevel)
def _warn_unhandled_updated_settings(self, unhandled):
"""Log a warning for settings changes that won't take effect at runtime.

View File

@@ -58,7 +58,7 @@ from pipecat.processors.aggregators.openai_llm_context import (
from pipecat.processors.frame_processor import FrameDirection
from pipecat.services.llm_service import FunctionCallFromLLM, LLMService
from pipecat.services.settings import NOT_GIVEN as _NOT_GIVEN
from pipecat.services.settings import LLMSettings, _NotGiven, _warn_deprecated_param, is_given
from pipecat.services.settings import LLMSettings, _NotGiven, is_given
from pipecat.utils.tracing.service_decorators import traced_llm
try:
@@ -272,12 +272,12 @@ class AnthropicLLMService(LLMService):
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
default_settings.max_tokens = params.max_tokens
default_settings.temperature = params.temperature

View File

@@ -32,7 +32,7 @@ from pipecat.frames.frames import (
VADUserStoppedSpeakingFrame,
)
from pipecat.processors.frame_processor import FrameDirection
from pipecat.services.settings import NOT_GIVEN, STTSettings, _NotGiven, _warn_deprecated_param
from pipecat.services.settings import NOT_GIVEN, STTSettings, _NotGiven
from pipecat.services.stt_latency import ASSEMBLYAI_TTFS_P99
from pipecat.services.stt_service import WebsocketSTTService
from pipecat.transcriptions.language import Language
@@ -208,12 +208,12 @@ class AssemblyAISTTService(WebsocketSTTService):
# 2. Apply direct init arg overrides (deprecated)
if language is not None:
_warn_deprecated_param("language", self.Settings, "language")
self._warn_init_param_moved_to_settings("language", "language")
default_settings.language = language
# 3. Apply connection_params overrides (deprecated) — only if settings not provided
if connection_params is not None:
_warn_deprecated_param("connection_params", self.Settings)
self._warn_init_param_moved_to_settings("connection_params")
if not settings:
sample_rate = connection_params.sample_rate
encoding = connection_params.encoding

View File

@@ -26,7 +26,7 @@ from pipecat.frames.frames import (
TTSStoppedFrame,
)
from pipecat.processors.frame_processor import FrameDirection
from pipecat.services.settings import TTSSettings, _warn_deprecated_param
from pipecat.services.settings import TTSSettings
from pipecat.services.tts_service import TextAggregationMode, TTSService, WebsocketTTSService
from pipecat.transcriptions.language import Language, resolve_language
from pipecat.utils.tracing.service_decorators import traced_tts
@@ -161,15 +161,15 @@ class AsyncAITTSService(WebsocketTTSService):
# 2. Apply direct init arg overrides (deprecated)
if voice_id is not None:
_warn_deprecated_param("voice_id", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice_id", "voice")
default_settings.voice = voice_id
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
default_settings.language = (
self.language_to_service_language(params.language) if params.language else None
@@ -555,15 +555,15 @@ class AsyncAIHttpTTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated)
if voice_id is not None:
_warn_deprecated_param("voice_id", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice_id", "voice")
default_settings.voice = voice_id
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
default_settings.language = (
self.language_to_service_language(params.language) if params.language else None

View File

@@ -55,7 +55,7 @@ from pipecat.processors.aggregators.openai_llm_context import (
)
from pipecat.processors.frame_processor import FrameDirection
from pipecat.services.llm_service import LLMService
from pipecat.services.settings import NOT_GIVEN, LLMSettings, _NotGiven, _warn_deprecated_param
from pipecat.services.settings import NOT_GIVEN, LLMSettings, _NotGiven
from pipecat.utils.tracing.service_decorators import traced_llm
try:
@@ -841,15 +841,15 @@ class AWSBedrockLLMService(LLMService):
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
if stop_sequences is not None:
_warn_deprecated_param("stop_sequences", self.Settings, "stop_sequences")
self._warn_init_param_moved_to_settings("stop_sequences", "stop_sequences")
default_settings.stop_sequences = stop_sequences
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
default_settings.max_tokens = params.max_tokens
default_settings.temperature = params.temperature

View File

@@ -60,7 +60,7 @@ from pipecat.processors.aggregators.openai_llm_context import (
)
from pipecat.processors.frame_processor import FrameDirection
from pipecat.services.llm_service import LLMService
from pipecat.services.settings import NOT_GIVEN, LLMSettings, _NotGiven, _warn_deprecated_param
from pipecat.services.settings import NOT_GIVEN, LLMSettings, _NotGiven
from pipecat.utils.time import time_now_iso8601
try:
@@ -337,13 +337,13 @@ class AWSNovaSonicLLMService(LLMService):
# 2. Apply direct init arg overrides (deprecated)
if model != "amazon.nova-2-sonic-v1:0":
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
if voice_id != "matthew":
_warn_deprecated_param("voice_id", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice_id", "voice")
default_settings.voice = voice_id
if system_instruction is not None:
_warn_deprecated_param("system_instruction", self.Settings, "system_instruction")
self._warn_init_param_moved_to_settings("system_instruction", "system_instruction")
default_settings.system_instruction = system_instruction
# 3. Apply params overrides — only if settings not provided

View File

@@ -29,7 +29,7 @@ from pipecat.frames.frames import (
TranscriptionFrame,
)
from pipecat.services.aws.utils import build_event_message, decode_event, get_presigned_url
from pipecat.services.settings import STTSettings, _warn_deprecated_param
from pipecat.services.settings import STTSettings
from pipecat.services.stt_latency import AWS_TRANSCRIBE_TTFS_P99
from pipecat.services.stt_service import WebsocketSTTService
from pipecat.transcriptions.language import Language, resolve_language
@@ -105,7 +105,7 @@ class AWSTranscribeSTTService(WebsocketSTTService):
# 2. Apply direct init arg overrides (deprecated)
if language is not None:
_warn_deprecated_param("language", self.Settings, "language")
self._warn_init_param_moved_to_settings("language", "language")
default_settings.language = self.language_to_service_language(language)
# 3. (No step 3, as there's no params object to apply)

View File

@@ -23,7 +23,7 @@ from pipecat.frames.frames import (
Frame,
TTSAudioRawFrame,
)
from pipecat.services.settings import NOT_GIVEN, TTSSettings, _NotGiven, _warn_deprecated_param
from pipecat.services.settings import NOT_GIVEN, TTSSettings, _NotGiven
from pipecat.services.tts_service import TTSService
from pipecat.transcriptions.language import Language, resolve_language
from pipecat.utils.tracing.service_decorators import traced_tts
@@ -222,12 +222,12 @@ class AWSPollyTTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated)
if voice_id is not None:
_warn_deprecated_param("voice_id", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice_id", "voice")
default_settings.voice = voice_id
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
default_settings.engine = params.engine
default_settings.language = (

View File

@@ -20,7 +20,7 @@ from PIL import Image
from pipecat.frames.frames import ErrorFrame, Frame, URLImageRawFrame
from pipecat.services.image_service import ImageGenService
from pipecat.services.settings import NOT_GIVEN, ImageGenSettings, _NotGiven, _warn_deprecated_param
from pipecat.services.settings import NOT_GIVEN, ImageGenSettings, _NotGiven
@dataclass
@@ -85,11 +85,11 @@ class AzureImageGenServiceREST(ImageGenService):
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
if image_size is not None:
_warn_deprecated_param("image_size", self.Settings, "image_size")
self._warn_init_param_moved_to_settings("image_size", "image_size")
default_settings.image_size = image_size
# 4. Apply settings delta (canonical API, always wins)

View File

@@ -14,7 +14,6 @@ from openai import AsyncAzureOpenAI
from pipecat.services.openai.base_llm import BaseOpenAILLMService
from pipecat.services.openai.llm import OpenAILLMService
from pipecat.services.settings import _warn_deprecated_param
@dataclass
@@ -63,7 +62,7 @@ class AzureLLMService(OpenAILLMService):
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
# 3. (No step 3, as there's no params object to apply)

View File

@@ -26,7 +26,7 @@ from pipecat.frames.frames import (
TranscriptionFrame,
)
from pipecat.services.azure.common import language_to_azure_language
from pipecat.services.settings import STTSettings, _warn_deprecated_param
from pipecat.services.settings import STTSettings
from pipecat.services.stt_latency import AZURE_TTFS_P99
from pipecat.services.stt_service import STTService
from pipecat.transcriptions.language import Language
@@ -111,7 +111,7 @@ class AzureSTTService(STTService):
# 2. Apply direct init arg overrides (deprecated)
if language is not None and language != Language.EN_US:
_warn_deprecated_param("language", self.Settings, "language")
self._warn_init_param_moved_to_settings("language", "language")
default_settings.language = language_to_azure_language(language)
# 3. (No step 3, as there's no params object to apply)

View File

@@ -25,7 +25,7 @@ from pipecat.frames.frames import (
)
from pipecat.processors.frame_processor import FrameDirection
from pipecat.services.azure.common import language_to_azure_language
from pipecat.services.settings import NOT_GIVEN, TTSSettings, _NotGiven, _warn_deprecated_param
from pipecat.services.settings import NOT_GIVEN, TTSSettings, _NotGiven
from pipecat.services.tts_service import TextAggregationMode, TTSService
from pipecat.transcriptions.language import Language
from pipecat.utils.tracing.service_decorators import traced_tts
@@ -304,12 +304,12 @@ class AzureTTSService(TTSService, AzureBaseTTSService):
# 2. Apply direct init arg overrides (deprecated)
if voice is not None:
_warn_deprecated_param("voice", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice", "voice")
default_settings.voice = voice
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
default_settings.emphasis = params.emphasis
default_settings.language = (
@@ -801,12 +801,12 @@ class AzureHttpTTSService(TTSService, AzureBaseTTSService):
# 2. Apply direct init arg overrides (deprecated)
if voice is not None:
_warn_deprecated_param("voice", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice", "voice")
default_settings.voice = voice
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
default_settings.emphasis = params.emphasis
default_settings.language = (

View File

@@ -30,7 +30,7 @@ from pipecat.frames.frames import (
StartFrame,
TTSAudioRawFrame,
)
from pipecat.services.settings import NOT_GIVEN, TTSSettings, _NotGiven, _warn_deprecated_param
from pipecat.services.settings import NOT_GIVEN, TTSSettings, _NotGiven
from pipecat.services.tts_service import TTSService
from pipecat.transcriptions.language import Language, resolve_language
from pipecat.utils.tracing.service_decorators import traced_tts
@@ -246,15 +246,15 @@ class CambTTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
if voice_id is not None:
_warn_deprecated_param("voice_id", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice_id", "voice")
default_settings.voice = voice_id
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
if params.language is not None:
default_settings.language = (

View File

@@ -28,7 +28,7 @@ from pipecat.frames.frames import (
VADUserStoppedSpeakingFrame,
)
from pipecat.processors.frame_processor import FrameDirection
from pipecat.services.settings import STTSettings, _warn_deprecated_param
from pipecat.services.settings import STTSettings
from pipecat.services.stt_latency import CARTESIA_TTFS_P99
from pipecat.services.stt_service import WebsocketSTTService
from pipecat.transcriptions.language import Language
@@ -189,7 +189,7 @@ class CartesiaSTTService(WebsocketSTTService):
# 2. Apply live_options overrides — only if settings not provided
if live_options is not None:
_warn_deprecated_param("live_options", self.Settings)
self._warn_init_param_moved_to_settings("live_options")
if not settings:
if live_options.sample_rate and sample_rate is None:
sample_rate = live_options.sample_rate

View File

@@ -25,7 +25,7 @@ from pipecat.frames.frames import (
TTSAudioRawFrame,
TTSStoppedFrame,
)
from pipecat.services.settings import NOT_GIVEN, TTSSettings, _NotGiven, _warn_deprecated_param
from pipecat.services.settings import NOT_GIVEN, TTSSettings, _NotGiven
from pipecat.services.tts_service import TextAggregationMode, TTSService, WebsocketTTSService
from pipecat.transcriptions.language import Language, resolve_language
from pipecat.utils.text.base_text_aggregator import BaseTextAggregator
@@ -309,15 +309,15 @@ class CartesiaTTSService(WebsocketTTSService):
# 2. Apply direct init arg overrides (deprecated)
if voice_id is not None:
_warn_deprecated_param("voice_id", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice_id", "voice")
default_settings.voice = voice_id
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
if params.language is not None:
default_settings.language = self.language_to_service_language(params.language)
@@ -756,15 +756,15 @@ class CartesiaHttpTTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated)
if voice_id is not None:
_warn_deprecated_param("voice_id", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice_id", "voice")
default_settings.voice = voice_id
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
if params.language is not None:
default_settings.language = self.language_to_service_language(params.language)

View File

@@ -14,7 +14,6 @@ from loguru import logger
from pipecat.adapters.services.open_ai_adapter import OpenAILLMInvocationParams
from pipecat.services.openai.base_llm import BaseOpenAILLMService
from pipecat.services.openai.llm import OpenAILLMService
from pipecat.services.settings import _warn_deprecated_param
@dataclass
@@ -62,7 +61,7 @@ class CerebrasLLMService(OpenAILLMService):
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
# 3. (No step 3, as there's no params object to apply)

View File

@@ -28,7 +28,7 @@ from pipecat.frames.frames import (
UserStartedSpeakingFrame,
UserStoppedSpeakingFrame,
)
from pipecat.services.settings import NOT_GIVEN, STTSettings, _NotGiven, _warn_deprecated_param
from pipecat.services.settings import NOT_GIVEN, STTSettings, _NotGiven
from pipecat.services.stt_service import WebsocketSTTService
from pipecat.transcriptions.language import Language
from pipecat.utils.time import time_now_iso8601
@@ -233,12 +233,12 @@ class DeepgramFluxSTTService(WebsocketSTTService):
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
default_settings.eager_eot_threshold = params.eager_eot_threshold
default_settings.eot_threshold = params.eot_threshold

View File

@@ -33,7 +33,7 @@ from pipecat.frames.frames import (
from pipecat.processors.frame_processor import FrameDirection
from pipecat.services.aws.sagemaker.bidi_client import SageMakerBidiClient
from pipecat.services.deepgram.stt import DeepgramSTTService, LiveOptions
from pipecat.services.settings import STTSettings, _warn_deprecated_param, is_given
from pipecat.services.settings import STTSettings, is_given
from pipecat.services.stt_latency import DEEPGRAM_SAGEMAKER_TTFS_P99
from pipecat.services.stt_service import STTService
from pipecat.transcriptions.language import Language
@@ -147,7 +147,7 @@ class DeepgramSageMakerSTTService(STTService):
# 2. Apply live_options overrides — only if settings not provided
if live_options is not None:
_warn_deprecated_param("live_options", self.Settings)
self._warn_init_param_moved_to_settings("live_options")
if not settings:
# Extract init-only fields from live_options
if live_options.sample_rate is not None and sample_rate is None:

View File

@@ -33,7 +33,7 @@ from pipecat.frames.frames import (
)
from pipecat.processors.frame_processor import FrameDirection
from pipecat.services.aws.sagemaker.bidi_client import SageMakerBidiClient
from pipecat.services.settings import TTSSettings, _warn_deprecated_param
from pipecat.services.settings import TTSSettings
from pipecat.services.tts_service import TTSService
from pipecat.utils.tracing.service_decorators import traced_tts
@@ -101,7 +101,7 @@ class DeepgramSageMakerTTSService(TTSService):
**kwargs: Additional arguments passed to the parent TTSService.
"""
if voice is not None:
_warn_deprecated_param("voice", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice", "voice")
voice = voice or "aura-2-helena-en"

View File

@@ -29,7 +29,6 @@ from pipecat.services.settings import (
NOT_GIVEN,
STTSettings,
_NotGiven,
_warn_deprecated_param,
is_given,
)
from pipecat.services.stt_latency import DEEPGRAM_TTFS_P99
@@ -370,7 +369,7 @@ class DeepgramSTTService(STTService):
# 3. Apply live_options overrides — only if settings not provided
if live_options is not None:
_warn_deprecated_param("live_options", self.Settings)
self._warn_init_param_moved_to_settings("live_options")
if not settings:
# Extract init-only fields from live_options
if live_options.sample_rate is not None and sample_rate is None:

View File

@@ -26,7 +26,7 @@ from pipecat.frames.frames import (
TTSAudioRawFrame,
TTSStoppedFrame,
)
from pipecat.services.settings import TTSSettings, _warn_deprecated_param
from pipecat.services.settings import TTSSettings
from pipecat.services.tts_service import TTSService, WebsocketTTSService
from pipecat.utils.tracing.service_decorators import traced_tts
@@ -105,7 +105,7 @@ class DeepgramTTSService(WebsocketTTSService):
# 2. Apply direct init arg overrides (deprecated)
if voice is not None:
_warn_deprecated_param("voice", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice", "voice")
default_settings.model = voice
default_settings.voice = voice
@@ -407,7 +407,7 @@ class DeepgramHttpTTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated)
if voice is not None:
_warn_deprecated_param("voice", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice", "voice")
default_settings.model = voice
default_settings.voice = voice

View File

@@ -14,7 +14,6 @@ from loguru import logger
from pipecat.adapters.services.open_ai_adapter import OpenAILLMInvocationParams
from pipecat.services.openai.base_llm import BaseOpenAILLMService
from pipecat.services.openai.llm import OpenAILLMService
from pipecat.services.settings import _warn_deprecated_param
@dataclass
@@ -62,7 +61,7 @@ class DeepSeekLLMService(OpenAILLMService):
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
# 3. (No step 3, as there's no params object to apply)

View File

@@ -35,7 +35,7 @@ from pipecat.frames.frames import (
VADUserStoppedSpeakingFrame,
)
from pipecat.processors.frame_processor import FrameDirection
from pipecat.services.settings import NOT_GIVEN, STTSettings, _NotGiven, _warn_deprecated_param
from pipecat.services.settings import NOT_GIVEN, STTSettings, _NotGiven
from pipecat.services.stt_latency import ELEVENLABS_REALTIME_TTFS_P99, ELEVENLABS_TTFS_P99
from pipecat.services.stt_service import SegmentedSTTService, WebsocketSTTService
from pipecat.transcriptions.language import Language, resolve_language
@@ -278,12 +278,12 @@ class ElevenLabsSTTService(SegmentedSTTService):
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
if params.language is not None:
default_settings.language = language_to_elevenlabs_language(params.language)
@@ -540,12 +540,12 @@ class ElevenLabsRealtimeSTTService(WebsocketSTTService):
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
default_settings.language = params.language_code
if params.commit_strategy != CommitStrategy.MANUAL:

View File

@@ -44,7 +44,7 @@ from pipecat.frames.frames import (
TTSStoppedFrame,
)
from pipecat.processors.frame_processor import FrameDirection
from pipecat.services.settings import NOT_GIVEN, TTSSettings, _NotGiven, _warn_deprecated_param
from pipecat.services.settings import NOT_GIVEN, TTSSettings, _NotGiven
from pipecat.services.tts_service import (
TextAggregationMode,
TTSService,
@@ -437,16 +437,16 @@ class ElevenLabsTTSService(WebsocketTTSService):
# 2. Apply direct init arg overrides (deprecated)
if voice_id is not None:
_warn_deprecated_param("voice_id", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice_id", "voice")
default_settings.voice = voice_id
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
# 3. Apply params overrides — only if settings not provided
_pronunciation_dictionary_locators = pronunciation_dictionary_locators
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
if params.language is not None:
default_settings.language = self.language_to_service_language(params.language)
@@ -1002,16 +1002,16 @@ class ElevenLabsHttpTTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated)
if voice_id is not None:
_warn_deprecated_param("voice_id", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice_id", "voice")
default_settings.voice = voice_id
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
# 3. Apply params overrides — only if settings not provided
_pronunciation_dictionary_locators = pronunciation_dictionary_locators
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
if params.language is not None:
default_settings.language = self.language_to_service_language(params.language)

View File

@@ -23,7 +23,7 @@ from pydantic import BaseModel
from pipecat.frames.frames import ErrorFrame, Frame, URLImageRawFrame
from pipecat.services.image_service import ImageGenService
from pipecat.services.settings import NOT_GIVEN, ImageGenSettings, _NotGiven, _warn_deprecated_param
from pipecat.services.settings import NOT_GIVEN, ImageGenSettings, _NotGiven
@dataclass
@@ -142,11 +142,11 @@ class FalImageGenService(ImageGenService):
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
default_settings.seed = params.seed
default_settings.num_inference_steps = params.num_inference_steps

View File

@@ -20,7 +20,7 @@ from loguru import logger
from pydantic import BaseModel
from pipecat.frames.frames import ErrorFrame, Frame, TranscriptionFrame
from pipecat.services.settings import STTSettings, _warn_deprecated_param
from pipecat.services.settings import STTSettings
from pipecat.services.stt_latency import FAL_TTFS_P99
from pipecat.services.stt_service import SegmentedSTTService
from pipecat.transcriptions.language import Language, resolve_language
@@ -223,7 +223,7 @@ class FalSTTService(SegmentedSTTService):
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
if params.language is not None:
default_settings.language = language_to_fal_language(params.language)

View File

@@ -14,7 +14,6 @@ from loguru import logger
from pipecat.adapters.services.open_ai_adapter import OpenAILLMInvocationParams
from pipecat.services.openai.base_llm import BaseOpenAILLMService
from pipecat.services.openai.llm import OpenAILLMService
from pipecat.services.settings import _warn_deprecated_param
@dataclass
@@ -62,7 +61,7 @@ class FireworksLLMService(OpenAILLMService):
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
# 3. (No step 3, as there's no params object to apply)

View File

@@ -27,7 +27,7 @@ from pipecat.frames.frames import (
TTSStoppedFrame,
)
from pipecat.processors.frame_processor import FrameDirection
from pipecat.services.settings import NOT_GIVEN, TTSSettings, _NotGiven, _warn_deprecated_param
from pipecat.services.settings import NOT_GIVEN, TTSSettings, _NotGiven
from pipecat.services.tts_service import InterruptibleTTSService
from pipecat.transcriptions.language import Language
from pipecat.utils.tracing.service_decorators import traced_tts
@@ -185,15 +185,15 @@ class FishAudioTTSService(InterruptibleTTSService):
# 2. Apply direct init arg overrides (deprecated)
if reference_id is not None:
_warn_deprecated_param("reference_id", self.Settings, "voice")
self._warn_init_param_moved_to_settings("reference_id", "voice")
default_settings.voice = reference_id
if model_id is not None:
_warn_deprecated_param("model_id", self.Settings, "model")
self._warn_init_param_moved_to_settings("model_id", "model")
default_settings.model = model_id
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
if params.latency is not None:
default_settings.latency = params.latency

View File

@@ -39,7 +39,7 @@ from pipecat.services.gladia.config import (
PreProcessingConfig,
RealtimeProcessingConfig,
)
from pipecat.services.settings import NOT_GIVEN, STTSettings, _NotGiven, _warn_deprecated_param
from pipecat.services.settings import NOT_GIVEN, STTSettings, _NotGiven
from pipecat.services.stt_latency import GLADIA_TTFS_P99
from pipecat.services.stt_service import WebsocketSTTService
from pipecat.transcriptions.language import Language, resolve_language
@@ -317,12 +317,12 @@ class GladiaSTTService(WebsocketSTTService):
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if params.language is not None:
with warnings.catch_warnings():
warnings.simplefilter("always")

View File

@@ -76,7 +76,7 @@ from pipecat.services.openai.llm import (
OpenAIAssistantContextAggregator,
OpenAIUserContextAggregator,
)
from pipecat.services.settings import NOT_GIVEN, LLMSettings, _NotGiven, _warn_deprecated_param
from pipecat.services.settings import NOT_GIVEN, LLMSettings, _NotGiven
from pipecat.transcriptions.language import Language, resolve_language
from pipecat.utils.string import match_endofsentence
from pipecat.utils.time import time_now_iso8601
@@ -742,15 +742,15 @@ class GeminiLiveLLMService(LLMService):
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
if voice_id != "Charon":
_warn_deprecated_param("voice_id", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice_id", "voice")
default_settings.voice = voice_id
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
default_settings.frequency_penalty = params.frequency_penalty
default_settings.max_tokens = params.max_tokens

View File

@@ -26,7 +26,6 @@ from pipecat.services.google.gemini_live.llm import (
InputParams,
language_to_gemini_language,
)
from pipecat.services.settings import _warn_deprecated_param
try:
from google.auth import default
@@ -160,15 +159,15 @@ class GeminiLiveVertexLLMService(GeminiLiveLLMService):
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
if voice_id != "Charon":
_warn_deprecated_param("voice_id", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice_id", "voice")
default_settings.voice = voice_id
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
default_settings.frequency_penalty = params.frequency_penalty
default_settings.max_tokens = params.max_tokens

View File

@@ -26,7 +26,7 @@ from pydantic import BaseModel, Field
from pipecat.frames.frames import ErrorFrame, Frame, URLImageRawFrame
from pipecat.services.google.utils import update_google_client_http_options
from pipecat.services.image_service import ImageGenService
from pipecat.services.settings import NOT_GIVEN, ImageGenSettings, _NotGiven, _warn_deprecated_param
from pipecat.services.settings import NOT_GIVEN, ImageGenSettings, _NotGiven
try:
from google import genai
@@ -110,7 +110,7 @@ class GoogleImageGenService(ImageGenService):
# 2. Apply params overrides (deprecated)
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
default_settings.model = params.model
default_settings.number_of_images = params.number_of_images

View File

@@ -61,7 +61,6 @@ from pipecat.services.settings import (
NOT_GIVEN,
LLMSettings,
_NotGiven,
_warn_deprecated_param,
is_given,
)
from pipecat.utils.tracing.service_decorators import traced_llm
@@ -838,15 +837,15 @@ class GoogleLLMService(LLMService):
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
if system_instruction is not None:
_warn_deprecated_param("system_instruction", self.Settings, "system_instruction")
self._warn_init_param_moved_to_settings("system_instruction", "system_instruction")
default_settings.system_instruction = system_instruction
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
default_settings.max_tokens = params.max_tokens
default_settings.temperature = params.temperature

View File

@@ -30,7 +30,6 @@ from pipecat.metrics.metrics import LLMTokenUsage
from pipecat.processors.aggregators.openai_llm_context import OpenAILLMContext
from pipecat.services.openai.base_llm import BaseOpenAILLMService
from pipecat.services.openai.llm import OpenAILLMService
from pipecat.services.settings import _warn_deprecated_param
@dataclass
@@ -100,7 +99,7 @@ class GoogleLLMOpenAIBetaService(OpenAILLMService):
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
# 3. (No step 3, as there's no params object to apply)

View File

@@ -36,7 +36,7 @@ from pipecat.frames.frames import (
StartFrame,
TranscriptionFrame,
)
from pipecat.services.settings import NOT_GIVEN, STTSettings, _NotGiven, _warn_deprecated_param
from pipecat.services.settings import NOT_GIVEN, STTSettings, _NotGiven
from pipecat.services.stt_latency import GOOGLE_TTFS_P99
from pipecat.services.stt_service import STTService
from pipecat.transcriptions.language import Language, resolve_language
@@ -531,7 +531,7 @@ class GoogleSTTService(STTService):
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
default_settings.languages = list(params.language_list)
default_settings.model = params.model

View File

@@ -39,7 +39,6 @@ from pipecat.services.settings import (
NOT_GIVEN,
TTSSettings,
_NotGiven,
_warn_deprecated_param,
is_given,
)
from pipecat.services.tts_service import TTSService
@@ -636,12 +635,12 @@ class GoogleHttpTTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated)
if voice_id is not None:
_warn_deprecated_param("voice_id", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice_id", "voice")
default_settings.voice = voice_id
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
if params.pitch is not None:
default_settings.pitch = params.pitch
@@ -1083,12 +1082,12 @@ class GoogleTTSService(GoogleBaseTTSService):
# 2. Apply direct init arg overrides (deprecated)
if voice_id is not None:
_warn_deprecated_param("voice_id", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice_id", "voice")
default_settings.voice = voice_id
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
if params.language is not None:
default_settings.language = self.language_to_service_language(params.language)
@@ -1331,10 +1330,10 @@ class GeminiTTSService(GoogleBaseTTSService):
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
if voice_id is not None:
_warn_deprecated_param("voice_id", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice_id", "voice")
default_settings.voice = voice_id
if default_settings.voice not in self.AVAILABLE_VOICES:
@@ -1344,7 +1343,7 @@ class GeminiTTSService(GoogleBaseTTSService):
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
if params.language is not None:
default_settings.language = self.language_to_service_language(params.language)

View File

@@ -22,7 +22,6 @@ from typing import Optional
from loguru import logger
from pipecat.services.google.llm import GoogleLLMService
from pipecat.services.settings import _warn_deprecated_param
try:
from google.auth import default
@@ -215,15 +214,15 @@ class GoogleVertexLLMService(GoogleLLMService):
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
if system_instruction is not None:
_warn_deprecated_param("system_instruction", self.Settings, "system_instruction")
self._warn_init_param_moved_to_settings("system_instruction", "system_instruction")
default_settings.system_instruction = system_instruction
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
default_settings.max_tokens = params.max_tokens
default_settings.temperature = params.temperature

View File

@@ -28,7 +28,7 @@ from pipecat.frames.frames import (
VADUserStoppedSpeakingFrame,
)
from pipecat.processors.frame_processor import FrameDirection
from pipecat.services.settings import NOT_GIVEN, STTSettings, _NotGiven, _warn_deprecated_param
from pipecat.services.settings import NOT_GIVEN, STTSettings, _NotGiven
from pipecat.services.stt_latency import GRADIUM_TTFS_P99
from pipecat.services.stt_service import WebsocketSTTService
from pipecat.transcriptions.language import Language, resolve_language
@@ -162,7 +162,7 @@ class GradiumSTTService(WebsocketSTTService):
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
default_settings.language = params.language
if params.delay_in_frames is not None:

View File

@@ -21,7 +21,7 @@ from pipecat.frames.frames import (
TTSAudioRawFrame,
TTSStoppedFrame,
)
from pipecat.services.settings import TTSSettings, _warn_deprecated_param
from pipecat.services.settings import TTSSettings
from pipecat.services.tts_service import WebsocketTTSService
from pipecat.utils.tracing.service_decorators import traced_tts
@@ -108,15 +108,15 @@ class GradiumTTSService(WebsocketTTSService):
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
if voice_id is not None:
_warn_deprecated_param("voice_id", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice_id", "voice")
default_settings.voice = voice_id
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
# Note: params.temp has no corresponding settings field
# 4. Apply settings delta (canonical API, always wins)

View File

@@ -29,7 +29,6 @@ from pipecat.services.openai.llm import (
OpenAILLMService,
OpenAIUserContextAggregator,
)
from pipecat.services.settings import _warn_deprecated_param
@dataclass
@@ -117,7 +116,7 @@ class GrokLLMService(OpenAILLMService):
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
# 3. (No step 3, as there's no params object to apply)

View File

@@ -60,7 +60,6 @@ from pipecat.services.settings import (
NOT_GIVEN,
LLMSettings,
_NotGiven,
_warn_deprecated_param,
is_given,
)
from pipecat.utils.time import time_now_iso8601

View File

@@ -13,7 +13,6 @@ from loguru import logger
from pipecat.services.openai.base_llm import BaseOpenAILLMService
from pipecat.services.openai.llm import OpenAILLMService
from pipecat.services.settings import _warn_deprecated_param
@dataclass
@@ -61,7 +60,7 @@ class GroqLLMService(OpenAILLMService):
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
# 3. (No step 3, as there's no params object to apply)

View File

@@ -9,7 +9,6 @@
from dataclasses import dataclass
from typing import Optional
from pipecat.services.settings import _warn_deprecated_param
from pipecat.services.stt_latency import GROQ_TTFS_P99
from pipecat.services.whisper.base_stt import (
BaseWhisperSTTService,
@@ -93,16 +92,16 @@ class GroqSTTService(BaseWhisperSTTService):
# --- 2. Deprecated direct-arg overrides ---
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
if language is not None:
_warn_deprecated_param("language", self.Settings, "language")
self._warn_init_param_moved_to_settings("language", "language")
default_settings.language = self.language_to_service_language(language)
if prompt is not None:
_warn_deprecated_param("prompt", self.Settings, "prompt")
self._warn_init_param_moved_to_settings("prompt", "prompt")
default_settings.prompt = prompt
if temperature is not None:
_warn_deprecated_param("temperature", self.Settings, "temperature")
self._warn_init_param_moved_to_settings("temperature", "temperature")
default_settings.temperature = temperature
# --- 3. (no params object for this service) ---

View File

@@ -19,7 +19,7 @@ from pipecat.frames.frames import (
Frame,
TTSAudioRawFrame,
)
from pipecat.services.settings import NOT_GIVEN, TTSSettings, _NotGiven, _warn_deprecated_param
from pipecat.services.settings import NOT_GIVEN, TTSSettings, _NotGiven
from pipecat.services.tts_service import TTSService
from pipecat.transcriptions.language import Language
from pipecat.utils.tracing.service_decorators import traced_tts
@@ -120,15 +120,15 @@ class GroqTTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated)
if model_name is not None:
_warn_deprecated_param("model_name", self.Settings, "model")
self._warn_init_param_moved_to_settings("model_name", "model")
default_settings.model = model_name
if voice_id is not None:
_warn_deprecated_param("voice_id", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice_id", "voice")
default_settings.voice = voice_id
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
default_settings.language = str(params.language) if params.language else "en"
default_settings.speed = params.speed

View File

@@ -25,7 +25,7 @@ from pipecat.frames.frames import (
TTSStoppedFrame,
)
from pipecat.processors.frame_processor import FrameDirection
from pipecat.services.settings import NOT_GIVEN, TTSSettings, _NotGiven, _warn_deprecated_param
from pipecat.services.settings import NOT_GIVEN, TTSSettings, _NotGiven
from pipecat.services.tts_service import TTSService
from pipecat.utils.tracing.service_decorators import traced_tts
@@ -147,12 +147,12 @@ class HumeTTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated)
if voice_id is not None:
_warn_deprecated_param("voice_id", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice_id", "voice")
default_settings.voice = voice_id
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
default_settings.description = params.description
default_settings.speed = params.speed

View File

@@ -40,7 +40,7 @@ from pipecat import version as pipecat_version
USER_AGENT = f"pipecat/{pipecat_version()}"
from pydantic import BaseModel
from pipecat.services.settings import NOT_GIVEN, TTSSettings, _NotGiven, _warn_deprecated_param
from pipecat.services.settings import NOT_GIVEN, TTSSettings, _NotGiven
try:
from websockets.asyncio.client import connect as websocket_connect
@@ -174,15 +174,15 @@ class InworldHttpTTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated)
if voice_id is not None:
_warn_deprecated_param("voice_id", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice_id", "voice")
default_settings.voice = voice_id
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
if params.speaking_rate is not None:
default_settings.speaking_rate = params.speaking_rate
@@ -592,17 +592,17 @@ class InworldTTSService(WebsocketTTSService):
# 2. Apply direct init arg overrides (deprecated)
if voice_id is not None:
_warn_deprecated_param("voice_id", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice_id", "voice")
default_settings.voice = voice_id
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
# 3. Apply params overrides — only if settings not provided
_buffer_max_delay_ms = None
_buffer_char_threshold = None
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
if params.speaking_rate is not None:
default_settings.speaking_rate = params.speaking_rate

View File

@@ -21,7 +21,7 @@ from pipecat.frames.frames import (
Frame,
TTSAudioRawFrame,
)
from pipecat.services.settings import TTSSettings, _warn_deprecated_param
from pipecat.services.settings import TTSSettings
from pipecat.services.tts_service import TTSService
from pipecat.transcriptions.language import Language, resolve_language
from pipecat.utils.tracing.service_decorators import traced_tts
@@ -155,12 +155,12 @@ class KokoroTTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated)
if voice_id is not None:
_warn_deprecated_param("voice_id", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice_id", "voice")
default_settings.voice = voice_id
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
default_settings.language = language_to_kokoro_language(params.language)

View File

@@ -22,7 +22,7 @@ from pipecat.frames.frames import (
TTSStoppedFrame,
)
from pipecat.processors.frame_processor import FrameDirection
from pipecat.services.settings import TTSSettings, _warn_deprecated_param
from pipecat.services.settings import TTSSettings
from pipecat.services.tts_service import InterruptibleTTSService
from pipecat.transcriptions.language import Language, resolve_language
from pipecat.utils.tracing.service_decorators import traced_tts
@@ -134,10 +134,10 @@ class LmntTTSService(InterruptibleTTSService):
# 2. Apply direct init arg overrides (deprecated)
if voice_id is not None:
_warn_deprecated_param("voice_id", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice_id", "voice")
default_settings.voice = voice_id
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
# 3. (No step 3, as there's no params object to apply)

View File

@@ -24,7 +24,7 @@ from pipecat.frames.frames import (
StartFrame,
TTSAudioRawFrame,
)
from pipecat.services.settings import NOT_GIVEN, TTSSettings, _NotGiven, _warn_deprecated_param
from pipecat.services.settings import NOT_GIVEN, TTSSettings, _NotGiven
from pipecat.services.tts_service import TTSService
from pipecat.transcriptions.language import Language, resolve_language
from pipecat.utils.tracing.service_decorators import traced_tts
@@ -243,15 +243,15 @@ class MiniMaxHttpTTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
if voice_id is not None:
_warn_deprecated_param("voice_id", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice_id", "voice")
default_settings.voice = voice_id
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
default_settings.speed = params.speed
default_settings.volume = params.volume

View File

@@ -16,7 +16,6 @@ from pipecat.adapters.services.open_ai_adapter import OpenAILLMInvocationParams
from pipecat.frames.frames import FunctionCallFromLLM
from pipecat.services.openai.base_llm import BaseOpenAILLMService
from pipecat.services.openai.llm import OpenAILLMService
from pipecat.services.settings import _warn_deprecated_param
@dataclass
@@ -64,7 +63,7 @@ class MistralLLMService(OpenAILLMService):
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
# 3. (No step 3, as there's no params object to apply)

View File

@@ -25,7 +25,7 @@ from pipecat.frames.frames import (
VisionFullResponseStartFrame,
VisionTextFrame,
)
from pipecat.services.settings import VisionSettings, _warn_deprecated_param
from pipecat.services.settings import VisionSettings
from pipecat.services.vision_service import VisionService
try:
@@ -110,7 +110,7 @@ class MoondreamService(VisionService):
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
# 4. Apply settings delta (canonical API, always wins)

View File

@@ -33,7 +33,7 @@ from pipecat.frames.frames import (
TTSStoppedFrame,
)
from pipecat.processors.frame_processor import FrameDirection
from pipecat.services.settings import NOT_GIVEN, TTSSettings, _NotGiven, _warn_deprecated_param
from pipecat.services.settings import NOT_GIVEN, TTSSettings, _NotGiven
from pipecat.services.tts_service import InterruptibleTTSService, TextAggregationMode, TTSService
from pipecat.transcriptions.language import Language, resolve_language
from pipecat.utils.tracing.service_decorators import traced_tts
@@ -159,12 +159,12 @@ class NeuphonicTTSService(InterruptibleTTSService):
# 2. Apply direct init arg overrides (deprecated)
if voice_id is not None:
_warn_deprecated_param("voice_id", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice_id", "voice")
default_settings.voice = voice_id
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
if params.language is not None:
default_settings.language = self.language_to_service_language(params.language)
@@ -493,12 +493,12 @@ class NeuphonicHttpTTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated)
if voice_id is not None:
_warn_deprecated_param("voice_id", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice_id", "voice")
default_settings.voice = voice_id
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
if params.language is not None:
default_settings.language = self.language_to_service_language(params.language)

View File

@@ -18,7 +18,6 @@ from pipecat.processors.aggregators.llm_context import LLMContext
from pipecat.processors.aggregators.openai_llm_context import OpenAILLMContext
from pipecat.services.openai.base_llm import BaseOpenAILLMService
from pipecat.services.openai.llm import OpenAILLMService
from pipecat.services.settings import _warn_deprecated_param
@dataclass
@@ -68,7 +67,7 @@ class NvidiaLLMService(OpenAILLMService):
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
# 3. (No step 3, as there's no params object to apply)

View File

@@ -23,7 +23,7 @@ from pipecat.frames.frames import (
StartFrame,
TranscriptionFrame,
)
from pipecat.services.settings import NOT_GIVEN, STTSettings, _NotGiven, _warn_deprecated_param
from pipecat.services.settings import NOT_GIVEN, STTSettings, _NotGiven
from pipecat.services.stt_latency import NVIDIA_TTFS_P99
from pipecat.services.stt_service import SegmentedSTTService, STTService
from pipecat.transcriptions.language import Language, resolve_language
@@ -185,7 +185,7 @@ class NvidiaSTTService(STTService):
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
default_settings.language = params.language
@@ -515,7 +515,7 @@ class NvidiaSegmentedSTTService(SegmentedSTTService):
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
default_settings.language = (
language_to_nvidia_riva_language(params.language or Language.EN_US) or "en-US"

View File

@@ -29,7 +29,7 @@ from pipecat.frames.frames import (
StartFrame,
TTSAudioRawFrame,
)
from pipecat.services.settings import NOT_GIVEN, TTSSettings, _NotGiven, _warn_deprecated_param
from pipecat.services.settings import NOT_GIVEN, TTSSettings, _NotGiven
from pipecat.services.tts_service import TTSService
from pipecat.transcriptions.language import Language
@@ -126,12 +126,12 @@ class NvidiaTTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated)
if voice_id is not None:
_warn_deprecated_param("voice_id", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice_id", "voice")
default_settings.voice = voice_id
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
if params.language is not None:
default_settings.language = params.language

View File

@@ -13,7 +13,6 @@ from loguru import logger
from pipecat.services.openai.base_llm import BaseOpenAILLMService
from pipecat.services.openai.llm import OpenAILLMService
from pipecat.services.settings import _warn_deprecated_param
@dataclass
@@ -60,7 +59,7 @@ class OLLamaLLMService(OpenAILLMService):
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
# 3. (No step 3, as there's no params object to apply)

View File

@@ -25,7 +25,7 @@ from pipecat.frames.frames import (
URLImageRawFrame,
)
from pipecat.services.image_service import ImageGenService
from pipecat.services.settings import NOT_GIVEN, ImageGenSettings, _NotGiven, _warn_deprecated_param
from pipecat.services.settings import NOT_GIVEN, ImageGenSettings, _NotGiven
@dataclass
@@ -90,11 +90,11 @@ class OpenAIImageGenService(ImageGenService):
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
if image_size is not None:
_warn_deprecated_param("image_size", self.Settings, "image_size")
self._warn_init_param_moved_to_settings("image_size", "image_size")
default_settings.image_size = image_size
# 4. Apply settings delta (canonical API, always wins)

View File

@@ -26,7 +26,6 @@ from pipecat.processors.aggregators.llm_response import (
)
from pipecat.processors.aggregators.openai_llm_context import OpenAILLMContext
from pipecat.services.openai.base_llm import BaseOpenAILLMService
from pipecat.services.settings import _warn_deprecated_param
@dataclass
@@ -120,7 +119,7 @@ class OpenAILLMService(BaseOpenAILLMService):
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
# Handle service_tier from deprecated params
@@ -129,7 +128,7 @@ class OpenAILLMService(BaseOpenAILLMService):
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
default_settings.frequency_penalty = params.frequency_penalty
default_settings.presence_penalty = params.presence_penalty

View File

@@ -63,7 +63,6 @@ from pipecat.services.settings import (
NOT_GIVEN,
LLMSettings,
_NotGiven,
_warn_deprecated_param,
is_given,
)
from pipecat.transcriptions.language import Language
@@ -294,7 +293,7 @@ class OpenAIRealtimeLLMService(LLMService):
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
if session_properties is not None:

View File

@@ -35,7 +35,7 @@ from pipecat.frames.frames import (
VADUserStoppedSpeakingFrame,
)
from pipecat.processors.frame_processor import FrameDirection
from pipecat.services.settings import NOT_GIVEN, STTSettings, _NotGiven, _warn_deprecated_param
from pipecat.services.settings import NOT_GIVEN, STTSettings, _NotGiven
from pipecat.services.stt_latency import OPENAI_REALTIME_TTFS_P99, OPENAI_TTFS_P99
from pipecat.services.stt_service import WebsocketSTTService
from pipecat.services.whisper.base_stt import (
@@ -126,13 +126,13 @@ class OpenAISTTService(BaseWhisperSTTService):
# --- 2. Deprecated direct-arg overrides ---
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
if prompt is not None:
_warn_deprecated_param("prompt", self.Settings, "prompt")
self._warn_init_param_moved_to_settings("prompt", "prompt")
default_settings.prompt = prompt
if temperature is not None:
_warn_deprecated_param("temperature", self.Settings, "temperature")
self._warn_init_param_moved_to_settings("temperature", "temperature")
default_settings.temperature = temperature
# --- 3. (no params object for this service) ---
@@ -310,16 +310,16 @@ class OpenAIRealtimeSTTService(WebsocketSTTService):
# --- 2. Deprecated direct-arg overrides ---
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
if language is not None and language != Language.EN:
_warn_deprecated_param("language", self.Settings, "language")
self._warn_init_param_moved_to_settings("language", "language")
default_settings.language = language
if prompt is not None:
_warn_deprecated_param("prompt", self.Settings, "prompt")
self._warn_init_param_moved_to_settings("prompt", "prompt")
default_settings.prompt = prompt
if noise_reduction is not None:
_warn_deprecated_param("noise_reduction", self.Settings, "noise_reduction")
self._warn_init_param_moved_to_settings("noise_reduction", "noise_reduction")
default_settings.noise_reduction = noise_reduction
# --- 3. (no params object for this service) ---

View File

@@ -23,7 +23,7 @@ from pipecat.frames.frames import (
StartFrame,
TTSAudioRawFrame,
)
from pipecat.services.settings import NOT_GIVEN, TTSSettings, _NotGiven, _warn_deprecated_param
from pipecat.services.settings import NOT_GIVEN, TTSSettings, _NotGiven
from pipecat.services.tts_service import TTSService
from pipecat.utils.tracing.service_decorators import traced_tts
@@ -166,21 +166,21 @@ class OpenAITTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated)
if voice is not None:
_warn_deprecated_param("voice", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice", "voice")
default_settings.voice = voice
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
if instructions is not None:
_warn_deprecated_param("instructions", self.Settings, "instructions")
self._warn_init_param_moved_to_settings("instructions", "instructions")
default_settings.instructions = instructions
if speed is not None:
_warn_deprecated_param("speed", self.Settings, "speed")
self._warn_init_param_moved_to_settings("speed", "speed")
default_settings.speed = speed
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
if params.instructions is not None:
default_settings.instructions = params.instructions

View File

@@ -54,7 +54,7 @@ from pipecat.processors.aggregators.openai_llm_context import (
from pipecat.processors.frame_processor import FrameDirection
from pipecat.services.llm_service import FunctionCallFromLLM, LLMService
from pipecat.services.openai.llm import OpenAIContextAggregatorPair
from pipecat.services.settings import LLMSettings, _warn_deprecated_param
from pipecat.services.settings import LLMSettings
from pipecat.transcriptions.language import Language
from pipecat.utils.time import time_now_iso8601
from pipecat.utils.tracing.service_decorators import traced_openai_realtime, traced_stt
@@ -173,7 +173,7 @@ class OpenAIRealtimeBetaLLMService(LLMService):
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
# 3. Apply settings delta (canonical API, always wins)
if settings is not None:

View File

@@ -18,7 +18,6 @@ from loguru import logger
from pipecat.adapters.services.open_ai_adapter import OpenAILLMInvocationParams
from pipecat.services.openai.base_llm import BaseOpenAILLMService
from pipecat.services.openai.llm import OpenAILLMService
from pipecat.services.settings import _warn_deprecated_param
try:
from openpipe import AsyncOpenAI as OpenPipeAI
@@ -80,7 +79,7 @@ class OpenPipeLLMService(OpenAILLMService):
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
# 3. (No step 3, as there's no params object to apply)

View File

@@ -17,7 +17,6 @@ from loguru import logger
from pipecat.services.openai.base_llm import BaseOpenAILLMService
from pipecat.services.openai.llm import OpenAILLMService
from pipecat.services.settings import _warn_deprecated_param
@dataclass
@@ -66,7 +65,7 @@ class OpenRouterLLMService(OpenAILLMService):
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
# 3. (No step 3, as there's no params object to apply)

View File

@@ -20,7 +20,6 @@ from pipecat.processors.aggregators.llm_context import LLMContext
from pipecat.processors.aggregators.openai_llm_context import OpenAILLMContext
from pipecat.services.openai.base_llm import BaseOpenAILLMService
from pipecat.services.openai.llm import OpenAILLMService
from pipecat.services.settings import _warn_deprecated_param
@dataclass
@@ -69,7 +68,7 @@ class PerplexityLLMService(OpenAILLMService):
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
# 3. (No step 3, as there's no params object to apply)

View File

@@ -19,7 +19,7 @@ from pipecat.frames.frames import (
Frame,
TTSStoppedFrame,
)
from pipecat.services.settings import TTSSettings, _warn_deprecated_param
from pipecat.services.settings import TTSSettings
from pipecat.services.tts_service import TTSService
from pipecat.utils.tracing.service_decorators import traced_tts
@@ -81,7 +81,7 @@ class PiperTTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated)
if voice_id is not None:
_warn_deprecated_param("voice_id", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice_id", "voice")
default_settings.voice = voice_id
# 3. (No step 3, as there's no params object to apply)
@@ -232,7 +232,7 @@ class PiperHttpTTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated)
if voice_id is not None:
_warn_deprecated_param("voice_id", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice_id", "voice")
default_settings.voice = voice_id
# 3. (No step 3, as there's no params object to apply)

View File

@@ -13,7 +13,6 @@ from loguru import logger
from pipecat.services.openai.base_llm import BaseOpenAILLMService
from pipecat.services.openai.llm import OpenAILLMService
from pipecat.services.settings import _warn_deprecated_param
@dataclass
@@ -61,7 +60,7 @@ class QwenLLMService(OpenAILLMService):
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
# 3. (No step 3, as there's no params object to apply)

View File

@@ -23,7 +23,7 @@ from pipecat.frames.frames import (
TTSStartedFrame,
TTSStoppedFrame,
)
from pipecat.services.settings import TTSSettings, _warn_deprecated_param
from pipecat.services.settings import TTSSettings
from pipecat.services.tts_service import WebsocketTTSService
from pipecat.utils.tracing.service_decorators import traced_tts
@@ -92,7 +92,7 @@ class ResembleAITTSService(WebsocketTTSService):
# 2. Apply direct init arg overrides (deprecated)
if voice_id is not None:
_warn_deprecated_param("voice_id", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice_id", "voice")
default_settings.voice = voice_id
# 3. (No step 3, as there's no params object to apply)

View File

@@ -31,7 +31,7 @@ from pipecat.frames.frames import (
TTSStoppedFrame,
)
from pipecat.processors.frame_processor import FrameDirection
from pipecat.services.settings import NOT_GIVEN, TTSSettings, _NotGiven, _warn_deprecated_param
from pipecat.services.settings import NOT_GIVEN, TTSSettings, _NotGiven
from pipecat.services.tts_service import (
InterruptibleTTSService,
TextAggregationMode,
@@ -241,15 +241,15 @@ class RimeTTSService(WebsocketTTSService):
# 2. Apply direct init arg overrides (deprecated)
if voice_id is not None:
_warn_deprecated_param("voice_id", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice_id", "voice")
default_settings.voice = voice_id
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
default_settings.language = (
self.language_to_service_language(params.language) if params.language else None
@@ -744,15 +744,15 @@ class RimeHttpTTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated)
if voice_id is not None:
_warn_deprecated_param("voice_id", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice_id", "voice")
default_settings.voice = voice_id
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
default_settings.language = (
self.language_to_service_language(params.language) if params.language else "eng"
@@ -974,15 +974,15 @@ class RimeNonJsonTTSService(InterruptibleTTSService):
# 2. Apply direct init arg overrides (deprecated)
if voice_id is not None:
_warn_deprecated_param("voice_id", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice_id", "voice")
default_settings.voice = voice_id
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
default_settings.language = (
self.language_to_service_language(params.language) if params.language else None

View File

@@ -24,7 +24,6 @@ from pipecat.processors.aggregators.openai_llm_context import OpenAILLMContext
from pipecat.services.llm_service import FunctionCallFromLLM
from pipecat.services.openai.base_llm import BaseOpenAILLMService
from pipecat.services.openai.llm import OpenAILLMService
from pipecat.services.settings import _warn_deprecated_param
from pipecat.utils.tracing.service_decorators import traced_llm
@@ -73,7 +72,7 @@ class SambaNovaLLMService(OpenAILLMService): # type: ignore
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
# 3. (No step 3, as there's no params object to apply)

View File

@@ -11,7 +11,6 @@ from typing import Any, Optional
from loguru import logger
from pipecat.services.settings import _warn_deprecated_param
from pipecat.services.stt_latency import SAMBANOVA_TTFS_P99
from pipecat.services.whisper.base_stt import (
BaseWhisperSTTService,
@@ -90,16 +89,16 @@ class SambaNovaSTTService(BaseWhisperSTTService): # type: ignore
# --- 2. Deprecated direct-arg overrides ---
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
if language is not None:
_warn_deprecated_param("language", self.Settings, "language")
self._warn_init_param_moved_to_settings("language", "language")
default_settings.language = self.language_to_service_language(language)
if prompt is not None:
_warn_deprecated_param("prompt", self.Settings, "prompt")
self._warn_init_param_moved_to_settings("prompt", "prompt")
default_settings.prompt = prompt
if temperature is not None:
_warn_deprecated_param("temperature", self.Settings, "temperature")
self._warn_init_param_moved_to_settings("temperature", "temperature")
default_settings.temperature = temperature
# --- 3. (no params object for this service) ---

View File

@@ -36,7 +36,6 @@ from pipecat.services.settings import (
NOT_GIVEN,
STTSettings,
_NotGiven,
_warn_deprecated_param,
is_given,
)
from pipecat.services.stt_latency import SARVAM_TTFS_P99
@@ -255,12 +254,12 @@ class SarvamSTTService(STTService):
# --- 2. Deprecated direct-arg overrides ---
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
# --- 3. Deprecated params overrides ---
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
default_settings.language = params.language
default_settings.prompt = params.prompt

View File

@@ -60,7 +60,7 @@ from pipecat.frames.frames import (
)
from pipecat.processors.frame_processor import FrameDirection
from pipecat.services.sarvam._sdk import sdk_headers
from pipecat.services.settings import NOT_GIVEN, TTSSettings, _NotGiven, _warn_deprecated_param
from pipecat.services.settings import NOT_GIVEN, TTSSettings, _NotGiven
from pipecat.services.tts_service import InterruptibleTTSService, TextAggregationMode, TTSService
from pipecat.transcriptions.language import Language, resolve_language
from pipecat.utils.tracing.service_decorators import traced_tts
@@ -462,15 +462,15 @@ class SarvamHttpTTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
if voice_id is not None:
_warn_deprecated_param("voice_id", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice_id", "voice")
default_settings.voice = voice_id
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
if params.language is not None:
default_settings.language = (
@@ -874,10 +874,10 @@ class SarvamTTSService(InterruptibleTTSService):
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
if voice_id is not None:
_warn_deprecated_param("voice_id", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice_id", "voice")
default_settings.voice = voice_id
# Init-only audio format fields (not runtime-updatable)
@@ -886,7 +886,7 @@ class SarvamTTSService(InterruptibleTTSService):
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
if params.language is not None:
default_settings.language = (

View File

@@ -37,7 +37,6 @@ Key helpers:
from __future__ import annotations
import copy
import warnings
from dataclasses import dataclass, field, fields
from typing import TYPE_CHECKING, Any, ClassVar, Dict, Mapping, Optional, Type, TypeVar
@@ -49,45 +48,6 @@ if TYPE_CHECKING:
from pipecat.turns.user_turn_completion_mixin import UserTurnCompletionConfig
# ---------------------------------------------------------------------------
# Deprecation helper
# ---------------------------------------------------------------------------
def _warn_deprecated_param(
param_name: str,
settings_class: type,
settings_field: str | None = None,
stacklevel: int = 3,
):
"""Emit DeprecationWarning for a deprecated init parameter.
Args:
param_name: Name of the deprecated parameter.
settings_class: The settings class to use instead.
settings_field: Specific field on the settings class, if different
from *param_name*.
stacklevel: Stack depth for the warning. Default ``3`` targets
the caller's caller (i.e. user code that instantiated the service).
"""
settings_class_name = settings_class.__name__
if settings_field:
msg = (
f"The `{param_name}` parameter is deprecated. "
f"Use `settings={settings_class_name}({settings_field}=...)` instead. "
f"If both are provided, `settings` takes precedence."
)
else:
msg = (
f"The `{param_name}` parameter is deprecated. "
f"Use `settings={settings_class_name}(...)` instead. "
f"If both are provided, `settings` takes precedence."
)
with warnings.catch_warnings():
warnings.simplefilter("always")
warnings.warn(msg, DeprecationWarning, stacklevel=stacklevel)
# ---------------------------------------------------------------------------
# NOT_GIVEN sentinel
# ---------------------------------------------------------------------------

View File

@@ -24,7 +24,7 @@ from pipecat.frames.frames import (
VADUserStoppedSpeakingFrame,
)
from pipecat.processors.frame_processor import FrameDirection
from pipecat.services.settings import NOT_GIVEN, STTSettings, _NotGiven, _warn_deprecated_param
from pipecat.services.settings import NOT_GIVEN, STTSettings, _NotGiven
from pipecat.services.stt_latency import SONIOX_TTFS_P99
from pipecat.services.stt_service import WebsocketSTTService
from pipecat.transcriptions.language import Language
@@ -233,12 +233,12 @@ class SonioxSTTService(WebsocketSTTService):
# --- 2. Deprecated direct-arg overrides ---
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
# --- 3. Deprecated params overrides ---
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
default_settings.model = params.model
if params.audio_format is not None:

View File

@@ -33,7 +33,7 @@ from pipecat.frames.frames import (
VADUserStoppedSpeakingFrame,
)
from pipecat.processors.frame_processor import FrameDirection
from pipecat.services.settings import NOT_GIVEN, STTSettings, _NotGiven, _warn_deprecated_param
from pipecat.services.settings import NOT_GIVEN, STTSettings, _NotGiven
from pipecat.services.stt_latency import SPEECHMATICS_TTFS_P99
from pipecat.services.stt_service import STTService
from pipecat.transcriptions.language import Language, resolve_language
@@ -454,7 +454,7 @@ class SpeechmaticsSTTService(STTService):
# --- 3. Deprecated params overrides ---
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
default_settings.language = _params.language
default_settings.domain = _params.domain

View File

@@ -20,7 +20,7 @@ from pipecat.frames.frames import (
Frame,
TTSAudioRawFrame,
)
from pipecat.services.settings import NOT_GIVEN, TTSSettings, _NotGiven, _warn_deprecated_param
from pipecat.services.settings import NOT_GIVEN, TTSSettings, _NotGiven
from pipecat.services.tts_service import TTSService
from pipecat.utils.network import exponential_backoff_time
from pipecat.utils.tracing.service_decorators import traced_tts
@@ -119,12 +119,12 @@ class SpeechmaticsTTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated)
if voice_id is not None:
_warn_deprecated_param("voice_id", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice_id", "voice")
default_settings.voice = voice_id
# 3. Apply params overrides — only if settings not provided
if params is not None:
_warn_deprecated_param("params", self.Settings)
self._warn_init_param_moved_to_settings("params")
if not settings:
default_settings.max_retries = params.max_retries

View File

@@ -13,7 +13,6 @@ from loguru import logger
from pipecat.services.openai.base_llm import BaseOpenAILLMService
from pipecat.services.openai.llm import OpenAILLMService
from pipecat.services.settings import _warn_deprecated_param
@dataclass
@@ -61,7 +60,7 @@ class TogetherLLMService(OpenAILLMService):
# 2. Apply direct init arg overrides (deprecated)
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
# 3. (No step 3, as there's no params object to apply)

View File

@@ -18,7 +18,7 @@ from openai import AsyncOpenAI
from openai.types.audio import Transcription
from pipecat.frames.frames import ErrorFrame, Frame, TranscriptionFrame
from pipecat.services.settings import NOT_GIVEN, STTSettings, _NotGiven, _warn_deprecated_param
from pipecat.services.settings import NOT_GIVEN, STTSettings, _NotGiven
from pipecat.services.stt_latency import WHISPER_TTFS_P99
from pipecat.services.stt_service import SegmentedSTTService
from pipecat.transcriptions.language import Language, resolve_language
@@ -190,16 +190,16 @@ class BaseWhisperSTTService(SegmentedSTTService):
# --- 2. Deprecated direct-arg overrides ---
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model
if language is not None:
_warn_deprecated_param("language", self.Settings, "language")
self._warn_init_param_moved_to_settings("language", "language")
default_settings.language = self.language_to_service_language(language)
if prompt is not None:
_warn_deprecated_param("prompt", self.Settings, "prompt")
self._warn_init_param_moved_to_settings("prompt", "prompt")
default_settings.prompt = prompt
if temperature is not None:
_warn_deprecated_param("temperature", self.Settings, "temperature")
self._warn_init_param_moved_to_settings("temperature", "temperature")
default_settings.temperature = temperature
# --- 3. (no params object for this service) ---

View File

@@ -20,7 +20,7 @@ from loguru import logger
from typing_extensions import TYPE_CHECKING, override
from pipecat.frames.frames import ErrorFrame, Frame, TranscriptionFrame
from pipecat.services.settings import NOT_GIVEN, STTSettings, _NotGiven, _warn_deprecated_param
from pipecat.services.settings import NOT_GIVEN, STTSettings, _NotGiven
from pipecat.services.stt_service import SegmentedSTTService
from pipecat.transcriptions.language import Language, resolve_language
from pipecat.utils.time import time_now_iso8601
@@ -256,13 +256,13 @@ class WhisperSTTService(SegmentedSTTService):
# --- 2. Deprecated direct-arg overrides ---
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model if isinstance(model, str) else model.value
if no_speech_prob is not None:
_warn_deprecated_param("no_speech_prob", self.Settings, "no_speech_prob")
self._warn_init_param_moved_to_settings("no_speech_prob", "no_speech_prob")
default_settings.no_speech_prob = no_speech_prob
if language is not None:
_warn_deprecated_param("language", self.Settings, "language")
self._warn_init_param_moved_to_settings("language", "language")
default_settings.language = language
# --- 3. (no params object for this service) ---
@@ -432,16 +432,16 @@ class WhisperSTTServiceMLX(WhisperSTTService):
# --- 2. Deprecated direct-arg overrides ---
if model is not None:
_warn_deprecated_param("model", self.Settings, "model")
self._warn_init_param_moved_to_settings("model", "model")
default_settings.model = model if isinstance(model, str) else model.value
if no_speech_prob is not None:
_warn_deprecated_param("no_speech_prob", self.Settings, "no_speech_prob")
self._warn_init_param_moved_to_settings("no_speech_prob", "no_speech_prob")
default_settings.no_speech_prob = no_speech_prob
if language is not None:
_warn_deprecated_param("language", self.Settings, "language")
self._warn_init_param_moved_to_settings("language", "language")
default_settings.language = language
if temperature is not None:
_warn_deprecated_param("temperature", self.Settings, "temperature")
self._warn_init_param_moved_to_settings("temperature", "temperature")
default_settings.temperature = temperature
# --- 3. (no params object for this service) ---

View File

@@ -23,7 +23,7 @@ from pipecat.frames.frames import (
StartFrame,
TTSAudioRawFrame,
)
from pipecat.services.settings import TTSSettings, _warn_deprecated_param
from pipecat.services.settings import TTSSettings
from pipecat.services.tts_service import TTSService
from pipecat.transcriptions.language import Language, resolve_language
from pipecat.utils.tracing.service_decorators import traced_tts
@@ -122,7 +122,7 @@ class XTTSService(TTSService):
# 2. Apply direct init arg overrides (deprecated)
if voice_id is not None:
_warn_deprecated_param("voice_id", self.Settings, "voice")
self._warn_init_param_moved_to_settings("voice_id", "voice")
default_settings.voice = voice_id
# 3. (No step 3, as there's no params object to apply)