Spaces:
Build error
Build error
| import streamlit as st | |
| import validators | |
| from langchain.prompts import PromptTemplate | |
| from langchain.chains.summarize import load_summarize_chain | |
| from langchain_community.document_loaders import YoutubeLoader, UnstructuredURLLoader | |
| from langchain_groq import ChatGroq | |
| import os | |
| from dotenv import load_dotenv | |
| load_dotenv() | |
| llm = ChatGroq(api_key=os.getenv("GROQ_API_KEY"), model='mixtral-8x7b-32768') | |
| st.set_page_config(page_title="Summarizer app for youtube & website") | |
| st.title("Summarizer App") | |
| st.subheader("Summarizer URL") | |
| generic_url = st.text_input("URL", label_visibility="collapsed") | |
| # prompt template | |
| prompt_template = """ | |
| Summarize the content of the following material. Highlight the main topics, key points, and important conclusions. Ensure the summary is concise and within 400 words, providing a clear and accurate overview. | |
| Content: {text} | |
| """ | |
| prompt = PromptTemplate(template=prompt_template, input_variables=['text']) | |
| if st.button("Summarize the content from the YT or Website"): | |
| # validate all the input | |
| if not generic_url.strip(): | |
| st.error("Please enter a URL") | |
| elif not validators.url(generic_url): | |
| st.error("Please enter valid url. It can may be a YT video or website url") | |
| else: | |
| try: | |
| with st.spinner("Summarizing your content"): | |
| # loading the website or yt video url | |
| if "youtube.com" in generic_url: | |
| loader = YoutubeLoader.from_youtube_url(generic_url,add_video_info=True) | |
| else: | |
| loader = UnstructuredURLLoader(urls=[generic_url], ssl_verify=False, | |
| headers={"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 13_5_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36"}) | |
| data = loader.load() | |
| # chain for summarization | |
| chain = load_summarize_chain(llm, chain_type='stuff', prompt=prompt) | |
| output_summary=chain.run(data) | |
| st.success(output_summary) | |
| except Exception as e: | |
| st.exception(f"Exception:{e}") | |