File size: 2,013 Bytes
bef155a
3dc74fc
08fcc8d
bef155a
08fcc8d
bef155a
08fcc8d
bef155a
08fcc8d
bef155a
08fcc8d
bef155a
08fcc8d
bef155a
08fcc8d
bef155a
08fcc8d
 
bef155a
08fcc8d
 
bef155a
08fcc8d
 
bef155a
08fcc8d
 
3dc74fc
08fcc8d
 
 
 
bef155a
08fcc8d
bef155a
08fcc8d
 
 
 
 
 
 
 
3ab6b75
 
 
 
 
fc096d1
0afaeca
08fcc8d
1751b9e
 
08fcc8d
ca41126
57c8d80
08fcc8d
 
3ab6b75
08fcc8d
 
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
50
51
52
53
54
55
56
57
58
59
60
61
62
import google.generativeai as genai
import gradio as gr
from pypdf import PdfReader

def pdfSummarizer(gemini_api_key, pdf_file, kind):

    gemini_api_key = gemini_api_key

    genai.configure(api_key = gemini_api_key)

    model = genai.GenerativeModel("gemini-1.5-pro")

    pdf_file = PdfReader(pdf_file)

    pdf_text = ""

    for page in pdf_file.pages:
        pdf_text += page.extract_text()

    if kind == "5 Bullet Points":
      response = model.generate_content([pdf_text, "can you summarize this document in 5 bullet points? Use bullet points and not asterisks"])

    elif kind == "10 Bullet Points":
      response = model.generate_content([pdf_text, "can you summarize this document in 10 bullet points? Use bullet points and not asterisks"])

    elif kind == "Paragraph":
      response = model.generate_content([pdf_text, "can you summarize this document as a paragraph?"])

    elif kind == "Sentence":
      response = model.generate_content([pdf_text, "can you summarize this document in one sentence?"])

    return response.text

import gradio as gr

with gr.Blocks(
    theme="gstaff/whiteboard",
    title="PDF Summarizer",
    analytics_enabled=True,
    fill_height=True
) as app:
    gr.Markdown("<center><h2>PDF Summarizer</h2></center>")
    with gr.Row():
        
        api_key = gr.Text(label="Gemini API Key", placeholder="Enter your Google Gemini API key here"),
        pdf_file = gr.File(file_types=[".pdf"]),
        summary_type = gr.Radio(["5 Bullet Points","10 Bullet Points", "Paragraph", "Sentence"], label="Select Summary Kind")
        
    with gr.Column():
      with gr.Row():
        btn = gr.Button("Summarize")
        clear_btn = gr.ClearButton(value="Clear")

    with gr.Column():
        gr.Markdown("<center><h2>Summary Output</h2></center>")
        out = gr.Markdown()

    btn.click(fn=pdfSummarizer, inputs=inp, outputs=out)
    clear_btn.click(lambda: (None,None,None,""),outputs=[api_key, pdf_input, summary_type, out],queue=False)

app.launch()