import whisper from langchain.llms import OpenAI from langchain.agents import initialize_agent from langchain.agents.agent_toolkits import ZapierToolkit from langchain.utilities.zapier import ZapierNLAWrapper from dotenv import load_dotenv import os # Load environment variables from .env file load_dotenv() # Retrieve API keys from environment variables OPENAI_API_KEY = os.getenv("OPENAI_API_KEY") ZAPIER_NLA_API_KEY = os.getenv("ZAPIER_NLA_API_KEY") # Check if API keys are present if OPENAI_API_KEY is None or ZAPIER_NLA_API_KEY is None: raise ValueError("One or both API keys are missing. Please make sure they are set in the environment.") def transcribe_audio(uploaded_file): # Load model model = whisper.load_model(os.getenv("MODEL")) # Save uploaded file to a temporary file with open("temp_audio.mp3", "wb") as f: f.write(uploaded_file.getbuffer()) # Transcribe audio file result = model.transcribe("temp_audio.mp3") transcribed_text = result["text"] print(transcribed_text) # Return transcribed text return transcribed_text def send_summary_email(transcribed_text): # Initialize the large language model llm = OpenAI(temperature=0) # Initialize Zapier zapier = ZapierNLAWrapper() toolkit = ZapierToolkit(zapier_nla_wrapper=zapier) # Get tools from the toolkit tools = toolkit.get_tools() if not tools: raise ValueError("No tools available for the agent to use.") # Initialize the agent with the tools agent = initialize_agent( tools=tools, llm=llm, agent=os.getenv("AGENT"), verbose=True ) # Send email using Zapier summary = f"Send an Email to mehrdaddjavadi@gmail.com via gmail summarizing the following text provided below: {transcribed_text}" agent.run(summary) return summary