pipecat / bot_registry.py
Deadmon's picture
Update bot_registry.py
64382cc verified
from typing import Dict, Optional, Any
from bot_definitions import BotType, call_transfer, simple_dialin, simple_dialout, voicemail_detection
class BotRegistry:
def __init__(self):
self.bots: Dict[str, BotType] = {
"call_transfer": call_transfer,
"simple_dialin": simple_dialin,
"simple_dialout": simple_dialout,
"voicemail_detection": voicemail_detection,
}
def get_bot(self, name: str) -> Optional[BotType]:
return self.bots.get(name)
def detect_bot_type(self, body: Dict[str, Any]) -> Optional[str]:
for bot in self.bots.values():
if bot.config_key in body:
return bot.name
if all(key in body for key in ["From", "To", "callId", "callDomain"]):
return "call_transfer"
return None
def setup_configuration(self, config: Dict[str, Any]) -> Dict[str, Any]:
body = {}
bot_name = config.get("bot_type")
bot = self.get_bot(bot_name)
if bot:
body[bot.config_key] = config.get("settings", {})
return body