Spaces:
Sleeping
Sleeping
| from app.databases.mongo_handler import MongoDBHandler | |
| from app.main import SessionManager | |
| import logging | |
| class StorageService: | |
| def __init__(self): | |
| self.logger = logging.getLogger(__name__) | |
| self.session_manager = SessionManager() | |
| self.mongo_handler = MongoDBHandler() | |
| async def add_conversation(self, session_id: str, query: str, response: str, sources: list = None): | |
| """Save conversation to both session manager and MongoDB""" | |
| try: | |
| # Save to session manager (memory) | |
| self.session_manager.add_conversation(session_id, query, response) | |
| # Save to MongoDB (persistent) | |
| mongo_id = self.mongo_handler.save_conversation( | |
| session_id=session_id, | |
| query=query, | |
| response=response, | |
| metadata={"sources": sources} if sources else {} | |
| ) | |
| self.logger.debug(f"Conversation saved to MongoDB with ID: {mongo_id}") | |
| return True | |
| except Exception as e: | |
| self.logger.error(f"Failed to save conversation: {e}") | |
| return False |