@@ -1136,24 +1136,21 @@ async def get_thread(
11361136 items .reverse ()
11371137 return items
11381138
1139- async def get_user_summary (self , user_id : str ) -> list [dict [str , Any ]]:
1140- """Retrieve user summary documents from Cosmos DB, newest first ."""
1141- await self . _require_cosmos ()
1139+ async def get_user_summary (self , user_id : str ) -> Optional [dict [str , Any ]]:
1140+ """Retrieve the user's summary document from Cosmos DB, or ``None`` if absent ."""
1141+ from azure . cosmos . exceptions import CosmosResourceNotFoundError
11421142
1143- query = (
1144- "SELECT c.id, c.user_id, c.thread_id, c.role, c.type, "
1145- "c.content, c.metadata, c.created_at "
1146- "FROM c WHERE c.user_id = @user_id AND c.type = 'user_summary' "
1147- "ORDER BY c.created_at DESC"
1148- )
1149- parameters = [{"name" : "@user_id" , "value" : user_id }]
1150- logger .debug ("async get_user_summary query: %s" , query )
1143+ await self ._require_cosmos ()
11511144
11521145 try :
1153- items_iter = self ._container_client .query_items (query = query , parameters = parameters )
1154- return [item async for item in items_iter ]
1146+ return await self ._container_client .read_item (
1147+ item = f"user_summary_{ user_id } " ,
1148+ partition_key = [user_id , "__user_summary__" ],
1149+ )
1150+ except CosmosResourceNotFoundError :
1151+ return None
11551152 except Exception as exc :
1156- raise CosmosOperationError (f"async get_user_summary query failed: { exc } " ) from exc
1153+ raise CosmosOperationError (f"async get_user_summary read failed: { exc } " ) from exc
11571154
11581155 # ------------------------------------------------------------------
11591156 # Tag operations
0 commit comments