Spaces:
Paused
Paused
| import fitz | |
| from transformers import GPT2Tokenizer, GPT2Model | |
| import gradio as gr | |
| def extract_text_from_pdf(pdf_path): | |
| doc = fitz.open(pdf_path) | |
| text = "" | |
| for page_num in range(doc.page_count): | |
| page = doc[page_num] | |
| text += page.get_text() | |
| return text | |
| def generate_review(summary): | |
| # Your custom logic to generate a review | |
| review = "The book conveys a powerful message about..." | |
| return review | |
| def generate_summary(pdf_path): | |
| # Load pre-trained GPT-2 model and tokenizer | |
| tokenizer = GPT2Tokenizer.from_pretrained('gpt2') | |
| model = GPT2Model.from_pretrained('gpt2') | |
| # Extract text from the PDF | |
| input_text = extract_text_from_pdf(pdf_path) | |
| # Tokenize and generate summary | |
| input_tokens = tokenizer.encode(input_text, return_tensors="pt") | |
| summary = model.generate(input_tokens) | |
| # Return results | |
| return { | |
| "Extracted Information": input_text, | |
| "Book Summary": tokenizer.decode(summary[0], skip_special_tokens=True), | |
| "Review": generate_review(summary) | |
| } | |
| iface = gr.Interface( | |
| fn=generate_summary, | |
| inputs=gr.File(), | |
| outputs=[ | |
| gr.Textbox(), | |
| gr.Textbox(), | |
| gr.Textbox(), | |
| ], | |
| live=True | |
| ) | |
| iface.launch() | |