khatri-indra commited on
Commit
2dea06e
·
verified ·
1 Parent(s): a8601a9

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +50 -54
app.py CHANGED
@@ -1,54 +1,50 @@
1
- import streamlit as st
2
- import validators
3
- from langchain.prompts import PromptTemplate
4
- from langchain.chains.summarize import load_summarize_chain
5
- from langchain_community.document_loaders import YoutubeLoader, UnstructuredURLLoader
6
- from langchain_groq import ChatGroq
7
- import google.generativeai as genai
8
- import os
9
- from dotenv import load_dotenv
10
- load_dotenv()
11
-
12
- genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
13
- # llm = genai.GenerativeModel('gemini-1.5-pro')
14
-
15
- llm = ChatGroq(api_key=os.getenv("GROQ_API_KEY"), model='mixtral-8x7b-32768')
16
-
17
- st.set_page_config(page_title="Summarizer app for youtube & website")
18
- st.title("Summarizer App")
19
- st.subheader("Summarizer URL")
20
-
21
- generic_url = st.text_input("URL", label_visibility="collapsed")
22
-
23
- # prompt template
24
- prompt_template = """
25
- 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.
26
- Content: {text}
27
- """
28
- prompt = PromptTemplate(template=prompt_template, input_variables=['text'])
29
-
30
-
31
- if st.button("Summarize the content from the YT or Website"):
32
- # validate all the input
33
- if not generic_url.strip():
34
- st.error("Please enter a URL")
35
- elif not validators.url(generic_url):
36
- st.error("Please enter valid url. It can may be a YT video or website url")
37
- else:
38
- try:
39
- with st.spinner("Summarizing your content"):
40
- # loading the website or yt video url
41
- if "youtube.com" in generic_url:
42
- loader = YoutubeLoader.from_youtube_url(generic_url,add_video_info=True)
43
- else:
44
- loader = UnstructuredURLLoader(urls=[generic_url], ssl_verify=False,
45
- 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"})
46
- data = loader.load()
47
-
48
- # chain for summarization
49
- chain = load_summarize_chain(llm, chain_type='stuff', prompt=prompt)
50
- output_summary=chain.run(data)
51
-
52
- st.success(output_summary)
53
- except Exception as e:
54
- st.exception(f"Exception:{e}")
 
1
+ import streamlit as st
2
+ import validators
3
+ from langchain.prompts import PromptTemplate
4
+ from langchain.chains.summarize import load_summarize_chain
5
+ from langchain_community.document_loaders import YoutubeLoader, UnstructuredURLLoader
6
+ from langchain_groq import ChatGroq
7
+ import os
8
+ from dotenv import load_dotenv
9
+ load_dotenv()
10
+
11
+ llm = ChatGroq(api_key=os.getenv("GROQ_API_KEY"), model='mixtral-8x7b-32768')
12
+
13
+ st.set_page_config(page_title="Summarizer app for youtube & website")
14
+ st.title("Summarizer App")
15
+ st.subheader("Summarizer URL")
16
+
17
+ generic_url = st.text_input("URL", label_visibility="collapsed")
18
+
19
+ # prompt template
20
+ prompt_template = """
21
+ 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.
22
+ Content: {text}
23
+ """
24
+ prompt = PromptTemplate(template=prompt_template, input_variables=['text'])
25
+
26
+
27
+ if st.button("Summarize the content from the YT or Website"):
28
+ # validate all the input
29
+ if not generic_url.strip():
30
+ st.error("Please enter a URL")
31
+ elif not validators.url(generic_url):
32
+ st.error("Please enter valid url. It can may be a YT video or website url")
33
+ else:
34
+ try:
35
+ with st.spinner("Summarizing your content"):
36
+ # loading the website or yt video url
37
+ if "youtube.com" in generic_url:
38
+ loader = YoutubeLoader.from_youtube_url(generic_url,add_video_info=True)
39
+ else:
40
+ loader = UnstructuredURLLoader(urls=[generic_url], ssl_verify=False,
41
+ 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"})
42
+ data = loader.load()
43
+
44
+ # chain for summarization
45
+ chain = load_summarize_chain(llm, chain_type='stuff', prompt=prompt)
46
+ output_summary=chain.run(data)
47
+
48
+ st.success(output_summary)
49
+ except Exception as e:
50
+ st.exception(f"Exception:{e}")