Spaces:
Sleeping
Sleeping
| from contextlib import AbstractAsyncContextManager | |
| from langgraph.checkpoint.mongodb.aio import AsyncMongoDBSaver | |
| from langgraph.checkpoint.postgres.aio import AsyncPostgresSaver | |
| from langgraph.checkpoint.sqlite.aio import AsyncSqliteSaver | |
| from core.settings import DatabaseType, settings | |
| from memory.mongodb import get_mongo_saver | |
| from memory.postgres import get_postgres_saver, get_postgres_store | |
| from memory.sqlite import get_sqlite_saver, get_sqlite_store | |
| def initialize_database() -> AbstractAsyncContextManager[ | |
| AsyncSqliteSaver | AsyncPostgresSaver | AsyncMongoDBSaver | |
| ]: | |
| """ | |
| Initialize the appropriate database checkpointer based on configuration. | |
| Returns an initialized AsyncCheckpointer instance. | |
| """ | |
| if settings.DATABASE_TYPE == DatabaseType.POSTGRES: | |
| return get_postgres_saver() | |
| if settings.DATABASE_TYPE == DatabaseType.MONGO: | |
| return get_mongo_saver() | |
| else: # Default to SQLite | |
| return get_sqlite_saver() | |
| def initialize_store(): | |
| """ | |
| Initialize the appropriate store based on configuration. | |
| Returns an async context manager for the initialized store. | |
| """ | |
| if settings.DATABASE_TYPE == DatabaseType.POSTGRES: | |
| return get_postgres_store() | |
| # TODO: Add Mongo store - https://pypi.org/project/langgraph-store-mongodb/ | |
| else: # Default to SQLite | |
| return get_sqlite_store() | |
| __all__ = ["initialize_database", "initialize_store"] | |