Update app.py
Browse files
app.py
CHANGED
|
@@ -21,10 +21,10 @@ if not HF_TOKEN:
|
|
| 21 |
raise ValueError("HUGGINGFACE_TOKEN environment variable is not set")
|
| 22 |
|
| 23 |
# Hardcoded model repository ID
|
| 24 |
-
HARDCODED_MODEL_REPO_ID = "openai/gpt-oss-20b" #
|
| 25 |
|
| 26 |
# Hardcoded dataset repository ID
|
| 27 |
-
HARDCODED_DATASET_REPO_ID = "Fred808/helium_memory" #
|
| 28 |
|
| 29 |
# Hardcoded path in repository
|
| 30 |
HARDCODED_PATH_IN_REPO = "model_data/"
|
|
@@ -52,7 +52,7 @@ def download_model_files() -> str:
|
|
| 52 |
|
| 53 |
print(f"Found {len(files)} files to download")
|
| 54 |
|
| 55 |
-
# Download each file
|
| 56 |
for file_path in files:
|
| 57 |
if file_path.endswith('/'): # Skip directories
|
| 58 |
continue
|
|
@@ -63,22 +63,26 @@ def download_model_files() -> str:
|
|
| 63 |
file_dir = os.path.join(temp_dir, os.path.dirname(file_path))
|
| 64 |
os.makedirs(file_dir, exist_ok=True)
|
| 65 |
|
| 66 |
-
# Download the file
|
| 67 |
local_path = hf_hub_download(
|
| 68 |
repo_id=HARDCODED_MODEL_REPO_ID,
|
| 69 |
filename=file_path,
|
| 70 |
-
|
| 71 |
force_download=True,
|
| 72 |
-
resume_download=False,
|
| 73 |
token=HF_TOKEN
|
| 74 |
)
|
| 75 |
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 80 |
|
| 81 |
print(f"All files downloaded to: {temp_dir}")
|
|
|
|
| 82 |
return temp_dir
|
| 83 |
|
| 84 |
except Exception as e:
|
|
@@ -91,14 +95,28 @@ def upload_folder_to_dataset(folder_path: str):
|
|
| 91 |
"""Uploads a folder to the hardcoded Hugging Face dataset repository."""
|
| 92 |
api = HfApi(token=HF_TOKEN)
|
| 93 |
print(f"Uploading {folder_path} to {HARDCODED_DATASET_REPO_ID} at {HARDCODED_PATH_IN_REPO}...")
|
|
|
|
|
|
|
|
|
|
|
|
|
| 94 |
try:
|
| 95 |
-
|
| 96 |
-
|
| 97 |
-
|
| 98 |
-
|
| 99 |
-
|
| 100 |
-
|
| 101 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 102 |
print("Upload complete!")
|
| 103 |
except Exception as e:
|
| 104 |
print(f"Upload failed: {str(e)}")
|
|
@@ -129,7 +147,7 @@ async def run_transfer():
|
|
| 129 |
if not os.listdir(temp_dir):
|
| 130 |
raise Exception("No files were downloaded")
|
| 131 |
|
| 132 |
-
print(f"
|
| 133 |
|
| 134 |
# Upload to dataset
|
| 135 |
await loop.run_in_executor(
|
|
@@ -145,7 +163,6 @@ async def run_transfer():
|
|
| 145 |
error_msg = f"Transfer failed: {str(e)}"
|
| 146 |
print(error_msg)
|
| 147 |
transfer_error = error_msg
|
| 148 |
-
raise
|
| 149 |
finally:
|
| 150 |
# Clean up downloaded files
|
| 151 |
if temp_dir:
|
|
@@ -185,4 +202,4 @@ async def startup_event():
|
|
| 185 |
if __name__ == "__main__":
|
| 186 |
import uvicorn
|
| 187 |
# Run the server indefinitely
|
| 188 |
-
uvicorn.run(app, host="0.0.0.0", port=7860)
|
|
|
|
| 21 |
raise ValueError("HUGGINGFACE_TOKEN environment variable is not set")
|
| 22 |
|
| 23 |
# Hardcoded model repository ID
|
| 24 |
+
HARDCODED_MODEL_REPO_ID = "openai/gpt-oss-20b" # Your model
|
| 25 |
|
| 26 |
# Hardcoded dataset repository ID
|
| 27 |
+
HARDCODED_DATASET_REPO_ID = "Fred808/helium_memory" # Your dataset
|
| 28 |
|
| 29 |
# Hardcoded path in repository
|
| 30 |
HARDCODED_PATH_IN_REPO = "model_data/"
|
|
|
|
| 52 |
|
| 53 |
print(f"Found {len(files)} files to download")
|
| 54 |
|
| 55 |
+
# Download each file directly without using cache
|
| 56 |
for file_path in files:
|
| 57 |
if file_path.endswith('/'): # Skip directories
|
| 58 |
continue
|
|
|
|
| 63 |
file_dir = os.path.join(temp_dir, os.path.dirname(file_path))
|
| 64 |
os.makedirs(file_dir, exist_ok=True)
|
| 65 |
|
| 66 |
+
# Download the file directly to the target location
|
| 67 |
local_path = hf_hub_download(
|
| 68 |
repo_id=HARDCODED_MODEL_REPO_ID,
|
| 69 |
filename=file_path,
|
| 70 |
+
local_dir=temp_dir,
|
| 71 |
force_download=True,
|
|
|
|
| 72 |
token=HF_TOKEN
|
| 73 |
)
|
| 74 |
|
| 75 |
+
print(f"Downloaded to: {local_path}")
|
| 76 |
+
|
| 77 |
+
# Remove any cache directories that might have been created
|
| 78 |
+
for item in os.listdir(temp_dir):
|
| 79 |
+
item_path = os.path.join(temp_dir, item)
|
| 80 |
+
if item.startswith('models--') and os.path.isdir(item_path):
|
| 81 |
+
shutil.rmtree(item_path)
|
| 82 |
+
print(f"Removed cache directory: {item_path}")
|
| 83 |
|
| 84 |
print(f"All files downloaded to: {temp_dir}")
|
| 85 |
+
print(f"Final directory contents: {os.listdir(temp_dir)}")
|
| 86 |
return temp_dir
|
| 87 |
|
| 88 |
except Exception as e:
|
|
|
|
| 95 |
"""Uploads a folder to the hardcoded Hugging Face dataset repository."""
|
| 96 |
api = HfApi(token=HF_TOKEN)
|
| 97 |
print(f"Uploading {folder_path} to {HARDCODED_DATASET_REPO_ID} at {HARDCODED_PATH_IN_REPO}...")
|
| 98 |
+
|
| 99 |
+
# Check what we're actually trying to upload
|
| 100 |
+
print(f"Folder contents: {os.listdir(folder_path)}")
|
| 101 |
+
|
| 102 |
try:
|
| 103 |
+
# Upload each file individually to avoid cache issues
|
| 104 |
+
for root, dirs, files in os.walk(folder_path):
|
| 105 |
+
for file in files:
|
| 106 |
+
file_path = os.path.join(root, file)
|
| 107 |
+
relative_path = os.path.relpath(file_path, folder_path)
|
| 108 |
+
repo_path = os.path.join(HARDCODED_PATH_IN_REPO, relative_path).replace('\\', '/')
|
| 109 |
+
|
| 110 |
+
print(f"Uploading {file_path} to {repo_path}")
|
| 111 |
+
|
| 112 |
+
api.upload_file(
|
| 113 |
+
path_or_fileobj=file_path,
|
| 114 |
+
path_in_repo=repo_path,
|
| 115 |
+
repo_id=HARDCODED_DATASET_REPO_ID,
|
| 116 |
+
repo_type="dataset",
|
| 117 |
+
token=HF_TOKEN
|
| 118 |
+
)
|
| 119 |
+
|
| 120 |
print("Upload complete!")
|
| 121 |
except Exception as e:
|
| 122 |
print(f"Upload failed: {str(e)}")
|
|
|
|
| 147 |
if not os.listdir(temp_dir):
|
| 148 |
raise Exception("No files were downloaded")
|
| 149 |
|
| 150 |
+
print(f"Final downloaded files: {os.listdir(temp_dir)}")
|
| 151 |
|
| 152 |
# Upload to dataset
|
| 153 |
await loop.run_in_executor(
|
|
|
|
| 163 |
error_msg = f"Transfer failed: {str(e)}"
|
| 164 |
print(error_msg)
|
| 165 |
transfer_error = error_msg
|
|
|
|
| 166 |
finally:
|
| 167 |
# Clean up downloaded files
|
| 168 |
if temp_dir:
|
|
|
|
| 202 |
if __name__ == "__main__":
|
| 203 |
import uvicorn
|
| 204 |
# Run the server indefinitely
|
| 205 |
+
uvicorn.run(app, host="0.0.0.0", port=7860, timeout_keep_alive=600)
|