Spaces:
Sleeping
Sleeping
import streamlit as st | |
from PIL import Image | |
from ocr_engine import extract_weight_from_image | |
import urllib.parse | |
st.set_page_config(page_title="βοΈ Auto Weight Logger", layout="centered") | |
st.title("βοΈ Auto Weight Logger") | |
img_data = st.camera_input("π· Capture the weight display") | |
if img_data: | |
if len(img_data.getvalue()) > 5 * 1024 * 1024: | |
st.error("β Image too large (>5MB). Please try again.") | |
st.stop() | |
image = Image.open(img_data) | |
st.image(image, caption="πΈ Snapshot", use_column_width=True) | |
with st.spinner("π Extracting weight..."): | |
weight, confidence = extract_weight_from_image(image) | |
# β Show debug info (you can delete this later) | |
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 image.") | |
if st.button("π Try Again"): | |
st.experimental_rerun() | |
st.stop() | |
st.success(f"β Detected Weight: {weight} g (Confidence: {int(confidence)}%)") | |
device_id = "BAL-001" | |
image_url = "" | |
encoded_weight = urllib.parse.quote(str(weight)) | |
encoded_device = urllib.parse.quote(device_id) | |
encoded_image_url = urllib.parse.quote(image_url) | |
salesforce_url = ( | |
f"https://autoweightlogger-dev-ed.my.salesforce-sites.com/" | |
f"weight_logger_page?WeightInput={encoded_weight}&DeviceID={encoded_device}&ImageURL={encoded_image_url}" | |
) | |
st.markdown("### π€ Send to Salesforce") | |
st.markdown(f"[β Click here to confirm and log in Salesforce]({salesforce_url})", unsafe_allow_html=True) | |