feat: integrate Streamlit components into main.py
- Added Streamlit components to main.py for enhanced user interface and interactive features.
This commit is contained in:
parent
19538ec67b
commit
e8a77fdaa4
55
src/main.py
55
src/main.py
|
@ -1,6 +1,5 @@
|
||||||
import uuid
|
import uuid
|
||||||
|
import streamlit as st
|
||||||
import openai
|
|
||||||
from elevenlabs import set_api_key
|
from elevenlabs import set_api_key
|
||||||
from pydub import AudioSegment
|
from pydub import AudioSegment
|
||||||
|
|
||||||
|
@ -11,29 +10,20 @@ from utils import date_stuff, eleven_labs_stuff, open_ai_stuff, string_stuff
|
||||||
_SECOND = 1000
|
_SECOND = 1000
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def gencast(name, desc, topics, ads):
|
||||||
current_date = date_stuff.get_tomorrows_date_for_file_names()
|
current_date = date_stuff.get_tomorrows_date_for_file_names()
|
||||||
unique_id = uuid.uuid4()
|
unique_id = uuid.uuid4()
|
||||||
|
|
||||||
# (CONTENT) Generate scripts for top 3 comments from FIRST pinned post
|
# (CONTENT) Generate scripts for top 3 comments from FIRST pinned post
|
||||||
name = input("Please enter the name of the Podcast: ")
|
|
||||||
desc = input("Please enter the description of the Podcast: ")
|
|
||||||
openai.organization = input("Please enter your OpenAI Org: ")
|
|
||||||
openai.api_key = input("Please enter your OpenAI API key: ")
|
|
||||||
eleven_labs_api_key = input("Please enter your ElevenLabs API key: ")
|
|
||||||
set_api_key(eleven_labs_api_key)
|
|
||||||
|
|
||||||
script_segments = []
|
script_segments = []
|
||||||
for i in range(3):
|
for i in range(3):
|
||||||
comment = input(f"Enter topic for segment {i + 1}: ")
|
script_segment = open_ai_stuff.generate_response(podcast_segment.SYSTEM_PROMPT, podcast_segment.PROMPT.format(topic=topics))
|
||||||
script_segment = open_ai_stuff.generate_response(podcast_segment.SYSTEM_PROMPT, podcast_segment.PROMPT.format(topic=comment))
|
|
||||||
script_segments.append(script_segment)
|
script_segments.append(script_segment)
|
||||||
|
|
||||||
# (ADS) Generate scripts for top 2 comments from SECOND pinned post
|
# (ADS) Generate scripts for top 2 comments from SECOND pinned post
|
||||||
script_ads = []
|
script_ads = []
|
||||||
for j in range(2):
|
for j in range(2):
|
||||||
comment = input(f"Enter topic for advertisement {i + 1}: ")
|
script_ad = open_ai_stuff.generate_response(podcast_ads.SYSTEM_PROMPT, podcast_ads.PROMPT.format(product=ads))
|
||||||
script_ad = open_ai_stuff.generate_response(podcast_ads.SYSTEM_PROMPT, podcast_ads.PROMPT.format(product=comment))
|
|
||||||
script_ads.append(script_ad)
|
script_ads.append(script_ad)
|
||||||
|
|
||||||
# Generate an intro for the generated material
|
# Generate an intro for the generated material
|
||||||
|
@ -173,5 +163,38 @@ def main():
|
||||||
podcast.export(output_file, format="mp3")
|
podcast.export(output_file, format="mp3")
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
st.title("KeepYourMouthShut")
|
||||||
main()
|
|
||||||
|
with st.sidebar:
|
||||||
|
openai_api_key = st.text_input("OpenAI API Key", type="password")
|
||||||
|
"[Get an OpenAI API key](https://platform.openai.com/account/api-keys)"
|
||||||
|
eleven_labs_api_key = st.text_input("ElevenLabs API key", type="password")
|
||||||
|
"[Get an ElevenLabs API key](https://elevenlabs.io)"
|
||||||
|
set_api_key(eleven_labs_api_key)
|
||||||
|
|
||||||
|
with st.form("main_form"):
|
||||||
|
st.subheader("Basic Information")
|
||||||
|
name = st.text_input("Podcast Name")
|
||||||
|
desc = st.text_input("Description/Tagline")
|
||||||
|
|
||||||
|
st.subheader("Segments")
|
||||||
|
topic1 = st.text_area("Topic for First Segment")
|
||||||
|
topic2 = st.text_area("Topic for Second Segment")
|
||||||
|
topic3 = st.text_area("Topic for Third Segment")
|
||||||
|
|
||||||
|
st.subheader("Advertisements")
|
||||||
|
ad1 = st.text_area("First Advertisement")
|
||||||
|
ad2 = st.text_area("Second Advertisement")
|
||||||
|
|
||||||
|
submitted = st.form_submit_button("Submit")
|
||||||
|
|
||||||
|
if not openai_api_key and not eleven_labs_api_key:
|
||||||
|
st.info("Please add both your OpenAI API key and ElevenLabs API key to continue.")
|
||||||
|
elif not openai_api_key:
|
||||||
|
st.info("Please add your OpenAI API key to continue.")
|
||||||
|
elif not eleven_labs_api_key:
|
||||||
|
st.info("Please add your ElevenLabs API key to continue.")
|
||||||
|
elif submitted:
|
||||||
|
topics = ['topic1', 'topic2', 'topic3']
|
||||||
|
ads = ['ad1', 'ad2']
|
||||||
|
gencast(name, desc, topics, ads)
|
||||||
|
|
Loading…
Reference in New Issue