|
from dataclasses import dataclass |
|
from typing import Dict, Optional, Any |
|
|
|
|
|
@dataclass |
|
class BotType: |
|
name: str |
|
module: str |
|
config_key: str |
|
environment_variables: list[str] |
|
optional_environment_variables: list[str] |
|
|
|
def has_test_mode(self, body: Dict[str, Any]) -> bool: |
|
if self.config_key in body: |
|
return bool(body[self.config_key].get("testInPrebuilt")) |
|
return False |
|
|
|
|
|
call_transfer = BotType( |
|
name="call_transfer", |
|
module="call_transfer", |
|
config_key="call_transfer", |
|
environment_variables=["DAILY_API_KEY", "OPENAI_API_KEY", "CARTESIA_API_KEY"], |
|
optional_environment_variables=["DIAL_IN_FROM_NUMBER", "DIAL_OUT_TO_NUMBER", "OPERATOR_NUMBER"], |
|
) |
|
|
|
simple_dialin = BotType( |
|
name="simple_dialin", |
|
module="simple_dialin", |
|
config_key="simple_dialin", |
|
environment_variables=["DAILY_API_KEY", "OPENAI_API_KEY", "CARTESIA_API_KEY"], |
|
optional_environment_variables=["DIAL_IN_FROM_NUMBER"], |
|
) |
|
|
|
simple_dialout = BotType( |
|
name="simple_dialout", |
|
module="simple_dialout", |
|
config_key="simple_dialout", |
|
environment_variables=["DAILY_API_KEY", "OPENAI_API_KEY", "CARTESIA_API_KEY"], |
|
optional_environment_variables=["DIAL_OUT_TO_NUMBER"], |
|
) |
|
|
|
voicemail_detection = BotType( |
|
name="voicemail_detection", |
|
module="voicemail_detection", |
|
config_key="voicemail_detection", |
|
environment_variables=["DAILY_API_KEY", "OPENAI_API_KEY", "DEEPGRAM_API_KEY", "CARTESIA_API_KEY"], |
|
optional_environment_variables=["DIAL_OUT_TO_NUMBER"], |
|
) |