import gradio as gr def mock_ocr(image): if image is None: return "Please upload an image.", "", "", "{}" return ( "Dyrehaven 12-10-1952", "STATENS NATURHISTORISKE MUSEUM", "NHMD 1709377", '{"specimen_id": "NHMD 1709377"}' ) with gr.Blocks(theme=gr.themes.Soft(), title="Museum Specimen OCR") as demo: gr.Markdown("# Museum Specimen Detection and Text Extraction using OCR") with gr.Row(): with gr.Column(): img_in = gr.Image(label="Upload Specimen Image", type="pil") btn = gr.Button("Start Extraction", variant="primary") with gr.Column(): out1 = gr.Textbox(label="Handwritten Text") out2 = gr.Textbox(label="Institutional Data") out3 = gr.Textbox(label="Specimen IDs & Metadata") json_out = gr.Code(label="Verified Structure (JSON)", language="json") btn.click( fn=mock_ocr, inputs=[img_in], outputs=[out1, out2, out3, json_out] ) demo.launch()