import gradio as gr import random import json import os def fake_func(): return "Hello There" def xray_model(diseases, img): return {disease: random.random() for disease in diseases} def ct_model(diseases, img): return {disease: 0.1 for disease in diseases} with gr.Blocks() as demo: gr.Markdown( """ # Detect Disease From Scan With this model you can lorem ipsum - ipsum 1 - ipsum 2 """ ) disease = gr.CheckboxGroup( choices=[["Covid", "Covid"], ["Malaria", "Malaria"], ["Lung Cancer", "Lung Cancer"]], label="Disease to Scan For" ) with gr.Tabs(): with gr.TabItem("X-ray"): with gr.Row(): xray_scan = gr.Image() xray_results = gr.JSON() xray_run = gr.Button("Run") xray_run.click( xray_model, inputs=[disease, xray_scan], outputs=xray_results ) with gr.TabItem("CT Scan"): with gr.Row(): ct_scan = gr.Image() ct_results = gr.JSON() ct_run = gr.Button("Run") ct_run.click( ct_model, inputs=[disease, ct_scan], outputs=ct_results ) textbox = gr.Textbox() gr.context.Context.id = 100 with gr.Blocks() as demo2: gr.Markdown( """ # Detect Disease From Scan With this model you can lorem ipsum - ipsum 1 - ipsum 2 """ ) disease = gr.CheckboxGroup( choices=[["Covid", "Covid"], ["Malaria", "Malaria"], ["Lung Cancer", "Lung Cancer"]], label="Disease to Scan For" ) with gr.Tabs(): with gr.TabItem("X-ray"): with gr.Row(): xray_scan = gr.Image() xray_results = gr.JSON() xray_run = gr.Button("Run") xray_run.click( xray_model, inputs=[disease, xray_scan], outputs=xray_results ) with gr.TabItem("CT Scan"): with gr.Row(): ct_scan = gr.Image() ct_results = gr.JSON() ct_run = gr.Button("Run") ct_run.click( ct_model, inputs=[disease, ct_scan], outputs=ct_results ) textbox = gr.Textbox() with gr.Blocks() as demo3: demo.render() t = gr.Textbox() demo3.load(fake_func, [], [t]) config = demo.get_config_file() config2 = demo2.get_config_file() config3 = demo3.get_config_file() json_file_path = "../test/test_files/xray_config.json" json_file_path2 = "../test/test_files/xray_config_diff_ids.json" json_file_path3 = "../test/test_files/xray_config_wrong.json" for c, j in zip([config, config2, config3], [json_file_path, json_file_path2, json_file_path3]): assert os.path.exists(j), f"{j} does not exist" with open(j, "w") as fp: json.dump(c, fp, indent=2)