Spaces:
Sleeping
Sleeping
| 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}") | |