Spaces:
Sleeping
Sleeping
| import asyncio | |
| from langchain_core.runnables import RunnableConfig | |
| from loguru import logger | |
| async def get_session_message_count(graph, session_id: str) -> int: | |
| """Get message count from LangGraph state, returns 0 on error.""" | |
| try: | |
| # Use sync get_state() in a thread (SqliteSaver doesn't support async) | |
| thread_state = await asyncio.to_thread( | |
| graph.get_state, | |
| config=RunnableConfig(configurable={"thread_id": session_id}), | |
| ) | |
| if ( | |
| thread_state | |
| and thread_state.values | |
| and "messages" in thread_state.values | |
| ): | |
| return len(thread_state.values["messages"]) | |
| except Exception as e: | |
| logger.warning(f"Could not fetch message count for session {session_id}: {e}") | |
| return 0 | |