Spaces:
Runtime error
Runtime error
| from gradio_client import Client | |
| import gradio as gr | |
| import os | |
| import random | |
| 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" | |
| text = client.predict(file, number_of_pages) | |
| # generate a random sequence of numbers | |
| # s = "".join([str(random.randint(0, 9)) for i in range(10)]) | |
| # with open(f"{s}.tex", "w", encoding="utf-8") as f: | |
| # f.write(text) | |
| return text | |
| def upload_file(file): | |
| return file.name | |
| description = r""" | |
| <h3> SCIDECK is a tool that allows you to convert your PDF files into a presentation deck.</h3> | |
| <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. <b>Set it to 0</b> if you want to include all pages. <br> | |
| 3️⃣ <b>Enter the password provided in the invite email.</b><br> | |
| 4️⃣ <b>Click the Generate button</b>: Initiate the slide generation process by clicking the designated "Generate" button.<br> | |
| 5️⃣ <b>Be patient 🙂</b>: Generating the slides could take between 1 minute and 5 minutes.<br> | |
| 📝 If you get an error message, you can send me email with the PDF file attached to this email address: <b>nkoisheke [at] ethz [dot] ch</b>, and I will generate the slides for you. If there are any other issues or questions, please do not hesitate to contact me 🤗 <br> | |
| 🖼️ Some examples of slides generated using SCIDECK are shown below: <br> | |
| 1. Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift [[Paper]](https://arxiv.org/pdf/1502.03167.pdf) [[Slides]](https://drive.google.com/file/d/1Zt5FFH0nKxut-LyEr9pNAIdtgR_lBtIj/view?usp=sharing) <br> | |
| 2. Attention Is All You Need [[Paper]](https://arxiv.org/pdf/1706.03762.pdf) [[Slides]](https://drive.google.com/file/d/1xKgohh_QKV9pD_XjDuXR566h0VJ1S7WI/view?usp=sharing) <br> | |
| 3. Denoising Diffusion Probabilistic Models [[Paper]](https://arxiv.org/pdf/2006.11239.pdf) [[Slides]](https://drive.google.com/file/d/1D2ZfoJpHR3kP0JdsYyjxUq-vjVMV-KTO/view?usp=sharing) <br> | |
| ver 0.1 | |
| """ | |
| read_key = os.environ.get("HF_TOKEN", None) | |
| if __name__ == "__main__": | |
| client = Client.duplicate("Nauryzbay/deckify_private", hf_token=read_key) | |
| temp = "<h1> SCIDECK: Generate slides (LaTeX Beamer) from PDF</h1>" | |
| with gr.Blocks() as demo: | |
| gr.Markdown(temp) | |
| gr.Image("demo.png", width=600, show_download_button=False, show_label=False) | |
| 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() |