From 1327fb5283d7d540658d73c337bc32c8d39b77c8 Mon Sep 17 00:00:00 2001 From: Devasheesh Mishra Date: Tue, 7 Oct 2025 08:27:39 +0530 Subject: [PATCH 1/2] feat: add status filter option for listing user sessions and introduce INSUFFICIENT_BALANCE status --- README.md | 8 +++++--- recallrai/models/session.py | 1 + recallrai/user.py | 5 +++++ 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index cdcd565..2ea7e37 100644 --- a/README.md +++ b/README.md @@ -202,18 +202,20 @@ except SessionNotFoundError as e: ### List Sessions ```python +from recallrai.models import SessionStatus from recallrai.exceptions import UserNotFoundError try: # First, get the user user = client.get_user("user123") - # List sessions for this user with optional metadata filters + # List sessions for this user with optional filters session_list = user.list_sessions( offset=0, limit=10, - metadata_filter={"type": "chat"}, # optional - user_metadata_filter={"role": "admin"} # optional + metadata_filter={"type": "chat"}, # optional: filter by session metadata + user_metadata_filter={"role": "admin"}, # optional: filter by user metadata + status_filter=[SessionStatus.PENDING, SessionStatus.PROCESSING] # optional: filter by session status ) print(f"Total sessions: {session_list.total}") print(f"Has more sessions: {session_list.has_more}") diff --git a/recallrai/models/session.py b/recallrai/models/session.py index fcbc3f1..c0078da 100644 --- a/recallrai/models/session.py +++ b/recallrai/models/session.py @@ -62,6 +62,7 @@ class SessionStatus(str, enum.Enum): PENDING = "pending" PROCESSING = "processing" PROCESSED = "processed" + INSUFFICIENT_BALANCE = "insufficient_balance" class SessionModel(BaseModel): diff --git a/recallrai/user.py b/recallrai/user.py index 666ba8b..981fd16 100644 --- a/recallrai/user.py +++ b/recallrai/user.py @@ -8,6 +8,7 @@ from .models import ( UserModel, SessionModel, + SessionStatus, SessionList, UserMemoriesList, UserMessagesList, @@ -244,6 +245,7 @@ def list_sessions( limit: int = 10, metadata_filter: Optional[Dict[str, Any]] = None, user_metadata_filter: Optional[Dict[str, Any]] = None, + status_filter: Optional[List[SessionStatus]] = None, ) -> SessionList: """ List sessions for this user with pagination. @@ -253,6 +255,7 @@ def list_sessions( limit: Maximum number of records to return. metadata_filter: Optional metadata filter for sessions. user_metadata_filter: Optional metadata filter for the user. + status_filter: Optional list of session statuses to filter by (e.g., ["pending", "processing", "processed", "insufficient_balance"]). Returns: List of sessions with pagination info. @@ -270,6 +273,8 @@ def list_sessions( params["metadata_filter"] = json.dumps(metadata_filter) if user_metadata_filter is not None: params["user_metadata_filter"] = json.dumps(user_metadata_filter) + if status_filter is not None: + params["status_filter"] = [status.value for status in status_filter] response = self._http.get( f"/api/v1/users/{self.user_id}/sessions", From 69218633ca0abd81d181151a0079ae1423148480 Mon Sep 17 00:00:00 2001 From: Devasheesh Mishra Date: Tue, 7 Oct 2025 09:13:15 +0530 Subject: [PATCH 2/2] feat: add include_system_prompt parameter to get_context method --- README.md | 1 + recallrai/session.py | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2ea7e37..5224533 100644 --- a/README.md +++ b/README.md @@ -290,6 +290,7 @@ try: # - last_n_messages: Number of last messages to include in context (optional, range: 1-100) # - last_n_summaries: Number of last summaries to include in context (optional, range: 1-20) # - timezone: Timezone for formatting timestamps (optional, e.g., 'America/New_York', None for UTC) + # - include_system_prompt: Whether to include the default system prompt of Recallr AI (default: True) except UserNotFoundError as e: print(f"Error: {e}") except SessionNotFoundError as e: diff --git a/recallrai/session.py b/recallrai/session.py index 448dc9d..6b8a589 100644 --- a/recallrai/session.py +++ b/recallrai/session.py @@ -103,7 +103,8 @@ def get_context( summaries_threshold: float = 0.5, last_n_messages: Optional[int] = None, last_n_summaries: Optional[int] = None, - timezone: Optional[str] = None + timezone: Optional[str] = None, + include_system_prompt: bool = True ) -> Context: """ Get the current context for this session. @@ -117,6 +118,7 @@ def get_context( last_n_messages: Number of last messages to include in context. last_n_summaries: Number of last summaries to include in context. timezone: Timezone for formatting timestamps (e.g., 'America/New_York'). None for UTC. + include_system_prompt: Whether to include the default system prompt of Recallr AI. Defaults to True. Returns: Context information with the memory text and whether memory was used. @@ -136,6 +138,7 @@ def get_context( "max_top_k": max_top_k, "memories_threshold": memories_threshold, "summaries_threshold": summaries_threshold, + "include_system_prompt": include_system_prompt, } if last_n_messages is not None: params["last_n_messages"] = last_n_messages