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()