import requests
class AgentService:
def __init__(self):
self.vapi_base_url = "https://api.vapi.ai/assistants"
self.retell_base_url = "https://api.retellai.com/agents"
self.vapi_token = "YOUR_VAPI_TOKEN"
self.retell_token = "YOUR_RETELL_TOKEN"
def create_agent(self, request):
provider = request.provider.lower()
if provider == "vapi":
return self._create_vapi_agent(request)
elif provider == "retell":
return self._create_retell_agent(request)
else:
raise Exception("Invalid provider. Choose either 'vapi' or 'retell'.")
def _create_vapi_agent(self, request):
headers = {
"Authorization": f"Bearer {self.vapi_token}",
"Content-Type": "application/json"
}
payload = {
"name": request.name,
"voice_id": request.voice_id,
"language": request.language or "en"
}
response = requests.post(
f"{self.vapi_base_url}",
headers=headers,
json=payload
)
if response.status_code != 200:
raise Exception(f"Vapi Error: {response.text}")
return response.json()
def _create_retell_agent(self, request):
headers = {
"Authorization": f"Bearer {self.retell_token}",
"Content-Type": "application/json"
}
payload = {
"name": request.name,
"voice": request.voice,
}
response = requests.post(
f"{self.retell_base_url}",
headers=headers,
json=payload
)
if response.status_code != 200:
raise Exception(f"Retell Error: {response.text}")
return response.json()