| 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"], |
| ) |