| #!/usr/bin/env python3 | |
| import os | |
| from pathlib import Path | |
| from huggingface_hub import HfApi, create_repo, upload_folder | |
| # ===== ์ฌ์ฉ์ ์ค์ ===== | |
| # ์ค์ ๋ก ๋ง๋ค Hugging Face ๋ชจ๋ธ repo ID (์์) | |
| REPO_ID = "roboseasylabs/SenseVoice-Small-ko" # <-- ์ํ๋ ์ด๋ฆ์ผ๋ก ์์ | |
| # ์ ๋ก๋ํ ๋ก์ปฌ ํด๋ (ํ์ต ๊ฒฐ๊ณผ) | |
| MODEL_DIR = Path("/home/khw/workspace/STTProject/SenseVoice-Small-ko") | |
| # ๋ก์ปฌ์ ์๋ model.py๋ฅผ ํจ๊ป ์ฌ๋ฆฌ๊ณ ์ถ์ผ๋ฉด (FunASR/SenseVoice์ฉ) | |
| # outputs ์์ ์ด๋ฏธ ๋ณต์ฌํด ๋์์ผ๋ฉด ์๋ต ๊ฐ๋ฅ | |
| def main(): | |
| # 1) ํ ํฐ ๊ฐ์ ธ์ค๊ธฐ (ํ๊ฒฝ๋ณ์ ์ฌ์ฉ ๊ถ์ฅ) | |
| # ๋ฏธ๋ฆฌ export HUGGINGFACE_HUB_TOKEN=hf_xxx ํ๊ธฐ | |
| # ๋ฏธ๋ฆฌ export HF_HUB_DOWNLOAD_TIMEOUT=3600 ํ๊ธฐ (์ ๋ก๋/๋ค์ด๋ก๋ ์๊ฐ ๋๋ฆฌ๊ธฐ) | |
| token = os.environ.get("HUGGINGFACE_HUB_TOKEN") | |
| if token is None: | |
| raise RuntimeError( | |
| "HUGGINGFACE_HUB_TOKEN ํ๊ฒฝ๋ณ์๊ฐ ์ค์ ๋์ด ์์ง ์์ต๋๋ค. " | |
| "https://huggingface.co/settings/tokens ์์ ํ ํฐ์ ๋ง๋ค๊ณ ,\n" | |
| "export HUGGINGFACE_HUB_TOKEN=hf_xxx ๋ก ์ค์ ํ ๋ค ๋ค์ ์คํํ์ธ์." | |
| ) | |
| api = HfApi() | |
| # 2) ๋ฆฌํฌ์งํฐ๋ฆฌ ์์ฑ (์ด๋ฏธ ์์ผ๋ฉด exist_ok=True ๋ก ๊ทธ๋ฅ ํต๊ณผ) | |
| create_repo( | |
| repo_id=REPO_ID, | |
| token=token, | |
| private=True, # ๋น๊ณต๊ฐ๋ก ์ฌ๋ฆฌ๋ ค๋ฉด True | |
| exist_ok=True, | |
| repo_type="model", | |
| ) | |
| # 4) ํด๋ ํต์งธ๋ก ์ ๋ก๋ | |
| print(f"[info] uploading folder: {MODEL_DIR} -> {REPO_ID}") | |
| upload_folder( | |
| repo_id=REPO_ID, | |
| folder_path=str(MODEL_DIR), | |
| path_in_repo=".", # ๋ฆฌํฌ ๋ฃจํธ์ ๊ทธ๋๋ก ์ฌ๋ฆฌ๊ธฐ | |
| token=token, | |
| repo_type="model", | |
| # ignore_patterns=[ | |
| # "model.pt.ep*", # ์ฒดํฌํฌ์ธํธ๋ค ์ ์ธ | |
| # "*.pt.ep*", # ํน์ ๋ค๋ฅธ ํ์ผ๋ช ๋ ๋น์ทํ๊ฒ ์ฐํ๋ฉด ๊ฐ์ด ์ ์ธ | |
| # ], | |
| ) | |
| print("[done] uploaded to:", f"https://huggingface.co/{REPO_ID}") | |
| if __name__ == "__main__": | |
| main() | |