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("
",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("
",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)