Hjgugugjhuhjggg commited on
Commit
3504082
·
verified ·
1 Parent(s): 527826b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -27
app.py CHANGED
@@ -147,39 +147,27 @@ class S3DirectStream:
147
  logger.info(f"Tokenizer loaded for {model_prefix}.")
148
  return tokenizer
149
 
150
- def download_and_upload_to_s3(self, model_prefix): # Removed revision parameter
151
  logger.info(f"Downloading and uploading model files for {model_prefix} to S3...")
152
  try:
153
  api = HfApi()
154
- model_info = api.model_info(model_prefix)
155
- if hasattr(model_info, 'revision'):
156
- revision = model_info.revision
157
- if revision:
158
- revision = revision
159
- else:
160
- logger.warning(f"No revision found for {model_prefix}, using 'main'")
161
- revision = "main"
162
- else:
163
- logger.warning(f"ModelInfo object for {model_prefix} does not have a 'revision' attribute, using 'main'")
164
- revision = "main"
165
- except Exception as e:
166
- logger.error(f"Error getting latest revision for {model_prefix}: {e}")
167
- revision = "main"
168
 
169
- config_url = f"https://huggingface.co/{model_prefix}/resolve/{revision}/config.json"
170
- self.download_and_upload_to_s3_url(config_url, f"{model_prefix}/config.json")
 
 
 
 
171
 
172
- model_files = self._get_model_files(model_prefix, revision)
173
- for model_file in model_files:
174
- url = f"https://huggingface.co/{model_prefix}/resolve/{revision}/{model_file}"
175
- s3_key = f"{model_prefix}/{model_file}"
176
- self.download_and_upload_to_s3_url(url, s3_key)
177
- logger.info(f"Downloaded and uploaded {s3_key}")
178
 
179
- tokenizer_url = f"https://huggingface.co/{model_prefix}/resolve/{revision}/tokenizer.json"
180
- self.download_and_upload_to_s3_url(tokenizer_url, f"{model_prefix}/tokenizer.json")
181
-
182
- logger.info(f"Finished downloading and uploading model files for {model_prefix}.")
 
 
183
 
184
 
185
  def _get_model_files(self, model_prefix, revision="main"):
 
147
  logger.info(f"Tokenizer loaded for {model_prefix}.")
148
  return tokenizer
149
 
150
+ def download_and_upload_to_s3(self, model_prefix):
151
  logger.info(f"Downloading and uploading model files for {model_prefix} to S3...")
152
  try:
153
  api = HfApi()
154
+ model_files = api.list_repo_files(model_prefix)
 
 
 
 
 
 
 
 
 
 
 
 
 
155
 
156
+ for file_info in model_files:
157
+ if file_info.rfilename.endswith(('.bin', '.safetensors', 'config.json', 'tokenizer.json')):
158
+ file_url = api.download_file(model_prefix, file_info.rfilename)
159
+ s3_key = f"{model_prefix}/{file_info.rfilename}"
160
+ self.download_and_upload_to_s3_url(file_url, s3_key)
161
+ logger.info(f"Downloaded and uploaded {s3_key}")
162
 
163
+ logger.info(f"Finished downloading and uploading model files for {model_prefix}.")
 
 
 
 
 
164
 
165
+ except requests.exceptions.RequestException as e:
166
+ logger.error(f"Error downloading model files from HuggingFace: {e}")
167
+ raise HTTPException(status_code=500, detail=f"Error downloading model files from Hugging Face") from e
168
+ except Exception as e:
169
+ logger.error(f"An unexpected error occurred: {e}")
170
+ raise HTTPException(status_code=500, detail=f"An unexpected error occurred during model download") from e
171
 
172
 
173
  def _get_model_files(self, model_prefix, revision="main"):