dograh/api/schemas/user_configuration.py

34 lines
1 KiB
Python
Raw Permalink Normal View History

2025-09-09 14:37:32 +05:30
from datetime import datetime
from pydantic import BaseModel, model_validator
2025-09-09 14:37:32 +05:30
from api.services.configuration.registry import (
EmbeddingsConfig,
2025-09-09 14:37:32 +05:30
LLMConfig,
RealtimeConfig,
2025-09-09 14:37:32 +05:30
STTConfig,
TTSConfig,
)
class UserConfiguration(BaseModel):
llm: LLMConfig | None = None
stt: STTConfig | None = None
tts: TTSConfig | None = None
embeddings: EmbeddingsConfig | None = None
realtime: RealtimeConfig | None = None
is_realtime: bool = False
2025-09-09 14:37:32 +05:30
test_phone_number: str | None = None
timezone: str | None = None
last_validated_at: datetime | None = None
@model_validator(mode="before")
@classmethod
def strip_incomplete_realtime_when_disabled(cls, data):
"""Skip realtime validation when is_realtime is False and api_key is missing."""
if isinstance(data, dict) and not data.get("is_realtime", False):
realtime = data.get("realtime")
if isinstance(realtime, dict) and not realtime.get("api_key"):
data.pop("realtime", None)
return data