Add Settings subclasses to all services and auto-discovered init tests
- Add dedicated Settings subclasses to 20 LLM services that were borrowing parent Settings classes (e.g. AzureLLMSettings, GroqLLMSettings) so users don't need cross-module imports - Fix field defaults to NOT_GIVEN in BaseWhisperSTTSettings, OpenAIRealtimeSTTSettings, and NvidiaSegmentedSTTSettings for delta-mode safety - Fix incomplete default_settings in AWS, Cartesia, ElevenLabs, Fish, and Whisper services so validate_complete() passes - Add auto-discovered tests that verify all Settings classes default to NOT_GIVEN (delta safety) and all services initialize with complete settings (store completeness)
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
|
||||
"""Cerebras LLM service implementation using OpenAI-compatible interface."""
|
||||
|
||||
from dataclasses import dataclass
|
||||
from typing import Optional
|
||||
|
||||
from loguru import logger
|
||||
@@ -16,6 +17,13 @@ from pipecat.services.openai.llm import OpenAILLMService
|
||||
from pipecat.services.settings import _warn_deprecated_param
|
||||
|
||||
|
||||
@dataclass
|
||||
class CerebrasLLMSettings(OpenAILLMSettings):
|
||||
"""Settings for Cerebras LLM service."""
|
||||
|
||||
pass
|
||||
|
||||
|
||||
class CerebrasLLMService(OpenAILLMService):
|
||||
"""A service for interacting with Cerebras's API using the OpenAI-compatible interface.
|
||||
|
||||
@@ -29,7 +37,7 @@ class CerebrasLLMService(OpenAILLMService):
|
||||
api_key: str,
|
||||
base_url: str = "https://api.cerebras.ai/v1",
|
||||
model: Optional[str] = None,
|
||||
settings: Optional[OpenAILLMSettings] = None,
|
||||
settings: Optional[CerebrasLLMSettings] = None,
|
||||
**kwargs,
|
||||
):
|
||||
"""Initialize the Cerebras LLM service.
|
||||
@@ -47,11 +55,11 @@ class CerebrasLLMService(OpenAILLMService):
|
||||
**kwargs: Additional keyword arguments passed to OpenAILLMService.
|
||||
"""
|
||||
# 1. Initialize default_settings with hardcoded defaults
|
||||
default_settings = OpenAILLMSettings(model="gpt-oss-120b")
|
||||
default_settings = CerebrasLLMSettings(model="gpt-oss-120b")
|
||||
|
||||
# 2. Apply direct init arg overrides (deprecated)
|
||||
if model is not None:
|
||||
_warn_deprecated_param("model", OpenAILLMSettings, "model")
|
||||
_warn_deprecated_param("model", CerebrasLLMSettings, "model")
|
||||
default_settings.model = model
|
||||
|
||||
# 4. Apply settings delta (canonical API, always wins)
|
||||
|
||||
Reference in New Issue
Block a user