Spaces:
Runtime error
Runtime error
| import gradio as gr | |
| import base64 | |
| from gpt_reader.pdf_reader import PaperReader | |
| from gpt_reader.prompt import BASE_POINTS | |
| class GUI: | |
| def __init__(self): | |
| self.api_key = "" | |
| self.session = "" | |
| def analyse(self, api_key, pdf_file): | |
| self.session = PaperReader(api_key, points_to_focus=BASE_POINTS) | |
| return self.session.read_pdf_and_summarize(pdf_file) | |
| def ask_question(self, question): | |
| if self.session == "": | |
| return "Please upload PDF file first!" | |
| return self.session.question(question) | |
| with open("./logo.png", "rb") as f: | |
| image_data = f.read() | |
| image_base64 = base64.b64encode(image_data).decode("utf-8") | |
| title = f""" | |
| <h2 style="background-image: linear-gradient(to right, #3A5FCD, #87CEFA); -webkit-background-clip: text; | |
| -webkit-text-fill-color: transparent; text-align: center;"> | |
| ChatPDF-GUI | |
| </h2> | |
| """ | |
| description = f""" | |
| <div style="display: flex; align-items: center; justify-content: center; flex-direction: column;"> | |
| <p style="font-size: 18px; color: #4AAAFF; text-align: center;"> | |
| Upload your pdf and let our model read it to you!" | |
| </p> | |
| <div style="display: flex; align-items: center; margin-bottom: 0px;"> | |
| <img src='data:image/jpeg;base64,{image_base64}' width='50' height='30' style="margin-right: 5px;"/> | |
| <p style="font-size: 14px; color: #555;"> | |
| Disclaimer: The purpose of this application is solely for demonstration. 1001epochs does not claim ownership for the results. Contact: [email protected] for full solution. | |
| </p> | |
| </div> | |
| </div> | |
| """ | |
| with gr.Blocks() as demo: | |
| gr.HTML(title) | |
| gr.HTML(description) | |
| with gr.Tab("Upload PDF File"): | |
| pdf_input = gr.File(label="PDF File") | |
| api_input = gr.Textbox(label="OpenAI API Key") | |
| result = gr.Textbox(label="PDF Summary") | |
| upload_button = gr.Button("Start Analyse") | |
| with gr.Tab("Ask question about your PDF"): | |
| question_input = gr.Textbox(label="Your Question", placeholder="Authors of this paper?") | |
| answer = gr.Textbox(label="Answer") | |
| ask_button = gr.Button("Ask") | |
| with gr.Accordion("About this project"): | |
| gr.Markdown( | |
| """Simply upload your document and let our model read it within seconds!""") | |
| app = GUI() | |
| upload_button.click(fn=app.analyse, inputs=[api_input, pdf_input], outputs=result) | |
| ask_button.click(app.ask_question, inputs=question_input, outputs=answer) | |
| if __name__ == "__main__": | |
| demo.title = "CHATGPT-PAPER-READER" | |
| demo.launch() # add "share=True" to share CHATGPT-PAPER-READER app on Internet. |