import streamlit as st import openai import nltk nltk.download('punkt') import PyPDF2 import string # st.write("ok") # Set up OpenAI API credentials openai.api_key = "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" def read_pdf(fname): reader = PyPDF2.PdfReader(fname) text_ext = [] for i in range(len(reader.pages)): pageObj = reader.pages[i] # extracting text from page text_ext.append(pageObj.extract_text()) return text_ext def clean_text(text): if isinstance(text, list): text = " ".join(text) text = text.lower() text = text.translate(str.maketrans("", "", string.punctuation)) text = " ".join(text.split()) return text def generate_keywords(text): num_keywords = 6 cleaned_text = text.strip() response = openai.Completion.create( engine="text-davinci-002", prompt=f"What are {num_keywords} highly related keywords for the following text?\n{cleaned_text}\n\nKeywords:", max_tokens=50, n=1, stop=None, temperature=0.5, best_of=num_keywords, ) generated_text = response.choices[0].text.strip() keywords = generated_text.split(',') st.write("Top Keywords:") for i, keyword in enumerate(keywords[:num_keywords]): st.write(f"{i+1}. {keyword.strip()}") def generate_summary(text): summary_length = 2 cleaned_text = text.strip() response = openai.Completion.create( engine="text-davinci-002", prompt=f"Please summarize the following text in {summary_length} sentences:\n{cleaned_text}\n\nSummary:", max_tokens=100, n=1, stop=None, temperature=0.5, ) generated_text = response.choices[0].text.strip() st.write("Description:") sentences = nltk.sent_tokenize(generated_text) for sentence in sentences: st.write(sentence) # Main Streamlit app st.title("Meta Magic") uploaded_file = st.file_uploader("Choose a PDF file", type="pdf") if uploaded_file is not None: # Read PDF file and extract text pages = read_pdf(uploaded_file) text = clean_text(pages) # Generate keywords and summary if st.button("Generate Keywords"): generate_keywords(text) if st.button("Generate Summary"): generate_summary(text)