Spaces:
Running
Running
| """ | |
| Chat Service - Handles all chat logic | |
| """ | |
| from typing import Dict | |
| import models.registry as model_registry | |
| from services.memory_service import MemoryService | |
| from services.persona_service import PersonaService | |
| from services.model_service import ModelService | |
| class ChatService: | |
| async def process_message(user_id: str, message: str, model_id: str, **kwargs) -> Dict: | |
| try: | |
| model_cfg = model_registry.get(model_id) | |
| # Get persona | |
| persona = kwargs.get("persona", "default") | |
| persona_data = PersonaService.get_persona(persona) | |
| # Load memory | |
| memory = MemoryService.load_recent_memory(user_id, 8) | |
| # Call model-specific logic | |
| result = await ModelService.get_model_response( | |
| user_id=user_id, | |
| message=message, | |
| model_id=model_id, | |
| persona=persona_data, | |
| memory=memory, | |
| **kwargs | |
| ) | |
| return result | |
| except Exception as e: | |
| logging.error(f"[ChatService] Error: {e}") | |
| return { | |
| "response": "๐ Something went wrong. Please try again.", | |
| "error": True | |
| } |