e1250's picture
fix: gradio example link instead of file
0a5d922
import gradio as gr
import asyncio
from backend_client import check_backend_health, send_frame_to_websocket
def wrapper(image, camera_id):
return asyncio.run(send_frame_to_websocket(image, camera_id))
with gr.Blocks() as demo:
# On load - Refresh every 60 Seconds
status_indicator = gr.Markdown("Checking Server Status")
demo.load(fn=check_backend_health, outputs=status_indicator)
gr.Timer(60).tick(
fn=check_backend_health, outputs=status_indicator
) # Also check backend connectivity every 60 seconds
gr.Markdown(
"""
# Tracking System demo
A fast way to test the system just by uploading an image, Please make sure you check the guide to be able to use it.
"""
)
with gr.Accordion("How to use this system", open=False):
gr.Markdown(
"""
1. Make sure first backend is opened [HF Backend](https://huggingface.co/spaces/e1250/tracking_system_backend).
* If it is inactive, activate it or reach out to me.
* There is an indicator at the top of the page showing if the server is online or offline
2. Open Vercel Dashboard and make sure you create a line and place a camera with an id. [Dashboard Vercel](https://p-tracking-system.vercel.app/)
3. Open Gradio, Make sure you add the same `camera_id`, upload an image, then click send
4. Go back into the dashboard, Give it couple of seconds (Due to HF env limitation - CPU). then see the updates
5. Feel free also to take a look on Prometheus - [Prometheus Metrics](https://e1250-tracking-system-backend.hf.space/metrics/)
---
- [Github Repo](https://github.com/E1250/p-tracking_system)
"""
)
with gr.Row():
with gr.Column():
camera_id = gr.Textbox(
label="Camera ID", placeholder="Enter Camera ID", value="from_gradio"
)
outputs = gr.Textbox(label="Results", value="None")
send_btn = gr.Button("Send")
image_input = gr.Image(type="filepath", label="Upload Image")
gr.Examples(
examples=[
# Each list is just one example
# TODO: Add values later
[
"https://www.tdi.texas.gov/tips/artwork/protecting-family-from-fire-danger-on-page.jpg"
]
],
inputs=[image_input, camera_id],
cache_examples=False,
)
send_btn.click(fn=wrapper, inputs=[image_input, camera_id], outputs=outputs)
demo.launch(share=True)