mirror of
https://github.com/meta-llama/llama-stack.git
synced 2025-12-18 10:39:48 +00:00
fix: Fix list_sessions()
Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
This commit is contained in:
parent
a4bad6c0b4
commit
d17d3c88cc
2 changed files with 377 additions and 8 deletions
|
|
@ -183,21 +183,39 @@ class AgentPersistence:
|
|||
)
|
||||
return int(value) if value else None
|
||||
|
||||
async def list_sessions(self) -> list[Session]:
|
||||
values = await self.kvstore.values_in_range(
|
||||
start_key=f"session:{self.agent_id}:",
|
||||
end_key=f"session:{self.agent_id}:\xff\xff\xff\xff",
|
||||
)
|
||||
async def _get_sessions_from_keys(self, keys: list[str]) -> list[Session]:
|
||||
"""
|
||||
Helper method to filter session keys and retrieve session objects.
|
||||
|
||||
Args:
|
||||
keys: List of keys from the KV store
|
||||
|
||||
Returns:
|
||||
List of parsed Session objects
|
||||
"""
|
||||
# filter session metadata to relevant keys (3 parts: agent_id, session_id, and turn_id)
|
||||
session_keys = [key for key in keys if len(key.split(":")) == 3]
|
||||
|
||||
sessions = []
|
||||
for value in values:
|
||||
for key in session_keys:
|
||||
try:
|
||||
session_info = Session(**json.loads(value))
|
||||
sessions.append(session_info)
|
||||
value = await self.kvstore.get(key)
|
||||
if value:
|
||||
session_info = Session(**json.loads(value))
|
||||
sessions.append(session_info)
|
||||
except Exception as e:
|
||||
log.error(f"Error parsing session info: {e}")
|
||||
continue
|
||||
return sessions
|
||||
|
||||
async def list_sessions(self) -> list[Session]:
|
||||
keys = await self.kvstore.keys_in_range(
|
||||
start_key=f"session:{self.agent_id}:",
|
||||
end_key=f"session:{self.agent_id}:\xff\xff\xff\xff",
|
||||
)
|
||||
sessions = await self._get_sessions_from_keys(keys)
|
||||
return sessions
|
||||
|
||||
async def delete_session_turns(self, session_id: str) -> None:
|
||||
"""Delete all turns and their associated data for a session.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue