Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
|
@@ -47,6 +47,11 @@ def process_image(images, project_name):
|
|
| 47 |
milestones = []
|
| 48 |
for image in images:
|
| 49 |
img = Image.open(image)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 50 |
image_size_mb = os.path.getsize(image) / (1024 * 1024)
|
| 51 |
if image_size_mb > 20:
|
| 52 |
return "Error: One or more images exceed 20MB.", "Failure", "", "", 0
|
|
@@ -80,6 +85,9 @@ def process_image(images, project_name):
|
|
| 80 |
except Exception as e:
|
| 81 |
return f"Error: Failed to upload image to Salesforce - {str(e)}", "Failure", "", "", 0
|
| 82 |
|
|
|
|
|
|
|
|
|
|
| 83 |
# Check if the image represents a completed building
|
| 84 |
if "completed" in os.path.basename(image).lower() or "finished" in os.path.basename(image).lower():
|
| 85 |
milestone = "Completed" # Directly detect completion if such features exist
|
|
@@ -90,10 +98,14 @@ def process_image(images, project_name):
|
|
| 90 |
milestone_index = img_hash % len(VALID_MILESTONES)
|
| 91 |
milestone = VALID_MILESTONES[milestone_index]
|
| 92 |
|
|
|
|
|
|
|
| 93 |
milestones.append(milestone)
|
| 94 |
|
| 95 |
# Determine overall milestone (most advanced detected)
|
| 96 |
final_milestone = max(set(milestones), key=milestones.count) if milestones else "Planning"
|
|
|
|
|
|
|
| 97 |
milestone_completion_map = {
|
| 98 |
"Planning": 10,
|
| 99 |
"Foundation": 30,
|
|
@@ -101,7 +113,9 @@ def process_image(images, project_name):
|
|
| 101 |
"Completed": 100,
|
| 102 |
}
|
| 103 |
percent_complete = milestone_completion_map.get(final_milestone, 0)
|
|
|
|
| 104 |
|
|
|
|
| 105 |
completion_details = {
|
| 106 |
"Planning": {
|
| 107 |
"completed": [
|
|
@@ -221,6 +235,7 @@ def process_image(images, project_name):
|
|
| 221 |
return result_html, "Success", final_milestone, f"{percent_complete}%"
|
| 222 |
|
| 223 |
except Exception as e:
|
|
|
|
| 224 |
return f"Error: {str(e)}", "Failure", "", "", "0%"
|
| 225 |
|
| 226 |
# Gradio UI
|
|
|
|
| 47 |
milestones = []
|
| 48 |
for image in images:
|
| 49 |
img = Image.open(image)
|
| 50 |
+
|
| 51 |
+
# Debugging log for image filename
|
| 52 |
+
print(f"Processing image: {os.path.basename(image)}")
|
| 53 |
+
|
| 54 |
+
# Check if the image exceeds the size limit (20MB)
|
| 55 |
image_size_mb = os.path.getsize(image) / (1024 * 1024)
|
| 56 |
if image_size_mb > 20:
|
| 57 |
return "Error: One or more images exceed 20MB.", "Failure", "", "", 0
|
|
|
|
| 85 |
except Exception as e:
|
| 86 |
return f"Error: Failed to upload image to Salesforce - {str(e)}", "Failure", "", "", 0
|
| 87 |
|
| 88 |
+
# Debugging log for detected milestone
|
| 89 |
+
print(f"Detected milestone for image: {os.path.basename(image)}")
|
| 90 |
+
|
| 91 |
# Check if the image represents a completed building
|
| 92 |
if "completed" in os.path.basename(image).lower() or "finished" in os.path.basename(image).lower():
|
| 93 |
milestone = "Completed" # Directly detect completion if such features exist
|
|
|
|
| 98 |
milestone_index = img_hash % len(VALID_MILESTONES)
|
| 99 |
milestone = VALID_MILESTONES[milestone_index]
|
| 100 |
|
| 101 |
+
print(f"Milestone detected: {milestone}")
|
| 102 |
+
|
| 103 |
milestones.append(milestone)
|
| 104 |
|
| 105 |
# Determine overall milestone (most advanced detected)
|
| 106 |
final_milestone = max(set(milestones), key=milestones.count) if milestones else "Planning"
|
| 107 |
+
print(f"Final milestone after processing all images: {final_milestone}")
|
| 108 |
+
|
| 109 |
milestone_completion_map = {
|
| 110 |
"Planning": 10,
|
| 111 |
"Foundation": 30,
|
|
|
|
| 113 |
"Completed": 100,
|
| 114 |
}
|
| 115 |
percent_complete = milestone_completion_map.get(final_milestone, 0)
|
| 116 |
+
print(f"Completion percentage: {percent_complete}%")
|
| 117 |
|
| 118 |
+
# Completion details for different milestones
|
| 119 |
completion_details = {
|
| 120 |
"Planning": {
|
| 121 |
"completed": [
|
|
|
|
| 235 |
return result_html, "Success", final_milestone, f"{percent_complete}%"
|
| 236 |
|
| 237 |
except Exception as e:
|
| 238 |
+
print(f"Error: {str(e)}")
|
| 239 |
return f"Error: {str(e)}", "Failure", "", "", "0%"
|
| 240 |
|
| 241 |
# Gradio UI
|