Spaces:
Runtime error
Runtime error
| 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) | |