danielle2035 commited on
Commit
7fcfaa9
·
1 Parent(s): 7ce37d1
Files changed (1) hide show
  1. app.py +12 -4
app.py CHANGED
@@ -18,7 +18,7 @@ import uvicorn
18
  BASE_DIR = Path(__file__).resolve().parent
19
  MODEL_DIR = BASE_DIR / "models"
20
  PYTORCH_PATH = MODEL_DIR / "pytorch_model.pth"
21
- TENSORFLOW_PATH = MODEL_DIR / "model_best.keras"
22
 
23
  CLASSES = ["buildings", "forest", "glacier", "mountain", "sea", "street"]
24
  CONFIDENCE_THRESHOLD = 0.6
@@ -202,9 +202,17 @@ def predict(
202
  raise HTTPException(status_code=400, detail=f"Impossible de lire l'image: {exc}")
203
  else:
204
  try:
205
- img = load_image_from_url(image_url)
206
- except ValueError as exc:
207
- raise HTTPException(status_code=400, detail=str(exc))
 
 
 
 
 
 
 
 
208
 
209
  predicted_class, confidence, all_probs = classify(img, model_choice)
210
  return {
 
18
  BASE_DIR = Path(__file__).resolve().parent
19
  MODEL_DIR = BASE_DIR / "models"
20
  PYTORCH_PATH = MODEL_DIR / "pytorch_model.pth"
21
+ TENSORFLOW_PATH = MODEL_DIR / "model_best.keras"
22
 
23
  CLASSES = ["buildings", "forest", "glacier", "mountain", "sea", "street"]
24
  CONFIDENCE_THRESHOLD = 0.6
 
202
  raise HTTPException(status_code=400, detail=f"Impossible de lire l'image: {exc}")
203
  else:
204
  try:
205
+ # Accepte URL HTTP/HTTPS, data URL (data:image/...;base64,...) ou base64 pur
206
+ if image_url.startswith("data:"):
207
+ img = load_image_from_url(image_url)
208
+ elif image_url.startswith(("http://", "https://")):
209
+ img = load_image_from_url(image_url)
210
+ else:
211
+ # Assume chaîne base64 pure
212
+ image_data = base64.b64decode(image_url)
213
+ img = Image.open(io.BytesIO(image_data)).convert("RGB")
214
+ except Exception as exc:
215
+ raise HTTPException(status_code=400, detail=f"Impossible de traiter l'image: {exc}")
216
 
217
  predicted_class, confidence, all_probs = classify(img, model_choice)
218
  return {