|
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_dotenv() |
|
|
|
|
|
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY") |
|
ZAPIER_NLA_API_KEY = os.getenv("ZAPIER_NLA_API_KEY") |
|
|
|
|
|
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): |
|
|
|
model = whisper.load_model(os.getenv("MODEL")) |
|
|
|
|
|
with open("temp_audio.mp3", "wb") as f: |
|
f.write(uploaded_file.getbuffer()) |
|
|
|
|
|
result = model.transcribe("temp_audio.mp3") |
|
transcribed_text = result["text"] |
|
print(transcribed_text) |
|
|
|
|
|
return transcribed_text |
|
|
|
def send_summary_email(transcribed_text): |
|
|
|
llm = OpenAI(temperature=0) |
|
|
|
|
|
zapier = ZapierNLAWrapper() |
|
toolkit = ZapierToolkit(zapier_nla_wrapper=zapier) |
|
|
|
|
|
tools = toolkit.get_tools() |
|
|
|
if not tools: |
|
raise ValueError("No tools available for the agent to use.") |
|
|
|
|
|
agent = initialize_agent( |
|
tools=tools, |
|
llm=llm, |
|
agent=os.getenv("AGENT"), |
|
verbose=True |
|
) |
|
|
|
|
|
summary = f"Send an Email to mehrdaddjavadi@gmail.com via gmail summarizing the following text provided below: {transcribed_text}" |
|
agent.run(summary) |
|
|
|
return summary |