33 lines
1.2 KiB
Python
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 |