scam / app /database /__init__.py
Patoliya Chirag
Trinetra AI rebrand, Python 3.14 compatibility, local run support
3b7f6d7
"""
Database Layer - Storage backends for conversations, sessions, and embeddings.
This module provides:
- PostgreSQL: Conversation logs and extracted intelligence
- Redis: Session state management with TTL
- ChromaDB: Vector embeddings for semantic search
Task 6.2 Implementation:
- AC-2.3.1: State persists across API calls
- AC-2.3.2: Session expires after 1 hour
- AC-2.3.3: PostgreSQL stores complete logs
- AC-2.3.4: Redis failure degrades gracefully
Note: PostgreSQL is not imported here to avoid loading SQLAlchemy when POSTGRES_URL
is unset (Python 3.14 typing compatibility). Import from app.database.postgres directly
when POSTGRES_URL is configured.
"""
from app.database.redis_client import (
# Connection management
get_redis_client,
init_redis_client,
health_check,
is_redis_available,
# Session state management
save_session_state,
get_session_state,
delete_session_state,
update_session_state,
# Graceful degradation with fallback
save_session_state_with_fallback,
get_session_state_with_fallback,
delete_session_state_with_fallback,
# Session utilities
extend_session_ttl,
get_session_ttl,
get_active_session_count,
clear_all_sessions,
reset_fallback_cache,
get_fallback_cache_stats,
# Rate limiting
increment_rate_counter,
check_rate_limit,
# Constants
DEFAULT_SESSION_TTL,
)
from app.database.chromadb_client import (
get_chromadb_client,
store_embedding,
search_similar,
)
__all__ = [
# Redis - Connection
"get_redis_client",
"init_redis_client",
"health_check",
"is_redis_available",
# Redis - Session state
"save_session_state",
"get_session_state",
"delete_session_state",
"update_session_state",
# Redis - Graceful degradation
"save_session_state_with_fallback",
"get_session_state_with_fallback",
"delete_session_state_with_fallback",
# Redis - Utilities
"extend_session_ttl",
"get_session_ttl",
"get_active_session_count",
"clear_all_sessions",
"reset_fallback_cache",
"get_fallback_cache_stats",
# Redis - Rate limiting
"increment_rate_counter",
"check_rate_limit",
# Redis - Constants
"DEFAULT_SESSION_TTL",
# ChromaDB
"get_chromadb_client",
"store_embedding",
"search_similar",
]