import gradio as gr from PIL import Image from datetime import datetime from ocr_engine import extract_weight_from_image from utils import get_ist_time def process_image(image): if image is None: return "No image provided", None, None, None weight, confidence = extract_weight_from_image(image) timestamp = get_ist_time() if not weight: return "No weight detected", timestamp, image, "-" return f"{weight} g (Confidence: {confidence}%)", timestamp, image, f"https://your-salesforce-site.com/log-weight?weight={weight}&time={timestamp}" title = "⚖️ Auto Weight Logger" description = "Upload or capture an image to extract the weight and log the result." iface = gr.Interface( fn=process_image, inputs=gr.Image(type="pil", label="Upload or Capture Snapshot"), outputs=[ gr.Textbox(label="Detected Weight"), gr.Textbox(label="Captured At (IST)"), gr.Image(label="Snapshot Image"), gr.Textbox(label="Salesforce Log URL"), ], title=title, description=description, live=True, ) if __name__ == "__main__": iface.launch()