Glainez commited on
Commit
3cf31a7
·
verified ·
1 Parent(s): 4b4fbc4

Upload folder using huggingface_hub

Browse files
Files changed (1) hide show
  1. app.py +16 -2
app.py CHANGED
@@ -90,8 +90,7 @@ if not check_password():
90
  st.stop()
91
 
92
 
93
- @st.cache_resource(show_spinner=False)
94
- def configure_api():
95
  config_dir = os.path.join(os.path.dirname(__file__), "csv_config")
96
  csv_files = glob.glob(os.path.join(config_dir, "*.csv"))
97
 
@@ -130,6 +129,10 @@ def configure_api():
130
  except Exception as e:
131
  return {"status": "error", "message": f"Impossibile configurare l'API: {e}"}
132
 
 
 
 
 
133
  # Inizializza la configurazione silenziosamente
134
  with st.spinner("Inizializzazione configurazione API..."):
135
  config_status = configure_api()
@@ -193,6 +196,17 @@ if uploaded_img is not None or image_to_analyze_path is not None:
193
  data = {"client_id": CLIENT_ID}
194
  try:
195
  resp = requests.post(f"{API_BASE_URL}/predict", files=files, data=data)
 
 
 
 
 
 
 
 
 
 
 
196
  if resp.status_code == 200:
197
  predictions = resp.json().get("predictions", [])
198
  if not predictions:
 
90
  st.stop()
91
 
92
 
93
+ def _do_configure_api():
 
94
  config_dir = os.path.join(os.path.dirname(__file__), "csv_config")
95
  csv_files = glob.glob(os.path.join(config_dir, "*.csv"))
96
 
 
129
  except Exception as e:
130
  return {"status": "error", "message": f"Impossibile configurare l'API: {e}"}
131
 
132
+ @st.cache_resource(show_spinner=False)
133
+ def configure_api():
134
+ return _do_configure_api()
135
+
136
  # Inizializza la configurazione silenziosamente
137
  with st.spinner("Inizializzazione configurazione API..."):
138
  config_status = configure_api()
 
196
  data = {"client_id": CLIENT_ID}
197
  try:
198
  resp = requests.post(f"{API_BASE_URL}/predict", files=files, data=data)
199
+
200
+ if resp.status_code == 409:
201
+ st.info("Configurazione assente in questa istanza. Sincronizzazione in corso... riprova la predizione in automatico.")
202
+ conf_resp = _do_configure_api()
203
+ if conf_resp.get("status") == "success":
204
+ # Ripopolare i file consumati da request.post e riprovare
205
+ files = {"image": (img_name, img_bytes, img_type)}
206
+ resp = requests.post(f"{API_BASE_URL}/predict", files=files, data=data)
207
+ else:
208
+ st.error(f"Errore durante l'auto-configurazione: {conf_resp.get('message')}")
209
+
210
  if resp.status_code == 200:
211
  predictions = resp.json().get("predictions", [])
212
  if not predictions: