# -*- coding: utf-8 -*- """ Đẩy dữ liệu lên một HF Dataset PRIVATE để Space tải về lúc khởi động. passages.jsonl có nội dung từ tạp chí/trang thương mại nên KHÔNG được để trong repo Space (repo Space public ai cũng xem được file). Dataset private thì chỉ người có token đọc được. pip install huggingface_hub huggingface-cli login # token quyền write python tools/upload_data.py --src ../../nambo_run/data --repo /namboqa-private """ import argparse from pathlib import Path from huggingface_hub import HfApi FILES = ["passages.jsonl", "places_clean.json", "qa_final.jsonl"] # split tự tính bằng chia_tap.py ap = argparse.ArgumentParser() ap.add_argument("--src", required=True, help="thư mục dữ liệu, vd ../../nambo_run/data") ap.add_argument("--repo", required=True, help="vd: minhluan/namboqa-private") ap.add_argument("--emb", nargs="*", default=[], help="(tuỳ chọn) file emb_*.npy đã tính sẵn để Space khỏi mã hoá lại") a = ap.parse_args() api = HfApi() api.create_repo(a.repo, repo_type="dataset", private=True, exist_ok=True) src = Path(a.src) for f in FILES + a.emb: p = src / f if not Path(f).is_absolute() and (src / f).exists() else Path(f) api.upload_file(path_or_fileobj=str(p), path_in_repo=p.name, repo_id=a.repo, repo_type="dataset") print("đã đẩy", p.name) print(f"Xong. Đặt biến DATA_REPO={a.repo} và secret HF_TOKEN (quyền read) cho Space.")