Spaces:
Sleeping
Sleeping
File size: 2,279 Bytes
fb1a823 c41b38b ae762c2 82ae7fe fb1a823 ae762c2 d54c470 82ae7fe fec538c 82ae7fe ae762c2 82ae7fe be301b7 82ae7fe be301b7 82ae7fe e9c0e22 82ae7fe be301b7 fec538c ae762c2 82ae7fe e9c0e22 ae762c2 82ae7fe ae762c2 82ae7fe ae762c2 82ae7fe ae762c2 82ae7fe ae762c2 82ae7fe ae762c2 82ae7fe ae762c2 82ae7fe |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
import streamlit as st
from PIL import Image
from ocr_engine import extract_weight_from_image
import urllib.parse
import uuid
st.set_page_config(page_title="βοΈ Auto Weight Logger", layout="centered")
st.title("βοΈ Auto Weight Logger")
# Session state
if "image_data" not in st.session_state:
st.session_state.image_data = None
if "camera_key" not in st.session_state:
st.session_state.camera_key = str(uuid.uuid4())
# Clear / Retake
if st.button("π Clear / Retake Photo"):
st.session_state.image_data = None
st.session_state.camera_key = str(uuid.uuid4()) # new key to force reload
# Show camera
if st.session_state.image_data is None:
img_data = st.camera_input("π· Capture the weight display", key=st.session_state.camera_key)
if img_data:
st.session_state.image_data = img_data
# Process image
if st.session_state.image_data:
st.success("β
Image captured successfully!")
image = Image.open(st.session_state.image_data)
st.image(image, caption="πΈ Snapshot", use_column_width=True)
if len(st.session_state.image_data.getvalue()) > 5 * 1024 * 1024:
st.error("β Image too large (>5MB). Please try again.")
st.stop()
with st.spinner("π Extracting weight..."):
weight, confidence = extract_weight_from_image(image)
st.write(f"π οΈ DEBUG: weight = {weight}, confidence = {confidence}")
if not weight or confidence < 80:
st.error(f"β οΈ OCR confidence too low ({int(confidence)}%). Please retake the photo.")
else:
st.success(f"β
Detected Weight: {weight} g (Confidence: {int(confidence)}%)")
device_id = "BAL-001"
image_url = ""
salesforce_url = (
"https://autoweightlogger-dev-ed.my.salesforce-sites.com/"
f"weight_logger_page?WeightInput={urllib.parse.quote(str(weight))}"
f"&DeviceID={urllib.parse.quote(device_id)}&ImageURL={urllib.parse.quote(image_url)}"
)
st.markdown("### π€ Send to Salesforce")
st.markdown(f"[β
Click here to confirm and log in Salesforce]({salesforce_url})", unsafe_allow_html=True)
if st.button("π Retake Photo"):
st.session_state.image_data = None
st.session_state.camera_key = str(uuid.uuid4())
|