diff --git a/.fern/metadata.json b/.fern/metadata.json index 3e6a357..3a73355 100644 --- a/.fern/metadata.json +++ b/.fern/metadata.json @@ -14,5 +14,5 @@ }, "exclude_types_from_init_exports": true }, - "originGitCommit": "f4b5b1d56fb73c4e26c11486424723c12e6376bc" + "originGitCommit": "9afc7ddf3c7c24bf5c80ae7cd4eb83c257d7ceff" } \ No newline at end of file diff --git a/.fern/replay.lock b/.fern/replay.lock index cea052a..83609b1 100644 --- a/.fern/replay.lock +++ b/.fern/replay.lock @@ -48,14 +48,20 @@ generations: cli_version: unknown generator_versions: fernapi/fern-python-sdk: 4.37.0 -current_generation: c210d15d50ce28b5edf1a02b33fe0f2855b69b8f + - commit_sha: e7ec17df8622ff081a4339a44fa3a4a8e2e6f21e + tree_hash: 300680ed735b4afab3b2fea7600c72b9d4968558 + timestamp: 2026-08-20T08:02:01.021Z + cli_version: unknown + generator_versions: + fernapi/fern-python-sdk: 4.37.0 +current_generation: e7ec17df8622ff081a4339a44fa3a4a8e2e6f21e patches: - id: patch-13d8e068 content_hash: sha256:97d879ab169016b9abaf1866427a8ebc45af608f69e063a07e5126c9613c329b original_commit: 13d8e0683ffa08bcfc9a381eb9604adf5abdbe0b original_message: "chore: ignore local venv and planning docs" original_author: plutoless - base_generation: c210d15d50ce28b5edf1a02b33fe0f2855b69b8f + base_generation: e7ec17df8622ff081a4339a44fa3a4a8e2e6f21e files: - .gitignore patch_content: | diff --git a/src/agora_agent/types/asr.py b/src/agora_agent/types/asr.py index 8e02cde..2f62cc6 100644 --- a/src/agora_agent/types/asr.py +++ b/src/agora_agent/types/asr.py @@ -14,6 +14,7 @@ from .assembly_ai_asr_params import AssemblyAiAsrParams from .deepgram_asr_params import DeepgramAsrParams from .fengming_asr_params import FengmingAsrParams +from .gemini_asr_params import GeminiAsrParams from .google_asr_params import GoogleAsrParams from .microsoft_asr_params import MicrosoftAsrParams from .open_ai_asr_params import OpenAiAsrParams @@ -133,6 +134,21 @@ class Config: extra = pydantic.Extra.allow +class Asr_Gemini(UncheckedBaseModel): + vendor: typing.Literal["gemini"] = "gemini" + language: typing.Optional[AsrLanguage] = None + params: GeminiAsrParams + + 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 + + class Asr_Amazon(UncheckedBaseModel): vendor: typing.Literal["amazon"] = "amazon" language: typing.Optional[AsrLanguage] = None @@ -262,6 +278,7 @@ class Config: Asr_Deepgram, Asr_Openai, Asr_Google, + Asr_Gemini, Asr_Amazon, Asr_Assemblyai, Asr_Speechmatics, diff --git a/src/agora_agent/types/gemini_asr.py b/src/agora_agent/types/gemini_asr.py new file mode 100644 index 0000000..dc0d1a8 --- /dev/null +++ b/src/agora_agent/types/gemini_asr.py @@ -0,0 +1,27 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel +from .asr_language import AsrLanguage +from .gemini_asr_params import GeminiAsrParams + + +class GeminiAsr(UncheckedBaseModel): + """ + Google Gemini ASR configuration. + """ + + language: typing.Optional[AsrLanguage] = None + params: GeminiAsrParams + + 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 diff --git a/src/agora_agent/types/gemini_asr_params.py b/src/agora_agent/types/gemini_asr_params.py new file mode 100644 index 0000000..aee08f7 --- /dev/null +++ b/src/agora_agent/types/gemini_asr_params.py @@ -0,0 +1,47 @@ +# This file was auto-generated by Fern from our API Definition. + +import typing + +import pydantic +from ..core.pydantic_utilities import IS_PYDANTIC_V2 +from ..core.unchecked_base_model import UncheckedBaseModel + + +class GeminiAsrParams(UncheckedBaseModel): + """ + Google Gemini ASR configuration parameters. + """ + + api_key: str = pydantic.Field() + """ + Google Gemini API key. + """ + + model: str = pydantic.Field() + """ + Gemini transcription model identifier. + """ + + sample_rate: typing.Optional[int] = pydantic.Field(default=None) + """ + Audio sample rate in Hz. + """ + + language: typing.Optional[str] = pydantic.Field(default=None) + """ + Language code for speech recognition. + """ + + word_timestamp: typing.Optional[bool] = pydantic.Field(default=None) + """ + Whether to include word-level timestamps in transcription results. + """ + + 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 diff --git a/src/agora_agent/types/mllm.py b/src/agora_agent/types/mllm.py index acc7171..5569048 100644 --- a/src/agora_agent/types/mllm.py +++ b/src/agora_agent/types/mllm.py @@ -71,6 +71,11 @@ class Mllm(UncheckedBaseModel): Agent greeting message. """ + greeting: typing.Optional[str] = pydantic.Field(default=None) + """ + Greeting message for the MLLM session. + """ + failure_message: typing.Optional[str] = pydantic.Field(default=None) """ Agent failure message. diff --git a/src/agora_agent/types/mllm_vendor.py b/src/agora_agent/types/mllm_vendor.py index 6da87bb..16e7528 100644 --- a/src/agora_agent/types/mllm_vendor.py +++ b/src/agora_agent/types/mllm_vendor.py @@ -2,4 +2,6 @@ import typing -MllmVendor = typing.Union[typing.Literal["openai", "azure", "gemini", "vertexai", "xai", "qwen_omni"], typing.Any] +MllmVendor = typing.Union[ + typing.Literal["openai", "azure", "gemini", "vertexai", "xai", "qwen_omni", "openai_gpt_live"], typing.Any +]