|
|
|
|
|
""" |
|
|
创建或更新 Hugging Face 仓库 |
|
|
""" |
|
|
|
|
|
import os |
|
|
from pathlib import Path |
|
|
from huggingface_hub import HfApi, login, create_repo |
|
|
|
|
|
def create_and_upload(): |
|
|
|
|
|
token = os.environ.get("HF_TOKEN") |
|
|
if not token: |
|
|
print("❌ 错误: 未设置 HF_TOKEN 环境变量!") |
|
|
print("请运行: export HF_TOKEN='你的token'") |
|
|
return False |
|
|
|
|
|
try: |
|
|
|
|
|
login(token=token) |
|
|
print("✅ 成功登录 Hugging Face") |
|
|
|
|
|
|
|
|
api = HfApi() |
|
|
user_info = api.whoami() |
|
|
username = user_info['name'] |
|
|
print(f"👤 当前用户: {username}") |
|
|
|
|
|
except Exception as e: |
|
|
print(f"❌ 登录失败: {e}") |
|
|
return False |
|
|
|
|
|
|
|
|
repo_name = "dbnet_res18_text_detection_v0.1" |
|
|
repo_id = f"{username}/{repo_name}" |
|
|
|
|
|
print(f"\n🔍 检查仓库: {repo_id}") |
|
|
|
|
|
|
|
|
try: |
|
|
create_repo( |
|
|
repo_id=repo_id, |
|
|
repo_type="model", |
|
|
exist_ok=True, |
|
|
private=False |
|
|
) |
|
|
print(f"✅ 仓库已就绪: {repo_id}") |
|
|
except Exception as e: |
|
|
print(f"⚠️ 仓库创建/检查: {e}") |
|
|
|
|
|
|
|
|
local_dir = Path(__file__).parent |
|
|
|
|
|
print(f"\n🚀 开始上传文件到: {repo_id}") |
|
|
|
|
|
try: |
|
|
from huggingface_hub import upload_folder |
|
|
|
|
|
|
|
|
upload_folder( |
|
|
folder_path=str(local_dir), |
|
|
repo_id=repo_id, |
|
|
repo_type="model", |
|
|
ignore_patterns=[ |
|
|
"__pycache__/*", |
|
|
"*.pyc", |
|
|
".git/*", |
|
|
"set_token.sh", |
|
|
"update_*.py", |
|
|
"update_*.sh" |
|
|
], |
|
|
commit_message="Update DBNet model files" |
|
|
) |
|
|
|
|
|
print(f"\n✅ 上传成功!") |
|
|
print(f"🔗 查看仓库: https://huggingface.co/{repo_id}") |
|
|
return True |
|
|
|
|
|
except Exception as e: |
|
|
print(f"❌ 上传失败: {e}") |
|
|
import traceback |
|
|
traceback.print_exc() |
|
|
return False |
|
|
|
|
|
if __name__ == "__main__": |
|
|
success = create_and_upload() |
|
|
exit(0 if success else 1) |
|
|
|
|
|
|