presum / app.py
Python-proje's picture
Rename main.py to app.py
1b705f8
import streamlit as st
st.set_page_config(layout="wide")
from scraping_needs import list_user_agents #list of user agents for scraping
import random
import streamlit.components.v1 as components
from streamlit_image_select import image_select
from main_scraping import main_scrape
from trends_aljazeera import trends_aljazeera
from trends_mwn import trends_mwn
from trends_hespress import trends_hespress
from css import main_css,nav_bar_css,ext_css
from inference import *
# on charge le modèle
resumeur = load_model()
mwn_trends = trends_mwn(list_user_agents[19])[0:6]
hes_tends = trends_hespress()
aljaz_tends = trends_aljazeera(list_user_agents[11])[0:6]
image_list=[]
caption_list=[]
def get_link_from_image(image_link):
for i in mwn_trends + hes_tends + aljaz_tends:
if image_link == i["image_link"]:
return i["article_link"]
def link_to_text(user_input):
return main_scrape(user_input)
st.markdown(ext_css,unsafe_allow_html=True)
st.markdown(main_css,unsafe_allow_html=True)
st.markdown(nav_bar_css,unsafe_allow_html=True)
with st.expander(r":balloon: Quick grab",expanded = 0):
option_site = st.selectbox("Choose a news outlet", options=("Morocco World News", "Hespress","Aljazeera"))
if option_site=="Morocco World News":
for i in range(len(mwn_trends)):
image_list.append(mwn_trends[i]["image_link"])
caption_list.append(mwn_trends[i]["title"])
elif option_site=="Hespress":
for i in range(len(hes_tends)):
image_list.append(hes_tends[i]["image_link"])
caption_list.append(hes_tends[i]["title"])
elif option_site=="Aljazeera":
for i in range(5):
image_list.append(aljaz_tends[i]["image_link"])
caption_list.append(aljaz_tends[i]["title"])
img = image_select(
label="Choose an article to summarize: ",
images=image_list,
captions=caption_list,
#use_container_width=False
)
sum_from_img = st.button("Get text of article!")
col1,col2,col3,col3_5,col4,col5 = st.columns([1.5,0.2,1,0.2,0.75,0.8]) # dont change these values cuz they work on compact mode
with col1:
st.markdown("<br>",unsafe_allow_html=True)
option = st.selectbox("Choose your input option", options=("Text", "Link"),help="""
For link inputs, you can choose any article from these 3 websites:
* [Morocco World News](https://www.moroccoworldnews.com/)
* [Hespress english](https://en.hespress.com/)
* [Aljazeera english](https://www.aljazeera.com/)
"""
)
with col3:
#summary_length = st.radio("Desired summary length:",
# ["short", "medium", "long"])
summary_length= st.select_slider(
'Desired summary length:',
options=['short', 'medium', 'long'])
with col4:
st.markdown("<br>",unsafe_allow_html=True)
sum_button = st.button("Summarize")
flag = 1
if sum_from_img:
chosen_link = str(get_link_from_image(img))
option = "Text"
text_from_link=st.text_area("Your article's text : ", value=main_scrape(chosen_link))
st.session_state.user_text = text_from_link
flag = 0
if flag:
if (option == "Text"): #to make sure lines 118 and 110 are not both executed(if user chose image, we shouldnt add another text area)
if 'user_text' in st.session_state:
text_from_link = st.text_area("Put the text of the article here",value=st.session_state.user_text)
else:
text_from_link = st.text_area("Put the text of the article here")
elif option == "Link":
user_input_link = st.text_input("Paste your link here")
if(sum_button): # user clicked summarize
if (flag == 0): # article text area already generated
st.divider()
# model = BartForConditionalGeneration.from_pretrained('facebook/bart-large-cnn')
# tokenizer = BartTokenizer.from_pretrained('facebook/bart-large-cnn')
# inputs = tokenizer([user_input], return_tensors='pt')
# summary = model.generate(inputs['input_ids'], max_length=summary_lenth, min_length=30, do_sample=False)
# st.write([tokenizer.decode(g, skip_special_tokens=True) for g in summary])
else: # no text area created yet
if (option == "Link") :
text_from_link=st.text_area("Your article's text : ", value=link_to_text(user_input_link))
#summary = summarizer(text_from_link, max_length=100, min_length=30, do_sample=False)
#st.write(summary[0]['summary_text'])
summary = st.text_area('Article summary:', value=summarize(resumeur,summary_length,text_from_link), disabled=True)