Spaces:
Runtime error
Runtime error
| 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) | |