FGDemo / gradio_app.py
KarishGupta's picture
Implemented Inference Client with "zai-org/GLM-4.5V" model
2c837a7
import gradio as gr
from local_model import query_local
from remote_model import query_remote, client
import time
def query(image, question, model_name):
if model_name == "Local":
return query_local(image, question)
elif model_name == "Remote":
return query_remote(image, question, client)
return "No model selected"
custom_css = """
.output-card {
background-color: #f9fafb;
border: 10px solid #e5e7eb;
border-radius: 8px;
padding: 40px;
}
"""
with gr.Blocks(theme=gr.themes.Soft(), title="Qwen2-VL Analyst") as app:
start_time = time.time()
gr.Markdown(
r"""
¯\_(ツ)_/¯ Intelligence: Upload an image and ask a question
"""
)
with gr.Row():
with gr.Column(scale=1):
img_input = gr.Image(type="pil", label="Upload Image", height=400)
q_input = gr.Textbox(label="Question", lines=2)
with gr.Row():
clear_btn = gr.Button("Clear", variant="secondary")
submit_btn = gr.Button("Analyze Image", variant="primary")
with gr.Column(scale=1):
with gr.Row():
model_dropdown = gr.Dropdown(
label="Select Model", choices=["Local", "Remote"], value="Local"
)
gr.Markdown("Model Analysis:")
with gr.Group(elem_classes="output-card"):
output_box = gr.Markdown(value="Results...", line_breaks=True)
submit_btn.click(
fn=query, inputs=[img_input, q_input, model_dropdown], outputs=output_box
)
q_input.submit(
fn=query, inputs=[img_input, q_input, model_dropdown], outputs=output_box
)
def clear_inputs():
return None, "", ""
clear_btn.click(
fn=clear_inputs, inputs=[], outputs=[img_input, q_input, output_box]
)
app.launch()