Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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):
|
151 |
logger.info(f"Downloading and uploading model files for {model_prefix} to S3...")
|
152 |
try:
|
153 |
api = HfApi()
|
154 |
-
|
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 |
-
|
170 |
-
|
|
|
|
|
|
|
|
|
171 |
|
172 |
-
|
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 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
|
|
|
|
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"):
|