import validators,streamlit as st from langchain.prompts import PromptTemplate from langchain_groq import ChatGroq from langchain.chains.summarize import load_summarize_chain from langchain_community.document_loaders import YoutubeLoader,UnstructuredURLLoader import os from dotenv import load_dotenv # setting streamlit st.set_page_config(page_title="DEmo for summarization") st.title("Summarize it for me") st.markdown(''' :red[ I Can summarize] :orange[url content] :green[Supply] :blue[Url in the box] .''') st.markdown(''' :blue[ created by] :orange[sunny Kumar].''') st.markdown(''' :blue[ contact me at] :orange[sunnyKumar1516@gmail.com].''') st.markdown(''' :blue[linkdin] :orange[https://www.linkedin.com/in/sunny-kumar-b232417a/].''') # groq API #with st.sidebar: # groq_api_key = st.text_input("Groq API Key",value="",type="password") os.environ["GROQ_API_KEY"] = os.getenv("GROQ_API_KEY") my_url = st.text_input("URL") llm = ChatGroq( model="llama-3.1-8b-instant", temperature=0, max_tokens=None, timeout=None, max_retries=2 ) prompt_template=""" summarize the following content in not more than 400 words: Content:{text} """ prompt=PromptTemplate(template=prompt_template,input_variables=["text"]) if st.button("Summarize the Content from YT or Website"): ## Validate all the inputs if not my_url.strip(): st.error("Please provide the information to get started") elif not validators.url(my_url): st.error("Please enter a valid Url. It can may be a YT video utl or website url") else: try: with st.spinner("Waiting..."): ## loading the website or yt video data if "youtube.com" in my_url: loader=YoutubeLoader.from_youtube_url(my_url,add_video_info=True) else: loader=UnstructuredURLLoader(urls=[my_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"}) docs=loader.load() ## Chain For Summarization chain=load_summarize_chain(llm,chain_type="stuff",prompt=prompt) output_summary=chain.run(docs) st.success(output_summary) except Exception as e: st.exception(f"Exception:{e}")