|
import streamlit as st |
|
from crew import crew |
|
from dotenv import load_dotenv |
|
from tools import yttool |
|
import os |
|
|
|
load_dotenv() |
|
|
|
st.title("AI Blog Creator from YouTube Videos") |
|
st.sidebar.header("Configuration") |
|
|
|
channel_handle = st.sidebar.text_input("YouTube Channel Handle", value="@krishnaik06") |
|
topic = st.text_input("Blog Topic", value="AI VS ML VS DL vs Data Science") |
|
model_name = st.sidebar.selectbox( |
|
"Choose AI Model", |
|
options=["meta-llama/Llama-3-70b-chat-hf"], |
|
index=0 |
|
) |
|
|
|
os.environ["TOGETHERAI_API_KEY"] = os.getenv("TOGETHERAI_API_KEY") |
|
os.environ["TOGETHERAI_MODEL_NAME"] = model_name |
|
|
|
yttool.youtube_channel_handle = channel_handle |
|
|
|
if st.button("Run Task"): |
|
with st.spinner("Processing..."): |
|
try: |
|
result = crew.kickoff(inputs={"topic": topic}) |
|
st.success("Task Completed!") |
|
st.subheader("Result") |
|
st.text(result) |
|
if st.button("Download Blog Post"): |
|
with open("new-blog-post.md", "r") as file: |
|
content = file.read() |
|
st.download_button(label="Download Blog Post", data=content, file_name="blog-post.md", mime="text/markdown") |
|
|
|
except Exception as e: |
|
st.error(f"An error occurred: {e}") |
|
|