From 682b997c65306cba848a09ef0b28e34d2dfae02c Mon Sep 17 00:00:00 2001 From: cthomas Date: Wed, 28 May 2025 14:13:02 -0700 Subject: [PATCH] feat(asyncify): migrate retrieve group (#2494) --- letta/server/rest_api/routers/v1/groups.py | 6 +++--- letta/services/group_manager.py | 7 +++++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/letta/server/rest_api/routers/v1/groups.py b/letta/server/rest_api/routers/v1/groups.py index c6c6fb12..25049536 100644 --- a/letta/server/rest_api/routers/v1/groups.py +++ b/letta/server/rest_api/routers/v1/groups.py @@ -52,7 +52,7 @@ def count_groups( @router.get("/{group_id}", response_model=Group, operation_id="retrieve_group") -def retrieve_group( +async def retrieve_group( group_id: str, server: "SyncServer" = Depends(get_letta_server), actor_id: Optional[str] = Header(None, alias="user_id"), @@ -60,10 +60,10 @@ def retrieve_group( """ Retrieve the group by id. """ - actor = server.user_manager.get_user_or_default(user_id=actor_id) + actor = await server.user_manager.get_actor_or_default_async(actor_id=actor_id) try: - return server.group_manager.retrieve_group(group_id=group_id, actor=actor) + return await server.group_manager.retrieve_group_async(group_id=group_id, actor=actor) except NoResultFound as e: raise HTTPException(status_code=404, detail=str(e)) diff --git a/letta/services/group_manager.py b/letta/services/group_manager.py index a7895a52..1884e5d0 100644 --- a/letta/services/group_manager.py +++ b/letta/services/group_manager.py @@ -52,6 +52,13 @@ class GroupManager: group = GroupModel.read(db_session=session, identifier=group_id, actor=actor) return group.to_pydantic() + @trace_method + @enforce_types + async def retrieve_group_async(self, group_id: str, actor: PydanticUser) -> PydanticGroup: + async with db_registry.async_session() as session: + group = await GroupModel.read_async(db_session=session, identifier=group_id, actor=actor) + return group.to_pydantic() + @trace_method @enforce_types def create_group(self, group: GroupCreate, actor: PydanticUser) -> PydanticGroup: