File size: 1,249 Bytes
f4c65ed
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
0c49761
f4c65ed
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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()