33 lines
1.2 KiB
Python

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