|
|
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: |
|
|
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() |
|
|
|
|
|
else: |
|
|
return get_sqlite_store() |
|
|
|
|
|
|
|
|
__all__ = ["initialize_database", "initialize_store"] |
|
|
|