chore: Defer import of live, Client and _transformers in google.genai

This is targeting the Client import mostly, but also prevents future latency increase if the other modules in genai adds more 3p dependencies. This change will make ADK only import `live`, `Client` and `_transformers` just-in-time, therefore cutting down cold start latency.

Co-authored-by: Liang Wu <wuliang@google.com>
PiperOrigin-RevId: 831124329
This commit is contained in:
Liang Wu
2025-11-11 17:01:28 -08:00
committed by Copybara-Service
parent a550509441
commit 22ca7eefc0
6 changed files with 26 additions and 12 deletions
+6 -1
View File
@@ -27,7 +27,6 @@ from typing import Optional
from typing import TYPE_CHECKING
from typing import Union
from google.genai import Client
from google.genai import types
from typing_extensions import override
@@ -41,6 +40,8 @@ from .gemini_llm_connection import GeminiLlmConnection
from .llm_response import LlmResponse
if TYPE_CHECKING:
from google.genai import Client
from .llm_request import LlmRequest
logger = logging.getLogger('google_adk.' + __name__)
@@ -200,6 +201,8 @@ class Gemini(BaseLlm):
Returns:
The api client.
"""
from google.genai import Client
return Client(
http_options=types.HttpOptions(
headers=self._tracking_headers,
@@ -239,6 +242,8 @@ class Gemini(BaseLlm):
@cached_property
def _live_api_client(self) -> Client:
from google.genai import Client
return Client(
http_options=types.HttpOptions(
headers=self._tracking_headers, api_version=self._live_api_version