| |
|
| |
|
| | from huggingface_hub import HfApi
|
| | import argparse
|
| |
|
| |
|
| |
|
| | api = HfApi()
|
| |
|
| | def load_template_and_substitute(template_path, **kwargs):
|
| | try:
|
| | with open(template_path, 'r', encoding='utf-8') as f:
|
| | template_content = f.read()
|
| |
|
| | return template_content.format(**kwargs)
|
| | except FileNotFoundError:
|
| | print(f"Template file '{template_path}' not found!")
|
| | return None
|
| | except KeyError as e:
|
| | print(f"Missing template variable: {e}")
|
| | return None
|
| |
|
| | parser = argparse.ArgumentParser(description='Create a new Hugging Face model repository')
|
| | parser.add_argument('--model-name', '-m', help='Name for the model', required=True)
|
| | parser.add_argument('--namespace', '-ns', help='Namespace to add the model to', required=True)
|
| | parser.add_argument('--org-base-model', '-b', help='Original Base model name', default="")
|
| | parser.add_argument('--no-card', action='store_true', help='Skip creating model card')
|
| | parser.add_argument('--private', '-p', action='store_true', help='Create private model')
|
| | parser.add_argument('--embedding', '-e', action='store_true', help='Use embedding model card template')
|
| | parser.add_argument('--dry-run', '-d', action='store_true', help='Print repository info and template without creating repository')
|
| |
|
| | args = parser.parse_args()
|
| |
|
| | repo_id = f"{args.namespace}/{args.model_name}-GGUF"
|
| | print("Repository ID: ", repo_id)
|
| |
|
| | repo_url = None
|
| | if not args.dry_run:
|
| | repo_url = api.create_repo(
|
| | repo_id=repo_id,
|
| | repo_type="model",
|
| | private=args.private,
|
| | exist_ok=False
|
| | )
|
| |
|
| | if not args.no_card:
|
| | if args.embedding:
|
| | template_path = "scripts/embedding/modelcard.template"
|
| | else:
|
| | template_path = "scripts/causal/modelcard.template"
|
| |
|
| | print("Template path: ", template_path)
|
| |
|
| | model_card_content = load_template_and_substitute(
|
| | template_path,
|
| | model_name=args.model_name,
|
| | namespace=args.namespace,
|
| | base_model=args.org_base_model,
|
| | )
|
| |
|
| | if args.dry_run:
|
| | print("\nTemplate Content:\n")
|
| | print(model_card_content)
|
| | else:
|
| | if model_card_content:
|
| | api.upload_file(
|
| | path_or_fileobj=model_card_content.encode('utf-8'),
|
| | path_in_repo="README.md",
|
| | repo_id=repo_id
|
| | )
|
| | print("Model card created successfully.")
|
| | else:
|
| | print("Failed to create model card.")
|
| |
|
| | if not args.dry_run and repo_url:
|
| | print(f"Repository created: {repo_url}")
|
| |
|
| |
|
| |
|