From 9bcd03fe2a1d798fe1c6d67cfe3d56e6f69c4fec Mon Sep 17 00:00:00 2001 From: Sarthak Deshpande Date: Fri, 18 Oct 2024 12:44:42 +0530 Subject: [PATCH] Added implementations for get_agents_session, delete_agents_session and delete_agents --- .../impls/meta_reference/agents/agents.py | 41 +++++++++++++++++-- 1 file changed, 37 insertions(+), 4 deletions(-) diff --git a/llama_stack/providers/impls/meta_reference/agents/agents.py b/llama_stack/providers/impls/meta_reference/agents/agents.py index 5a209d0b7..c938886b1 100644 --- a/llama_stack/providers/impls/meta_reference/agents/agents.py +++ b/llama_stack/providers/impls/meta_reference/agents/agents.py @@ -152,10 +152,43 @@ class MetaReferenceAgentsImpl(Agents): session_id: str, turn_ids: Optional[List[str]] = None, ) -> Session: - raise NotImplementedError() + session = await self.persistence_store.get(f"session:{agent_id}:{session_id}") + try: + session = Session(**json.loads(session)) + except json.JSONDecodeError as e: + raise ValueError( + f"Could not JSON decode session for {agent_id} and {session_id}" + ) from e + turns = [] + for turn_id in turn_ids: + turn = await self.persistence_store.get(f"session:{agent_id}:{session_id}:{turn_id}") + try: + turn = json.loads(turn) + except json.JSONDecodeError as e: + raise ValueError( + f"Could not JSON decode session for {agent_id} and {session_id}" + ) from e + try: + turn = Turn(**turn) + except Exception as e: + raise ValueError( + f"Could not validate(?) Turns for {turn_id}" + ) from e + turns.append(turn) + return Session( + session_name=session.session_name, + session_id=session_id, + turns=turns if turns else [], + started_at=session.started_at + ) async def delete_agents_session(self, agent_id: str, session_id: str) -> None: - raise NotImplementedError() - + try: + await self.persistence_store.delete(f"session:{agent_id}:{session_id}") + except: + raise ValueError("Session Key Not Found") async def delete_agents(self, agent_id: str) -> None: - raise NotImplementedError() + try: + await self.persistence_store.delete(f"agent:{agent_id}") + except: + raise ValueError("Agent Key not found")