fix: Continue fetching events if there are multiple pages.

Fixes https://github.com/google/adk-python/issues/920

PiperOrigin-RevId: 764985371
This commit is contained in:
Shangjie Chen
2025-05-29 19:42:17 -07:00
committed by Copybara-Service
parent 18fbe3cbfc
commit 65063023a5
2 changed files with 87 additions and 5 deletions

View File

@@ -159,15 +159,29 @@ class VertexAiSessionService(BaseSessionService):
if list_events_api_response.get('httpHeaders', None):
return session
session.events = [
session.events += [
_from_api_event(event)
for event in list_events_api_response['sessionEvents']
]
while list_events_api_response.get('nextPageToken', None):
page_token = list_events_api_response.get('nextPageToken', None)
list_events_api_response = await api_client.async_request(
http_method='GET',
path=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}/events?pageToken={page_token}',
request_dict={},
)
session.events += [
_from_api_event(event)
for event in list_events_api_response['sessionEvents']
]
session.events = [
event for event in session.events if event.timestamp <= update_timestamp
]
session.events.sort(key=lambda event: event.timestamp)
# Filter events based on config
if config:
if config.num_recent_events:
session.events = session.events[-config.num_recent_events :]