Rekham1110 commited on
Commit
638a209
·
verified ·
1 Parent(s): 12f9a7c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -9
app.py CHANGED
@@ -70,7 +70,7 @@ def process_image(image, project_name):
70
  if not str(image).lower().endswith(('.jpg', '.jpeg', '.png')):
71
  return "Error: Only JPG/PNG images are supported.", "Failure", "", "", 0
72
 
73
- # Save image to public folder
74
  upload_dir = "public_uploads"
75
  os.makedirs(upload_dir, exist_ok=True)
76
  unique_id = datetime.now().strftime("%Y%m%d%H%M%S")
@@ -78,16 +78,31 @@ def process_image(image, project_name):
78
  saved_image_path = os.path.join(upload_dir, image_filename)
79
  shutil.copy(image, saved_image_path)
80
 
81
- # Corrected public URL logic
82
- if os.getenv("GRADIO_SERVER_NAME"):
83
- public_url_base = f"https://{os.getenv('GRADIO_SERVER_NAME')}/file"
84
- else:
85
- public_url_base = "http://localhost:7860/file"
86
 
87
- image_url = f"{public_url_base}/{upload_dir}/{image_filename}"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
88
 
 
89
  milestone, percent_complete, confidence_score = mock_ai_model(img)
90
 
 
91
  record = {
92
  "Name__c": project_name,
93
  "Current_Milestone__c": milestone,
@@ -95,9 +110,10 @@ def process_image(image, project_name):
95
  "Last_Updated_On__c": datetime.now().isoformat(),
96
  "Upload_Status__c": "Success",
97
  "Comments__c": f"AI Prediction: {milestone} with {confidence_score*100}% confidence",
98
- "Last_Updated_Image__c": image_url
99
  }
100
 
 
101
  try:
102
  sf.Construction__c.create(record)
103
  except Exception as e:
@@ -134,4 +150,4 @@ with gr.Blocks(css=".gradio-container {background-color: #f0f4f8; font-family: A
134
  outputs=[output_text, upload_status, milestone, confidence, progress]
135
  )
136
 
137
- demo.launch(share=True)
 
70
  if not str(image).lower().endswith(('.jpg', '.jpeg', '.png')):
71
  return "Error: Only JPG/PNG images are supported.", "Failure", "", "", 0
72
 
73
+ # Save image to public folder temporarily before uploading to Salesforce
74
  upload_dir = "public_uploads"
75
  os.makedirs(upload_dir, exist_ok=True)
76
  unique_id = datetime.now().strftime("%Y%m%d%H%M%S")
 
78
  saved_image_path = os.path.join(upload_dir, image_filename)
79
  shutil.copy(image, saved_image_path)
80
 
81
+ # Read the file into binary format to upload to Salesforce
82
+ with open(saved_image_path, 'rb') as image_file:
83
+ image_data = image_file.read()
 
 
84
 
85
+ # Create the ContentVersion record in Salesforce
86
+ content_version = {
87
+ 'Title': image_filename,
88
+ 'PathOnClient': saved_image_path,
89
+ 'VersionData': image_data
90
+ }
91
+
92
+ # Upload the file to Salesforce
93
+ try:
94
+ content_version_result = sf.ContentVersion.create(content_version)
95
+ content_version_id = content_version_result['id']
96
+
97
+ # Generate the public URL for the uploaded file in Salesforce
98
+ file_url = f"https://sathkruthatechsolutionspri8-dev-ed.develop.lightning.force.com/{content_version_id}"
99
+ except Exception as e:
100
+ return f"Error: Failed to upload image to Salesforce - {str(e)}", "Failure", "", "", 0
101
 
102
+ # AI-based milestone and completion prediction
103
  milestone, percent_complete, confidence_score = mock_ai_model(img)
104
 
105
+ # Create the Salesforce record with the image URL and AI prediction
106
  record = {
107
  "Name__c": project_name,
108
  "Current_Milestone__c": milestone,
 
110
  "Last_Updated_On__c": datetime.now().isoformat(),
111
  "Upload_Status__c": "Success",
112
  "Comments__c": f"AI Prediction: {milestone} with {confidence_score*100}% confidence",
113
+ "Last_Updated_Image__c": file_url
114
  }
115
 
116
+ # Upload the record to Salesforce
117
  try:
118
  sf.Construction__c.create(record)
119
  except Exception as e:
 
150
  outputs=[output_text, upload_status, milestone, confidence, progress]
151
  )
152
 
153
+ demo.launch(share=True)