Add media resolution support to GeminiMultimodalLiveLLMService

This commit is contained in:
Mark Backman
2025-04-11 10:18:29 -04:00
parent dbd7869de7
commit 121e6d2157

View File

@@ -236,6 +236,15 @@ class GeminiMultimodalModalities(Enum):
AUDIO = "AUDIO" AUDIO = "AUDIO"
class GeminiMediaResolution(str, Enum):
"""Media resolution options for Gemini Multimodal Live."""
UNSPECIFIED = "MEDIA_RESOLUTION_UNSPECIFIED" # Use default
LOW = "MEDIA_RESOLUTION_LOW" # 64 tokens
MEDIUM = "MEDIA_RESOLUTION_MEDIUM" # 256 tokens
HIGH = "MEDIA_RESOLUTION_HIGH" # Zoomed reframing with 256 tokens
class InputParams(BaseModel): class InputParams(BaseModel):
frequency_penalty: Optional[float] = Field(default=None, ge=0.0, le=2.0) frequency_penalty: Optional[float] = Field(default=None, ge=0.0, le=2.0)
max_tokens: Optional[int] = Field(default=4096, ge=1) max_tokens: Optional[int] = Field(default=4096, ge=1)
@@ -247,6 +256,9 @@ class InputParams(BaseModel):
default=GeminiMultimodalModalities.AUDIO default=GeminiMultimodalModalities.AUDIO
) )
language: Optional[Language] = Field(default=Language.EN_US) language: Optional[Language] = Field(default=Language.EN_US)
media_resolution: Optional[GeminiMediaResolution] = Field(
default=GeminiMediaResolution.UNSPECIFIED
)
extra: Optional[Dict[str, Any]] = Field(default_factory=dict) extra: Optional[Dict[str, Any]] = Field(default_factory=dict)
@@ -319,6 +331,7 @@ class GeminiMultimodalLiveLLMService(LLMService):
"top_p": params.top_p, "top_p": params.top_p,
"modalities": params.modalities, "modalities": params.modalities,
"language": self._language_code, "language": self._language_code,
"media_resolution": params.media_resolution,
"extra": params.extra if isinstance(params.extra, dict) else {}, "extra": params.extra if isinstance(params.extra, dict) else {},
} }
@@ -518,6 +531,7 @@ class GeminiMultimodalLiveLLMService(LLMService):
}, },
"language_code": self._settings["language"], "language_code": self._settings["language"],
}, },
"media_resolution": self._settings["media_resolution"].value,
}, },
"output_audio_transcription": {}, "output_audio_transcription": {},
}, },