from typing import Dict from backend.app.bots.dayta import Dayta from backend.app.bots.intent_detector import IntentDetector from backend.app.bots.slot_filler import SlotFiller from backend.app.bots.adaptive_cards import AdaptiveCards from backend.app.services.house_price_predictor import HousePricePredictor from botbuilder.core import BotFrameworkAdapter, BotFrameworkAdapterSettings class BotFactory: def __init__(self): self._bots: Dict[str, object] = {} self.adapter_settings = BotFrameworkAdapterSettings(app_id="", app_password="") self.adapter = BotFrameworkAdapter(self.adapter_settings) # Shared services self.intent_detector = IntentDetector() self.slot_filler = SlotFiller() self.card_bot = AdaptiveCards() self.price_predictor = HousePricePredictor() # Register all bots self._bots["dayta"] = Dayta( intent_detector=self.intent_detector, card_bot=self.card_bot, slot_filler=self.slot_filler, price_predictor=self.price_predictor ) def get_bot(self, name: str): return self._bots.get(name) def get_adapter(self): return self.adapter