from transformers import GPT2LMHeadModel, GPT2Tokenizer import streamlit as st import torch # import yake # from rake_nltk import Rake # rake_nltk_var = Rake() st.set_page_config( page_title="Khayal-Writing Tool App" ) st.sidebar.success("Select an App") # # page_bg_img = """ # """, unsafe_allow_html=True ) add_bg_from_url() #primaryColor="#F63366" #backgroundColor="#FFFFFF" #secondaryBackgroundColor="#F0F2F6" textColor="#262730" font="Serif" # # base="dark" # primaryColor="purple" #st.title("Khayal- Writing Tool ") st.markdown("

Khayal- Writing Tool

", unsafe_allow_html=True) st.write("This writing tool currently has two applications within it, poem generation and text summarizer." " To summarize text you can use 'Summarizer from the sidebar. ") st.header("Poem Generation") st.markdown("This is a poem generator app. you can use it to create poems by providing text to it.") @st.cache(allow_output_mutation=True) def get_model(): tokenizer = GPT2Tokenizer.from_pretrained("Silvers-145/khayal-generate") model = GPT2LMHeadModel.from_pretrained("Silvers-145/khayal-generate") return tokenizer, model tokenizer,model = get_model() # # load the model # #model = GPT2LMHeadModel.from_pretrained("Silvers-145/khayal-generate") # #tokenizer = GPT2Tokenizer.from_pretrained("Silvers-145/khayal-generate") #model.eval() #prompt = input("Enter the start of poem here:") #button = st.button("Create") prompt = st.text_input("Enter Text:",placeholder="Enter The text here") click = st.button("Create") if click and prompt: generated = torch.tensor(tokenizer.encode(prompt)).unsqueeze(0) sample_outputs = model.generate( generated, do_sample=True, top_k=50, max_length=300, top_p=0.95, num_return_sequences=3 ) for i, sample_output in enumerate(sample_outputs): poemm = tokenizer.decode(sample_output, skip_special_tokens=True) # print("{}: {}\n\n".format(i, st.text_area("Generated Poem:", poemm,height=250) # st.snow() st.success("Poem Generated") # kw_extractor = yake.KeywordExtractor() # text = poemm # language = "en" # max_ngram_size = 3 # deduplication_threshold = 0.9 # numOfKeywords = 5 # custom_kw_extractor = yake.KeywordExtractor(lan=language, n=max_ngram_size, dedupLim=deduplication_threshold, top=numOfKeywords, features=None) # keywords = custom_kw_extractor.extract_keywords(text) # for kw in keywords: # print(kw) # from rake_nltk import Rake # rake_nltk_var = Rake() # rake_nltk_var.extract_keywords_from_text(poemm) # kw = rake_nltk_var.get_ranked_phrases() # st.t