import gradio as gr from gradio_pdf import PDF from pdf2image import convert_from_path from transformers import pipeline from pathlib import Path dir_ = Path(__file__).parent p = pipeline( "document-question-answering", model="impira/layoutlm-document-qa", ) def qa(doc: str, question: str) -> str: img = convert_from_path(doc)[0] output = p(img, question) return sorted(output, key=lambda x: x["score"], reverse=True)[0]['answer'] demo = gr.Interface( qa, [PDF(label="Document"), gr.Textbox()], gr.Textbox(), examples=[[str(dir_ / "invoice_2.pdf"), "What is the total gross worth?"]] ) demo.launch()