| Here’s a **minimal, working example** showing how you can create a Hugging Face model repo and upload files into it using Python. | |
| --- | |
| ### 1. Install dependencies | |
| ```bash | |
| uv pip install huggingface_hub | |
| ``` | |
| --- | |
| ### 2. Example Python script | |
| ```python | |
| from huggingface_hub import HfApi, create_repo, upload_file | |
| import os | |
| # 1. Authenticate (make sure HF_TOKEN is in your environment variables) | |
| hf_token = os.getenv("HF_TOKEN") | |
| if not hf_token: | |
| raise EnvironmentError("Missing HF_TOKEN in environment variables.") | |
| # 2. Define repo details | |
| repo_name = "test-model-repo" | |
| namespace = "your-username" # replace with your HF username/org | |
| repo_id = f"{namespace}/{repo_name}" | |
| # 3. Create repo (only first time, idempotent) | |
| create_repo(repo_id, token=hf_token, repo_type="model", exist_ok=True) | |
| print(f"✅ Repo created: https://huggingface.co/{repo_id}") | |
| # 4. Upload files | |
| api = HfApi() | |
| # Example: upload a config.json file | |
| upload_file( | |
| path_or_fileobj="config.json", # local file path | |
| path_in_repo="config.json", # where it will appear in repo | |
| repo_id=repo_id, | |
| token=hf_token | |
| ) | |
| # Example: upload model weights | |
| upload_file( | |
| path_or_fileobj="pytorch_model.bin", | |
| path_in_repo="pytorch_model.bin", | |
| repo_id=repo_id, | |
| token=hf_token | |
| ) | |
| print("✅ Files uploaded successfully!") | |
| ``` | |
| --- | |
| ### 3. Workflow | |
| 1. Get your token from [Hugging Face settings → Access Tokens](https://huggingface.co/settings/tokens). | |
| 2. Save it in environment: | |
| ```bash | |
| export HF_TOKEN=your_token_here | |
| ``` | |
| 3. Run the script → it will: | |
| * Create a model repo if not exists. | |
| * Upload your files (e.g., `config.json`, `pytorch_model.bin`). | |
| * You’ll see them in `https://huggingface.co/your-username/test-model-repo`. | |
| --- | |
| 👉 Do you want me to also show an example of uploading **multiple files/folders at once** (like the whole model directory with tokenizer, config, and weights)? | |