Spaces:
Runtime error
Runtime error
Implement detailed error handling for model submission conflicts in API and UI, enhancing user feedback for already submitted models. Update logging for better traceability of submission errors.
Browse files- api_service.py +15 -0
- ui_submit_model.py +26 -9
api_service.py
CHANGED
|
@@ -289,6 +289,21 @@ class APIService:
|
|
| 289 |
'message': result.get('message', 'Geçersiz veri'),
|
| 290 |
'error': result.get('error')
|
| 291 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 292 |
else:
|
| 293 |
logger.error(f"Model gönderimi hatası: HTTP {response.status_code}")
|
| 294 |
return {
|
|
|
|
| 289 |
'message': result.get('message', 'Geçersiz veri'),
|
| 290 |
'error': result.get('error')
|
| 291 |
}
|
| 292 |
+
elif response.status_code == 409:
|
| 293 |
+
# HTTP 409 Conflict - Model already exists
|
| 294 |
+
try:
|
| 295 |
+
result = response.json()
|
| 296 |
+
error_message = result.get('message', 'Model zaten gönderilmiş')
|
| 297 |
+
except:
|
| 298 |
+
error_message = 'Model zaten gönderilmiş'
|
| 299 |
+
|
| 300 |
+
logger.error(f"Model gönderimi hatası (409): {error_message}")
|
| 301 |
+
return {
|
| 302 |
+
'success': False,
|
| 303 |
+
'message': f'⚠️ {error_message}',
|
| 304 |
+
'error': 'Model already submitted',
|
| 305 |
+
'status_code': 409
|
| 306 |
+
}
|
| 307 |
else:
|
| 308 |
logger.error(f"Model gönderimi hatası: HTTP {response.status_code}")
|
| 309 |
return {
|
ui_submit_model.py
CHANGED
|
@@ -294,16 +294,33 @@ def add_submit_model_tab(block, api_service):
|
|
| 294 |
)
|
| 295 |
else:
|
| 296 |
error_msg = result.get('error', 'Bilinmeyen hata')
|
|
|
|
| 297 |
logger.error(f"API submission failed: {error_msg}")
|
| 298 |
-
|
| 299 |
-
|
| 300 |
-
|
| 301 |
-
|
| 302 |
-
|
| 303 |
-
|
| 304 |
-
|
| 305 |
-
|
| 306 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 307 |
|
| 308 |
except Exception as e:
|
| 309 |
logger.error(f"API submission exception: {e}")
|
|
|
|
| 294 |
)
|
| 295 |
else:
|
| 296 |
error_msg = result.get('error', 'Bilinmeyen hata')
|
| 297 |
+
status_code = result.get('status_code')
|
| 298 |
logger.error(f"API submission failed: {error_msg}")
|
| 299 |
+
|
| 300 |
+
# Handle specific error cases
|
| 301 |
+
if status_code == 409 or 'already submitted' in error_msg.lower():
|
| 302 |
+
return (
|
| 303 |
+
f'''
|
| 304 |
+
<div style="color: orange; padding: 15px; border: 1px solid orange; border-radius: 8px; background: #fffbeb;">
|
| 305 |
+
⚠️ <strong>Model Zaten Gönderilmiş!</strong><br><br>
|
| 306 |
+
<strong>Model:</strong> {model_name}<br>
|
| 307 |
+
<strong>Versiyon:</strong> {version}<br><br>
|
| 308 |
+
<strong>Not:</strong> Bu model daha önce sisteme gönderilmiş ve değerlendirme kuyruğunda bulunmaktadır.<br>
|
| 309 |
+
Lütfen farklı bir model veya versiyon deneyin.
|
| 310 |
+
</div>
|
| 311 |
+
''',
|
| 312 |
+
model_name, version # Keep the fields for user to modify
|
| 313 |
+
)
|
| 314 |
+
else:
|
| 315 |
+
return (
|
| 316 |
+
f'''
|
| 317 |
+
<div style="color: red; padding: 15px; border: 1px solid red; border-radius: 8px; background: #fef2f2;">
|
| 318 |
+
❌ <strong>API Gönderim Hatası!</strong><br>
|
| 319 |
+
<strong>Hata:</strong> {error_msg}
|
| 320 |
+
</div>
|
| 321 |
+
''',
|
| 322 |
+
model_name, version # Keep the fields for user to modify
|
| 323 |
+
)
|
| 324 |
|
| 325 |
except Exception as e:
|
| 326 |
logger.error(f"API submission exception: {e}")
|