Spaces:
Sleeping
Sleeping
File size: 2,604 Bytes
f53136a 0704195 f53136a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | # ============================================================
# 📄 الملف: scripts/upload_assets.py
# 🎯 الغرض: رفع الملفات الكبيرة إلى مستودع Hugging Face Hub (مرة واحدة).
#
# يرفع: data/embeddings/ (المتجهات) + data/processed/data.csv (البيانات)
# + models/ksaa_custom/ (النموذج الثالث المحلي).
# النموذجان الأول والثاني يُنزَّلان تلقائيًا من HuggingFace فلا يُرفعان.
# بعدها يقدر التطبيق المنشور ينزّل هذي الملفات تلقائيًا.
#
# قبل التشغيل:
# 1) سجّلي دخول HF مرة واحدة: huggingface-cli login
# (أو صدّري التوكن: export HF_TOKEN=hf_xxx)
# 2) حدّدي اسم المستودع: export HF_DATA_REPO="username/repo-name"
#
# ثم (من داخل مجلد backend):
# python scripts/upload_assets.py
# ============================================================
import os
import sys
from pathlib import Path
sys.path.append(str(Path(__file__).resolve().parent.parent))
import config
from huggingface_hub import HfApi, create_repo
def main():
repo = os.getenv("HF_DATA_REPO")
if not repo:
raise SystemExit("❌ حدّدي المستودع أولًا: export HF_DATA_REPO=\"username/repo\"")
print(f"📦 المستودع: {repo}")
create_repo(repo, repo_type="model", exist_ok=True)
api = HfApi()
# 1) الـ embeddings
print("⏫ رفع data/embeddings/ ...")
api.upload_folder(folder_path=str(config.EMBEDDINGS_DIR),
path_in_repo="data/embeddings",
repo_id=repo, repo_type="model")
# 2) البيانات المنظّفة
print("⏫ رفع data/processed/data.csv ...")
api.upload_file(path_or_fileobj=str(config.PROCESSED_DATA_PATH),
path_in_repo="data/processed/data.csv",
repo_id=repo, repo_type="model")
# 3) كل النماذج المحلية (الثالث وأي نموذج محلي إضافي) — مجلد models/ كامل
models_dir = config.BASE_DIR / "models"
print("⏫ رفع models/ ...")
api.upload_folder(folder_path=str(models_dir),
path_in_repo="models",
repo_id=repo, repo_type="model")
print(f"✅ تم الرفع. اجعلي المستودع عامًّا (Public) من إعداداته على HF.")
print(f" ثم في أسرار Streamlit Cloud: HF_DATA_REPO = \"{repo}\"")
if __name__ == "__main__":
main()
|