Spaces:
Sleeping
Sleeping
import gradio as gr | |
from PIL import Image | |
HEAD_HTML = """ | |
<link href='https://fonts.googleapis.com/css?family=PT Mono' rel='stylesheet'> | |
""" | |
DEFAULT_CASE = "case_2" | |
CASE_LIST = ["case_0", "case_1", "case_2"] | |
data = {} | |
for case_name in CASE_LIST: | |
with open(f"resources/{case_name}/prompt_0.txt", "r") as f: | |
data[case_name] = { | |
"prompt_0": f.read(), | |
} | |
with open(f"resources/{case_name}/output_0.txt", "r") as f: | |
data[case_name]["output_0"] = f.read() | |
data[case_name]["output_1"] = f.read() | |
with open(f"resources/{case_name}/prompt_1.txt", "r") as f: | |
data[case_name]["prompt_1"] = f.read() | |
with open(f"resources/{case_name}/output_1.txt", "r") as f: | |
data[case_name]["output_1"] = f.read() | |
demo_image = Image.open( | |
f"resources/{case_name}/pdf_page.png" | |
) | |
data[case_name]["image"] = demo_image | |
with gr.Blocks( | |
theme=gr.themes.Ocean( | |
font_mono="PT Mono", | |
), | |
head=HEAD_HTML, | |
) as demo: | |
gr.Markdown("# 2D Layout-Preserving Text Serialization Demo") | |
with gr.Row(): | |
gr.Markdown("## Input Image") | |
case_name = gr.Dropdown( | |
choices=CASE_LIST, | |
label="Select a case", | |
value=DEFAULT_CASE, | |
) | |
demo_image = gr.Image( | |
data[DEFAULT_CASE]["image"], | |
show_label=False, | |
container=False, | |
height=700, | |
width=600, | |
) | |
gr.Markdown("## Sample Prompt & Response from LLM") | |
with gr.Tabs(): | |
with gr.TabItem("Prompt"): | |
with gr.Row(): | |
prompt_0 = gr.Code( | |
data[DEFAULT_CASE]["prompt_0"], | |
language="markdown", | |
show_line_numbers=False, | |
interactive=False, | |
label="2D Layout-Preserving Text" | |
) | |
prompt_1 = gr.Code( | |
data[DEFAULT_CASE]["prompt_1"], | |
language="markdown", | |
show_line_numbers=False, | |
interactive=False, | |
label="1D Text" | |
) | |
with gr.TabItem("Response"): | |
with gr.Row(): | |
output_0 = gr.Markdown( | |
data[DEFAULT_CASE]["output_0"], | |
container=False | |
) | |
output_1 = gr.Markdown( | |
data[DEFAULT_CASE]["output_1"], | |
container=False | |
) | |
case_name.change( | |
lambda case: [ | |
data[case]["image"], | |
data[case]["prompt_0"], | |
data[case]["prompt_1"], | |
data[case]["output_0"], | |
data[case]["output_1"], | |
], | |
inputs=case_name, | |
outputs=[ | |
demo_image, | |
prompt_0, | |
prompt_1, | |
output_0, | |
output_1, | |
], | |
) | |
demo.queue().launch() |