import gradio as gr from PyPDF2 import PdfReader import os from docx import Document as DocxDocument from gradio_client import Client from IPython.display import display from IPython.display import Markdown custom_css = """ #md { height: 450px; font-size: 35px; background: black; padding: 20px; padding-top: 40px; color: white; border: 1 px solid #383838; } """ def routing(message): client = Client("mgokg/SemanticRouting") result = client.predict( prompt=f"{message}", api_name="/predict" ) return result def mitteilung(input): client = Client("mgokg/Gemini2.0") result = client.predict( input_text=f"{input}", api_name="/generate_press_release" ) return result def process_pdf(file): # Read the PDF content pdf_reader = PdfReader(file.name) text = "" for page in pdf_reader.pages: text += page.extract_text() return text def process_file(file): file_extension = file.name.split(".")[-1].lower() if file_extension == 'pdf': ocr_text = process_pdf(file) result = mitteilung(ocr_text) #display(Markdown(result)) return result return ocr_text elif file_extension == 'docx': docx_document = DocxDocument(file.name) text = "" for paragraph in docx_document.paragraphs: text += paragraph.text + "\n" result = mitteilung(text) #display(Markdown(result)) return result return text #return [Document(text=text)] with gr.Blocks(css=custom_css) as demo: gr.Markdown("### File upload", elem_classes="tab-header") with gr.Row(): textoutput = gr.Markdown(label="Antwort", elem_id="md", value="#") with gr.Row(): text_output = gr.Textbox(label="") with gr.Row(): file_input = gr.File(label="Wähle eine PDF-Datei aus", type="filepath") with gr.Row(): submit_button = gr.Button("upload") submit_button.click(process_file, inputs=file_input, outputs=[textoutput,text_output]) demo.launch(show_error=True)