Add email support, update .gitignore and .env_example
This commit is contained in:
parent
46cb748bc6
commit
03d691bc0a
@ -5,3 +5,6 @@ OPENAI_TRANSCRIPTION_MODEL=
|
|||||||
OPENAI_CHAT_SYSTEM_PROMPT=
|
OPENAI_CHAT_SYSTEM_PROMPT=
|
||||||
OPENAI_CHAT_MODEL=
|
OPENAI_CHAT_MODEL=
|
||||||
OPENAI_CHAT_N=
|
OPENAI_CHAT_N=
|
||||||
|
SENDER_EMAIL=
|
||||||
|
RECEIVER_EMAIL=
|
||||||
|
SENDER_APP_PASSWORD=
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,4 +1,5 @@
|
|||||||
__pycache__/*
|
__pycache__/*
|
||||||
tmp/*
|
tmp/*
|
||||||
venv/*
|
venv/*
|
||||||
|
.venv/*
|
||||||
.env
|
.env
|
||||||
|
32
app.py
32
app.py
@ -7,6 +7,9 @@ from pydub import AudioSegment
|
|||||||
|
|
||||||
from prompt import DEFAULT_PROMPT
|
from prompt import DEFAULT_PROMPT
|
||||||
|
|
||||||
|
import smtplib
|
||||||
|
from email.message import EmailMessage
|
||||||
|
|
||||||
VIDEO_URL = os.getenv('INPUT_VIDEO_URL', None)
|
VIDEO_URL = os.getenv('INPUT_VIDEO_URL', None)
|
||||||
OUTPUT_PATH = os.getenv('OUTPUT_PATH', 'tmp')
|
OUTPUT_PATH = os.getenv('OUTPUT_PATH', 'tmp')
|
||||||
AUDIO_SEGMENT_DURATION = 30000
|
AUDIO_SEGMENT_DURATION = 30000
|
||||||
@ -16,13 +19,17 @@ OPENAI_TRANSCRIPTION_MODEL = os.getenv('OPENAI_TRANSCRIPTION_MODEL', 'whisper-1'
|
|||||||
OPENAI_CHAT_SYSTEM_PROMPT = os.getenv('OPENAI_CHAT_SYSTEM_PROMPT', DEFAULT_PROMPT)
|
OPENAI_CHAT_SYSTEM_PROMPT = os.getenv('OPENAI_CHAT_SYSTEM_PROMPT', DEFAULT_PROMPT)
|
||||||
OPENAI_CHAT_MODEL = os.getenv('OPENAI_CHAT_MODEL', 'whisper-1')
|
OPENAI_CHAT_MODEL = os.getenv('OPENAI_CHAT_MODEL', 'whisper-1')
|
||||||
OPENAI_CHAT_N = int(os.getenv('OPENAI_CHAT_N', '3'))
|
OPENAI_CHAT_N = int(os.getenv('OPENAI_CHAT_N', '3'))
|
||||||
|
SENDER_EMAIL = os.getenv("SENDER_EMAIL")
|
||||||
|
RECEIVER_EMAIL = os.getenv("RECEIVER_EMAIL")
|
||||||
|
SENDER_APP_PASSWORD = os.getenv("SENDER_APP_PASSWORD")
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
openai_client = OpenAI(
|
openai_client = OpenAI(
|
||||||
base_url = OPENAI_BASE_URL,
|
base_url = OPENAI_BASE_URL,
|
||||||
api_key = OPENAI_API_KEY
|
api_key = OPENAI_API_KEY
|
||||||
)
|
)
|
||||||
return summarize_transcription(
|
|
||||||
|
summaries = summarize_transcription(
|
||||||
openai_client,
|
openai_client,
|
||||||
transcribe_audio(
|
transcribe_audio(
|
||||||
openai_client,
|
openai_client,
|
||||||
@ -32,6 +39,14 @@ def main():
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
email_body=""
|
||||||
|
for i, summary in enumerate(summaries) :
|
||||||
|
email_body += f"Option {i+1} :\n{summary.text}\n\n"
|
||||||
|
|
||||||
|
send_email(subject="Video summaries results", body=email_body)
|
||||||
|
|
||||||
|
return summaries
|
||||||
|
|
||||||
def get_video_from_url():
|
def get_video_from_url():
|
||||||
filename = VIDEO_URL.split('/')[-1]
|
filename = VIDEO_URL.split('/')[-1]
|
||||||
with open(f"{OUTPUT_PATH}/{filename}", 'wb') as f:
|
with open(f"{OUTPUT_PATH}/{filename}", 'wb') as f:
|
||||||
@ -65,6 +80,21 @@ def summarize_transcription(openai_client, transcription):
|
|||||||
prompt=OPENAI_CHAT_SYSTEM_PROMPT.format(transcription)
|
prompt=OPENAI_CHAT_SYSTEM_PROMPT.format(transcription)
|
||||||
).choices
|
).choices
|
||||||
|
|
||||||
|
def send_email(subject, body, sender_email=SENDER_EMAIL, receiver_email=RECEIVER_EMAIL, sender_password=SENDER_APP_PASSWORD):
|
||||||
|
msg = EmailMessage()
|
||||||
|
msg.set_content(body)
|
||||||
|
msg['Subject'] = subject
|
||||||
|
msg['From'] = sender_email
|
||||||
|
msg['To'] = receiver_email
|
||||||
|
|
||||||
|
try:
|
||||||
|
with smtplib.SMTP_SSL('smtp.gmail.com', 465) as smtp:
|
||||||
|
smtp.login(sender_email, sender_password)
|
||||||
|
smtp.send_message(msg)
|
||||||
|
print("Email sent successfully!")
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Email sending error: {e}")
|
||||||
|
|
||||||
def setup():
|
def setup():
|
||||||
from dotenv import load_dotenv
|
from dotenv import load_dotenv
|
||||||
load_dotenv()
|
load_dotenv()
|
||||||
|
Loading…
Reference in New Issue
Block a user