File size: 2,026 Bytes
f8ccd9c
edd57c3
cab36bf
edd57c3
cab36bf
 
 
 
 
de8d8bf
fd188ea
 
 
 
065b429
fd188ea
8da6c61
 
 
5054699
6b1f1f9
5054699
 
 
 
 
 
 
 
 
cab36bf
de8d8bf
cab36bf
f8ccd9c
 
cab36bf
59fb81e
 
 
8da6c61
59fb81e
d9efbf0
 
f8ccd9c
fd188ea
f8ccd9c
 
8da6c61
cab36bf
fd188ea
 
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
from gradio_client import Client
import gradio as gr
import os

def check_password(username, password):
    if password == os.environ["ACCESS"]:
        return True
    else:
        return False

def func(file, number_of_pages, secret):
    if secret != os.environ["ACCESS"]:
        return "Wrong password, please try again"
    else:
        return client.predict(file, number_of_pages)

def upload_file(file):
    return file.name

description = r"""
<b> Scideck </b> is a tool that allows you to convert your PDF files into a presentation deck.
<br>

❗️❗️❗️[<b>Important</b>] Instructions:<br>
1️⃣ <b>Upload the PDF document</b>: Select the PDF file you want to convert into slides.<br>
2️⃣ <b>Specify the number of pages</b>: Indicate the range of pages you'd like to include in the slide generation.<br>
3️⃣ <b>Click the Generate button</b>: Initiate the slide generation process by clicking the designated "Generate" button.<br>
4️⃣ <b>Wait for approximately 200 seconds</b>: Allow a brief moment for the system to generate the slides. The process may take up to 200 seconds.<br>
"""

read_key = os.environ.get("HF_TOKEN", None)

if __name__ == "__main__":
    client = Client.duplicate("Nauryzbay/deckify_private", hf_token=read_key)

    with gr.Blocks() as demo:
        gr.Markdown("# Scideck: Generate slides (LaTeX Beamer) from PDF")
        gr.Markdown(description)
        
        file_output = gr.File()
        upload_button = gr.UploadButton("Click to Upload a PDF File", file_types=["file"], file_count="single", size="sm")
        upload_button.upload(upload_file, upload_button, file_output)

        number_of_pages = gr.Number(label="Number of pages")
        secret = gr.Textbox(label="Password", type="password")
        output = gr.Textbox(label="Output")
        greet_btn = gr.Button("Generate slides")
        greet_btn.click(fn=func, inputs=[upload_button, number_of_pages, secret], outputs=output, api_name="greet")
    
    demo.queue(max_size=5)
    demo.launch()