Sanjayraju30 commited on
Commit
5cdc778
Β·
verified Β·
1 Parent(s): a26d1e2

Update src/streamlit_app.py

Browse files
Files changed (1) hide show
  1. src/streamlit_app.py +20 -28
src/streamlit_app.py CHANGED
@@ -6,30 +6,24 @@ import urllib.parse
6
  st.set_page_config(page_title="βš–οΈ Auto Weight Logger", layout="centered")
7
  st.title("βš–οΈ Auto Weight Logger")
8
 
9
- # ------------------------------
10
- # βœ… Setup session state for reset
11
- # ------------------------------
12
- if "reset" not in st.session_state:
13
- st.session_state.reset = False
14
-
15
- # πŸ” Handle reset if needed (immediately rerun and then show camera again)
16
- if st.session_state.reset:
17
- st.session_state.reset = False # Clear flag
18
- st.rerun()
19
-
20
- # πŸ”˜ Clear / Retake button
21
- if st.button("πŸ” Clear / Retake Photo"):
22
- st.session_state.reset = True
23
- st.rerun()
24
-
25
- # ------------------------------
26
  # πŸ“· Show camera input
27
- # ------------------------------
28
  img_data = st.camera_input("πŸ“· Capture the weight display")
29
 
30
- # ------------------------------
31
- # βœ… Handle image if captured
32
- # ------------------------------
33
  if img_data:
34
  st.success("βœ… Image captured successfully!")
35
 
@@ -40,26 +34,24 @@ if img_data:
40
  image = Image.open(img_data)
41
  st.image(image, caption="πŸ“Έ Snapshot", use_column_width=True)
42
 
43
- # πŸ” Extract weight via OCR
44
  with st.spinner("πŸ” Extracting weight..."):
45
  weight, confidence = extract_weight_from_image(image)
46
 
47
  st.write(f"πŸ› οΈ DEBUG: weight = {weight}, confidence = {confidence}")
48
 
49
- # ❌ If low confidence, ask to retake
50
  if not weight or confidence < 80:
51
  st.error(f"⚠️ OCR confidence too low ({int(confidence)}%). Please retake the photo.")
52
  if st.button("πŸ” Retake Photo"):
53
- st.session_state.reset = True
54
- st.rerun()
55
  st.stop()
56
 
57
- # βœ… Success
58
  st.success(f"βœ… Detected Weight: {weight} g (Confidence: {int(confidence)}%)")
59
 
60
- # Salesforce parameters
61
  device_id = "BAL-001"
62
- image_url = "" # Optional image hosting URL
63
 
64
  encoded_weight = urllib.parse.quote(str(weight))
65
  encoded_device = urllib.parse.quote(device_id)
 
6
  st.set_page_config(page_title="βš–οΈ Auto Weight Logger", layout="centered")
7
  st.title("βš–οΈ Auto Weight Logger")
8
 
9
+ # βœ… Flag to reset camera input
10
+ if "retake_photo" not in st.session_state:
11
+ st.session_state.retake_photo = False
12
+
13
+ # πŸ”˜ Retake Photo or Clear button logic
14
+ def clear_photo():
15
+ st.session_state.retake_photo = True
16
+
17
+ st.button("πŸ” Clear / Retake Photo", on_click=clear_photo)
18
+
19
+ # βœ… Skip camera this run, and reset for next
20
+ if st.session_state.retake_photo:
21
+ st.session_state.retake_photo = False # reset the flag
22
+ st.stop() # stop here β†’ camera will appear on next run
23
+
 
 
24
  # πŸ“· Show camera input
 
25
  img_data = st.camera_input("πŸ“· Capture the weight display")
26
 
 
 
 
27
  if img_data:
28
  st.success("βœ… Image captured successfully!")
29
 
 
34
  image = Image.open(img_data)
35
  st.image(image, caption="πŸ“Έ Snapshot", use_column_width=True)
36
 
 
37
  with st.spinner("πŸ” Extracting weight..."):
38
  weight, confidence = extract_weight_from_image(image)
39
 
40
  st.write(f"πŸ› οΈ DEBUG: weight = {weight}, confidence = {confidence}")
41
 
42
+ # ❌ Low confidence β€” offer retake
43
  if not weight or confidence < 80:
44
  st.error(f"⚠️ OCR confidence too low ({int(confidence)}%). Please retake the photo.")
45
  if st.button("πŸ” Retake Photo"):
46
+ st.session_state.retake_photo = True
47
+ st.stop()
48
  st.stop()
49
 
50
+ # βœ… Success β€” show Salesforce link
51
  st.success(f"βœ… Detected Weight: {weight} g (Confidence: {int(confidence)}%)")
52
 
 
53
  device_id = "BAL-001"
54
+ image_url = "" # Optional hosted image URL
55
 
56
  encoded_weight = urllib.parse.quote(str(weight))
57
  encoded_device = urllib.parse.quote(device_id)