Rushi2903/MetaMagic
0
1import streamlit as st2import openai3import nltk4nltk.download('punkt')5import PyPDF26import string7 8# st.write("ok")9# Set up OpenAI API credentials10openai.api_key = "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"11 12 13 14def read_pdf(fname):15 16 reader = PyPDF2.PdfReader(fname)17 text_ext = []18 for i in range(len(reader.pages)):19 pageObj = reader.pages[i]20 # extracting text from page21 text_ext.append(pageObj.extract_text())22 23 return text_ext24 25def clean_text(text):26 if isinstance(text, list):27 text = " ".join(text)28 text = text.lower()29 text = text.translate(str.maketrans("", "", string.punctuation))30 text = " ".join(text.split())31 return text32 33def generate_keywords(text):34 num_keywords = 635 cleaned_text = text.strip()36 37 response = openai.Completion.create(38 engine="text-davinci-002",39 prompt=f"What are {num_keywords} highly related keywords for the following text?\n{cleaned_text}\n\nKeywords:",40 max_tokens=50,41 n=1,42 stop=None,43 temperature=0.5,44 best_of=num_keywords,45 )46 47 generated_text = response.choices[0].text.strip()48 49 keywords = generated_text.split(',')50 51 st.write("Top Keywords:")52 for i, keyword in enumerate(keywords[:num_keywords]):53 st.write(f"{i+1}. {keyword.strip()}")54 55def generate_summary(text):56 summary_length = 257 58 cleaned_text = text.strip()59 60 response = openai.Completion.create(61 engine="text-davinci-002",62 prompt=f"Please summarize the following text in {summary_length} sentences:\n{cleaned_text}\n\nSummary:",63 max_tokens=100,64 n=1,65 stop=None,66 temperature=0.5,67 )68 69 generated_text = response.choices[0].text.strip()70 st.write("Description:")71 sentences = nltk.sent_tokenize(generated_text)72 for sentence in sentences:73 st.write(sentence)74 75# Main Streamlit app76st.title("Meta Magic")77 78uploaded_file = st.file_uploader("Choose a PDF file", type="pdf")79 80if uploaded_file is not None:81 # Read PDF file and extract text82 pages = read_pdf(uploaded_file)83 text = clean_text(pages)84 85 # Generate keywords and summary86 if st.button("Generate Keywords"):87 generate_keywords(text)88 89 if st.button("Generate Summary"):90 generate_summary(text)91 