Initial Python rewrite

This commit is contained in:
2026-02-19 17:50:14 +00:00
parent da95a64fb7
commit faa04a0d01
158 changed files with 5122 additions and 1144 deletions

View File

@@ -0,0 +1,99 @@
from functools import lru_cache
from .config import settings
from .services import (
ConversationManagerService,
DLPService,
NotificationManagerService,
QuickReplyContentService,
)
from .services.firestore_service import FirestoreService
from .services.rag_service import RAGService
from .services.redis_service import RedisService
@lru_cache(maxsize=1)
def get_redis_service() -> RedisService:
"""Get Redis service instance."""
return RedisService(settings)
@lru_cache(maxsize=1)
def get_firestore_service() -> FirestoreService:
"""Get Firestore service instance."""
return FirestoreService(settings)
@lru_cache(maxsize=1)
def get_dlp_service() -> DLPService:
"""Get DLP service instance."""
return DLPService(settings)
@lru_cache(maxsize=1)
def get_quick_reply_content_service() -> QuickReplyContentService:
"""Get quick reply content service instance."""
return QuickReplyContentService(settings)
@lru_cache(maxsize=1)
def get_notification_manager() -> NotificationManagerService:
"""Get notification manager instance."""
return NotificationManagerService(
settings,
redis_service=get_redis_service(),
firestore_service=get_firestore_service(),
dlp_service=get_dlp_service(),
)
@lru_cache(maxsize=1)
def get_rag_service() -> RAGService:
"""Get RAG service instance."""
return RAGService(settings)
@lru_cache(maxsize=1)
def get_conversation_manager() -> ConversationManagerService:
"""Get conversation manager instance."""
return ConversationManagerService(
settings,
redis_service=get_redis_service(),
firestore_service=get_firestore_service(),
dlp_service=get_dlp_service(),
rag_service=get_rag_service(),
)
# Lifecycle management functions
def init_services(settings) -> None:
"""Initialize services (placeholder for compatibility)."""
# Services are lazy-loaded via lru_cache, no explicit init needed
async def startup_services() -> None:
"""Connect to external services on startup."""
# Connect to Redis
redis = get_redis_service()
await redis.connect()
async def shutdown_services() -> None:
"""Close all service connections on shutdown."""
# Close Redis
redis = get_redis_service()
await redis.close()
# Close Firestore
firestore = get_firestore_service()
await firestore.close()
# Close DLP
dlp = get_dlp_service()
await dlp.close()
# Close RAG
rag = get_rag_service()
await rag.close()