Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion src/google/adk/agents/invocation_context.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
from ..events._branch_path import _BranchPath
from ..events.event import Event
from ..live._active_streaming_tool import ActiveStreamingTool
from ..live._audio_cache_manager import RealtimeCacheEntry as RealtimeCacheEntry
from ..live._cache_manager import RealtimeCacheEntry
from ..live._transcription_entry import TranscriptionEntry
from ..live.live_request_queue import LiveRequestQueue
from ..memory.base_memory_service import BaseMemoryService
Expand Down Expand Up @@ -235,6 +235,12 @@ class InvocationContext(BaseModel):
output_realtime_cache: list[RealtimeCacheEntry] | None = None
"""Caches output audio chunks before flushing to session and artifact services."""

input_media_realtime_cache: list[RealtimeCacheEntry] | None = None
"""Caches input media (video/image) frames before flushing to session and artifact services."""

output_media_realtime_cache: list[RealtimeCacheEntry] | None = None
"""Caches output media (video/image) frames before flushing to session and artifact services."""

run_config: RunConfig | None = None
"""Configurations for live agents under this invocation."""

Expand Down
23 changes: 17 additions & 6 deletions src/google/adk/flows/llm_flows/audio_cache_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"""Backward compatibility module for AudioCacheManager.

AudioCacheManager and AudioCacheConfig are no longer public; they live in
``google.adk.live._audio_cache_manager`` and this module only keeps
``google.adk.live._cache_manager`` and this module only keeps
existing imports working. RealtimeCacheEntry is public as
``google.adk.agents.invocation_context.RealtimeCacheEntry``.
"""
Expand All @@ -24,14 +24,25 @@

import warnings

from ...live._audio_cache_manager import AudioCacheConfig as AudioCacheConfig
from ...live._audio_cache_manager import AudioCacheManager as AudioCacheManager
from ...live._audio_cache_manager import logger as logger
from ...live._audio_cache_manager import RealtimeCacheEntry as RealtimeCacheEntry
from ...live._cache_manager import AudioCacheConfig
from ...live._cache_manager import AudioCacheManager
from ...live._cache_manager import CacheConfig
from ...live._cache_manager import CacheManager
from ...live._cache_manager import logger
from ...live._cache_manager import RealtimeCacheEntry

warnings.warn(
'google.adk.flows.llm_flows.audio_cache_manager is deprecated; use'
' google.adk.live._audio_cache_manager instead.',
' google.adk.live._cache_manager instead.',
DeprecationWarning,
stacklevel=2,
)

__all__ = [
'AudioCacheConfig',
'AudioCacheManager',
'CacheConfig',
'CacheManager',
'RealtimeCacheEntry',
'logger',
]
33 changes: 31 additions & 2 deletions src/google/adk/flows/llm_flows/base_llm_flow.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,12 @@
from abc import ABC
from collections.abc import Iterator
import logging
from typing import Any
from typing import AsyncGenerator
from typing import cast
from typing import Optional
from typing import TYPE_CHECKING
import warnings

from google.adk.platform import time as platform_time
from google.genai import types
Expand All @@ -31,7 +33,7 @@
from ...agents.invocation_context import InvocationContext
from ...events.event import Event
from ...live import _live_llm_flow
from ...live._audio_cache_manager import AudioCacheManager
from ...live._cache_manager import CacheManager
from ...live._flow_utils import DEFAULT_ENABLE_CACHE_STATISTICS as DEFAULT_ENABLE_CACHE_STATISTICS
from ...live._flow_utils import DEFAULT_MAX_RECONNECT_ATTEMPTS as DEFAULT_MAX_RECONNECT_ATTEMPTS
from ...live._flow_utils import DEFAULT_TASK_COMPLETION_DELAY as DEFAULT_TASK_COMPLETION_DELAY
Expand Down Expand Up @@ -126,7 +128,34 @@ def __init__(self) -> None:
self.response_processors: list[BaseLlmResponseProcessor] = []

# Initialize configuration and managers
self.audio_cache_manager = AudioCacheManager()
self.cache_manager = CacheManager()
self.audio_cache_manager = self.cache_manager

def __getattribute__(self, name: str) -> Any:
if name == 'audio_cache_manager':
warnings.warn(
'audio_cache_manager is deprecated; use cache_manager instead.',
DeprecationWarning,
stacklevel=2,
)
return super().__getattribute__('cache_manager')
return super().__getattribute__(name)

def __setattr__(self, name: str, value: Any) -> None:
if name == 'audio_cache_manager':
if 'audio_cache_manager' in super().__getattribute__('__dict__'):
warnings.warn(
'audio_cache_manager is deprecated; use cache_manager instead.',
DeprecationWarning,
stacklevel=2,
)
super().__setattr__('cache_manager', value)
elif (
name == 'cache_manager'
and 'audio_cache_manager' in super().__getattribute__('__dict__')
):
super().__setattr__('audio_cache_manager', value)
super().__setattr__(name, value)

def _request_processor_lists(
self,
Expand Down
Loading
Loading