# This file was auto-generated by Fern from our API Definition.

import typing

import pydantic
from ....core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel


class AgentV1SettingsAgentListenProviderV1(UniversalBaseModel):
    type: typing.Literal["deepgram"] = pydantic.Field(default="deepgram")
    """
    Provider type for speech-to-text
    """

    model: typing.Optional[str] = pydantic.Field(default=None)
    """
    Model to use for speech to text using the V1 API (e.g. Nova-3, Nova-2)
    """

    language: typing.Optional[str] = pydantic.Field(default=None)
    """
    Language code to use for speech-to-text. Can be a BCP-47 language tag (e.g. `en`), or `multi` for code-switching transcription
    """

    keyterms: typing.Optional[typing.List[str]] = pydantic.Field(default=None)
    """
    Prompt keyterm recognition to improve Keyword Recall Rate
    """

    smart_format: typing.Optional[bool] = pydantic.Field(default=None)
    """
    Applies smart formatting to improve transcript readability
    """

    if IS_PYDANTIC_V2:
        model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True)  # type: ignore # Pydantic v2
    else:

        class Config:
            frozen = True
            smart_union = True
            extra = pydantic.Extra.allow
