jays009 commited on
Commit
20e6ace
·
verified ·
1 Parent(s): 07f42c0

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +30 -16
app.py CHANGED
@@ -17,13 +17,11 @@ results_cache = {}
17
 
18
  # Download model from Hugging Face
19
  def download_model():
20
- print("Downloading model...")
21
  model_path = hf_hub_download(repo_id="jays009/Restnet50", filename="pytorch_model.bin")
22
  return model_path
23
 
24
  # Load the model from Hugging Face
25
  def load_model(model_path):
26
- print("Loading model...")
27
  model = models.resnet50(pretrained=False)
28
  model.fc = nn.Linear(model.fc.in_features, num_classes)
29
  model.load_state_dict(torch.load(model_path, map_location=torch.device("cpu")))
@@ -78,24 +76,40 @@ def predict_from_url(url):
78
  print(f"Error during URL processing: {e}")
79
  return {"error": f"Failed to process the URL: {str(e)}"}
80
 
81
- # Main prediction function with caching
82
- def predict(image, url):
83
  try:
84
- print("Starting prediction...")
85
  if image:
86
  result = predict_from_image(image)
87
- elif url:
88
- result = predict_from_url(url)
89
  else:
90
- result = {"error": "No input provided. Please upload an image or provide a URL."}
91
-
92
- event_id = id(result) # Use Python's id() function to generate a unique identifier
93
- results_cache[event_id] = result
94
 
95
- print(f"Event ID: {event_id}, Result: {result}")
96
- return {"event_id": event_id, "result": result}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
97
  except Exception as e:
98
- print(f"Error in prediction function: {e}")
99
  return {"error": str(e)}
100
 
101
  # Function to retrieve result by event_id
@@ -130,8 +144,8 @@ with iface:
130
  submit_button = gr.Button("Submit")
131
 
132
  submit_button.click(
133
- fn=predict,
134
- inputs=[image_input, url_input],
135
  outputs=output
136
  )
137
 
 
17
 
18
  # Download model from Hugging Face
19
  def download_model():
 
20
  model_path = hf_hub_download(repo_id="jays009/Restnet50", filename="pytorch_model.bin")
21
  return model_path
22
 
23
  # Load the model from Hugging Face
24
  def load_model(model_path):
 
25
  model = models.resnet50(pretrained=False)
26
  model.fc = nn.Linear(model.fc.in_features, num_classes)
27
  model.load_state_dict(torch.load(model_path, map_location=torch.device("cpu")))
 
76
  print(f"Error during URL processing: {e}")
77
  return {"error": f"Failed to process the URL: {str(e)}"}
78
 
79
+ # Main prediction function without event ID for direct uploads
80
+ def predict_direct_upload(image):
81
  try:
 
82
  if image:
83
  result = predict_from_image(image)
84
+ return result
 
85
  else:
86
+ return {"error": "No image provided. Please upload an image."}
87
+ except Exception as e:
88
+ print(f"Error in direct upload prediction function: {e}")
89
+ return {"error": str(e)}
90
 
91
+ # Main prediction function with caching for paths via Postman
92
+ def predict_with_event_id(data):
93
+ try:
94
+ path = data[0].get('path', None)
95
+ if path:
96
+ if path.startswith("http://") or path.startswith("https://"):
97
+ result = predict_from_url(path)
98
+ elif os.path.isfile(path):
99
+ image = Image.open(path)
100
+ result = predict_from_image(image)
101
+ else:
102
+ result = {"error": "Invalid path format. Please provide a valid URL or local file path."}
103
+
104
+ event_id = id(result)
105
+ results_cache[event_id] = result
106
+
107
+ print(f"Event ID: {event_id}, Result: {result}")
108
+ return {"event_id": event_id, "result": result}
109
+ else:
110
+ return {"error": "No path provided. Please provide a valid path."}
111
  except Exception as e:
112
+ print(f"Error in prediction function with event ID: {e}")
113
  return {"error": str(e)}
114
 
115
  # Function to retrieve result by event_id
 
144
  submit_button = gr.Button("Submit")
145
 
146
  submit_button.click(
147
+ fn=predict_direct_upload,
148
+ inputs=[image_input],
149
  outputs=output
150
  )
151