You've already forked adk-python
mirror of
https://github.com/encounter/adk-python.git
synced 2026-03-30 10:57:20 -07:00
fix: Process ListEvents response correctly when getSession is called
When get session is being called on a session with more than 1 page of events (100+), the response of the subsequent listevents calls fails due to missing parsing logic. This change fixes the processing of the listevents responses. PiperOrigin-RevId: 783166959
This commit is contained in:
committed by
Copybara-Service
parent
498ce906dd
commit
a50419961c
@@ -216,29 +216,36 @@ class VertexAiSessionService(BaseSessionService):
|
||||
path=f'reasoningEngines/{reasoning_engine_id}/sessions/{session_id}/events',
|
||||
request_dict={},
|
||||
)
|
||||
list_events_api_response = _convert_api_response(list_events_api_response)
|
||||
converted_api_response = _convert_api_response(list_events_api_response)
|
||||
|
||||
# Handles empty response case
|
||||
if not list_events_api_response or list_events_api_response.get(
|
||||
# Handles empty response case where there are no events to fetch
|
||||
if not converted_api_response or converted_api_response.get(
|
||||
'httpHeaders', None
|
||||
):
|
||||
return session
|
||||
|
||||
session.events += [
|
||||
_from_api_event(event)
|
||||
for event in list_events_api_response['sessionEvents']
|
||||
for event in converted_api_response['sessionEvents']
|
||||
]
|
||||
|
||||
while list_events_api_response.get('nextPageToken', None):
|
||||
page_token = list_events_api_response.get('nextPageToken', None)
|
||||
while converted_api_response.get('nextPageToken', None):
|
||||
page_token = converted_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={},
|
||||
)
|
||||
converted_api_response = _convert_api_response(list_events_api_response)
|
||||
|
||||
# Handles empty response case where there are no more events to fetch
|
||||
if not converted_api_response or converted_api_response.get(
|
||||
'httpHeaders', None
|
||||
):
|
||||
break
|
||||
session.events += [
|
||||
_from_api_event(event)
|
||||
for event in list_events_api_response['sessionEvents']
|
||||
for event in converted_api_response['sessionEvents']
|
||||
]
|
||||
|
||||
session.events = [
|
||||
|
||||
@@ -201,7 +201,13 @@ class MockApiClient:
|
||||
if match:
|
||||
session_id = match.group(2)
|
||||
if match.group(3):
|
||||
return {'sessionEvents': MOCK_EVENT_JSON_3}
|
||||
page_token = match.group(3)
|
||||
if page_token == 'my_token':
|
||||
response = {'sessionEvents': MOCK_EVENT_JSON_3}
|
||||
response['nextPageToken'] = 'my_token2'
|
||||
return response
|
||||
else:
|
||||
return {}
|
||||
events_tuple = self.event_dict.get(session_id, ([], None))
|
||||
response = {'sessionEvents': events_tuple[0]}
|
||||
if events_tuple[1]:
|
||||
|
||||
Reference in New Issue
Block a user