From 32dc145ace1dd20aa34fbfc618f5ba16c0334c05 Mon Sep 17 00:00:00 2001 From: Shangjie Chen Date: Sat, 19 Apr 2025 15:15:45 -0700 Subject: [PATCH] No public description PiperOrigin-RevId: 749399264 --- .../adk/sessions/database_session_service.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/google/adk/sessions/database_session_service.py b/src/google/adk/sessions/database_session_service.py index 53a14de..19aa75a 100644 --- a/src/google/adk/sessions/database_session_service.py +++ b/src/google/adk/sessions/database_session_service.py @@ -17,10 +17,10 @@ import copy from datetime import datetime import json import logging -from typing import Any -from typing import Optional +from typing import Any, Optional import uuid +from google.genai import types from sqlalchemy import Boolean from sqlalchemy import delete from sqlalchemy import Dialect @@ -136,7 +136,7 @@ class StorageEvent(Base): author: Mapped[str] = mapped_column(String) branch: Mapped[str] = mapped_column(String, nullable=True) timestamp: Mapped[DateTime] = mapped_column(DateTime(), default=func.now()) - content: Mapped[dict[str, Any]] = mapped_column(DynamicJSON) + content: Mapped[dict[str, Any]] = mapped_column(DynamicJSON, nullable=True) actions: Mapped[MutableDict[str, Any]] = mapped_column(PickleType) long_running_tool_ids_json: Mapped[Optional[str]] = mapped_column( @@ -576,8 +576,12 @@ def _merge_state(app_state, user_state, session_state): return merged_state -def _decode_content(content: dict[str, Any]) -> dict[str, Any]: +def _decode_content( + content: Optional[dict[str, Any]], +) -> Optional[types.Content]: + if not content: + return None for p in content["parts"]: if "inline_data" in p: p["inline_data"]["data"] = base64.b64decode(p["inline_data"]["data"][0]) - return content + return types.Content.model_validate(content)