ARQ-RAG-Turboquant / scripts /push_to_hf.py
neshaki091
Implement full HF Dataset persistence: auto-sync on ingest and shutdown
df9f55f
import os
from huggingface_hub import HfApi
from dotenv import load_dotenv
def push_to_hf():
load_dotenv()
repo_id = os.getenv("HF_DATASET_REPO")
token = os.getenv("HF_TOKEN_WRITE")
if not repo_id or not token:
print("❌ Error: HF_DATASET_REPO or HF_TOKEN_WRITE not found in .env")
return
api = HfApi()
# Thư mục dữ liệu cần đẩy lên
base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
data_dir = os.path.join(base_dir, "data")
if not os.path.exists(data_dir):
print(f"ℹ️ Data directory {data_dir} not found, nothing to push.")
return
print(f"🚀 Starting push to HF Dataset: {repo_id}...")
try:
# Đẩy toàn bộ nội dung trong thư mục data lên Dataset
# path_in_repo="" nghĩa là đẩy vào root của dataset
api.upload_folder(
folder_path=data_dir,
repo_id=repo_id,
repo_type="dataset",
token=token,
# Chỉ đẩy các file quan trọng, bỏ qua cache
allow_patterns=["*.db", "user_indexes/*", "system_index/*", "metadata/*"],
delete_not_maintained_files=False # Cẩn thận: nếu True sẽ xóa file trên HF nếu local không có
)
print("✅ Push to HF Dataset completed successfully.")
except Exception as e:
print(f"⚠️ Push failed: {e}")
if __name__ == "__main__":
push_to_hf()