From 4632f8bc1e0318dd9d5057828a2fd8c851efb858 Mon Sep 17 00:00:00 2001 From: Navan Chauhan Date: Sun, 11 Feb 2024 07:52:32 -0700 Subject: more --- api-magic/outbound_call.py | 57 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 api-magic/outbound_call.py (limited to 'api-magic/outbound_call.py') diff --git a/api-magic/outbound_call.py b/api-magic/outbound_call.py new file mode 100644 index 0000000..f5e4bf1 --- /dev/null +++ b/api-magic/outbound_call.py @@ -0,0 +1,57 @@ +import os +from dotenv import load_dotenv + +load_dotenv() + +from vocode.streaming.models.telephony import TwilioConfig + +from vocode.streaming.telephony.conversation.outbound_call import OutboundCall +from vocode.streaming.telephony.config_manager.redis_config_manager import ( + RedisConfigManager, +) + +from speller_agent import SpellerAgentConfig, SpellerAgentFactory + +from vocode.streaming.agent.chat_gpt_agent import ChatGPTAgent + +from vocode.streaming.models.agent import ChatGPTAgentConfig +from vocode.streaming.models.message import BaseMessage + +from vocode.streaming.models.synthesizer import ElevenLabsSynthesizerConfig, AzureSynthesizerConfig + +BASE_URL = os.environ["BASE_URL"] + +import logging +logging.basicConfig(level=logging.DEBUG) + + +async def main(): + config_manager = RedisConfigManager() + + outbound_call = OutboundCall( + base_url=BASE_URL, + to_phone="+17208828227", + from_phone="+18445610144", + config_manager=config_manager, + agent_config=ChatGPTAgentConfig( + initial_message=BaseMessage(text="Hello. Can I order a pizza?"), + prompt_preamble="Act as a customer talking to 'Cosmos', a pizza establisment ordering a large pepperoni pizza for pickup. If asked for a name, your name is 'Hunter McRobie', and your credit card number is 4-7-4-3 2-4-0-1 5-7-9-2 0-5-3-9 CVV: 123 and expiration is 10/25. If asked for numbers, say them one by one. NEVER ACT AS COSMOS, ONLY AS THE CUSTOMER. Continue speaking if there are too many interuptions. Make sure you soundl like a pirate.",#"Have a polite conversation about life while talking like a pirate.", + generate_responses=True, + ), + twilio_config=TwilioConfig( + account_sid=os.environ["TWILIO_ACCOUNT_SID"], + auth_token=os.environ["TWILIO_AUTH_TOKEN"], + record=True + ), + synthesizer_config=ElevenLabsSynthesizerConfig.from_telephone_output_device( + api_key=os.getenv("ELEVENLABS_API_KEY"), + voice_id=os.getenv("ELEVENLABS_VOICE_ID") + ) + ) + + input("Press enter to start call...") + await outbound_call.start() + +if __name__ == "__main__": + import asyncio + asyncio.run(main()) \ No newline at end of file -- cgit v1.2.3