| """ | |
| memory/checkpointer.py — LangGraph MemorySaver Konfigürasyonu | |
| AGENTIC PATTERN: Short-Term Memory (Checkpointing) | |
| ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ | |
| LangGraph MemorySaver, her oturum (thread_id) için state'i | |
| in-memory olarak saklar. Kullanıcı yeni mesaj gönderdiğinde | |
| graph, önceki state'ten devam eder — slot'lar kaybolmaz. | |
| thread_id = session_id: Her kullanıcı oturumu tamamen bağımsız. | |
| İki oturumun state'i birbirine karışamaz. | |
| Üretimde: SqliteSaver veya RedisSaver kullanılır. | |
| Öğrenme için: MemorySaver yeterli. | |
| """ | |
| from langgraph.checkpoint.memory import MemorySaver | |
| # Uygulama genelinde tek bir checkpointer instance | |
| _checkpointer = MemorySaver() | |
| def get_checkpointer() -> MemorySaver: | |
| """Global checkpointer instance'ını döndürür.""" | |
| return _checkpointer | |
| def get_thread_config(session_id: str) -> dict: | |
| """ | |
| LangGraph invoke/stream için gerekli config dict'ini döndürür. | |
| Kullanım: | |
| graph.invoke(state, config=get_thread_config(session_id)) | |
| """ | |
| return {"configurable": {"thread_id": session_id}} | |