mirror of
https://github.com/LostRuins/koboldcpp.git
synced 2025-09-11 17:44:38 +00:00
* examples : add model conversion tool/example This commit adds an "example/tool" that is intended to help in the process of converting models to GGUF. Currently it supports normal causal models and embedding models. The readme contains instructions and command to guide through the process. The motivation for this to have a structured and repeatable process for model conversions and hopefully with time improve upon it to make the process easier and more reliable. We have started to use this for new model conversions internally and will continue doing so and improve it as we go along. Perhaps with time this should be placed in a different directory than the examples directory, but for now it seems like a good place to keep it while we are still developing it. * squash! examples : add model conversion tool/example Remove dependency on scikit-learn in model conversion example. * squash! examples : add model conversion tool/example Update transformer dep to use non-dev version. And also import `AutoModelForCausalLM` instead of `AutoModel` to ensure compatibility with the latest version. * squash! examples : add model conversion tool/example Remove the logits requirements file from the all requirements file.
106 lines
3.4 KiB
Python
Executable file
106 lines
3.4 KiB
Python
Executable file
#!/usr/bin/env python3
|
|
|
|
from huggingface_hub import HfApi
|
|
import argparse
|
|
import os
|
|
import sys
|
|
|
|
|
|
def create_collection(title, description, private=False, namespace=None, return_slug=False):
|
|
"""
|
|
Create a new collection on Hugging Face
|
|
|
|
Args:
|
|
title: Collection title
|
|
description: Collection description
|
|
private: Whether the collection should be private (default: False)
|
|
namespace: Optional namespace (defaults to your username)
|
|
|
|
Returns:
|
|
Collection object if successful, None if failed
|
|
"""
|
|
|
|
# Check if HF_TOKEN is available
|
|
token = os.getenv("HF_TOKEN") or os.getenv("HUGGINGFACE_HUB_TOKEN")
|
|
if not token:
|
|
print("❌ No HF_TOKEN or HUGGINGFACE_HUB_TOKEN found in environment variables")
|
|
print("Please set your Hugging Face token as an environment variable")
|
|
return None
|
|
|
|
# Initialize API
|
|
api = HfApi()
|
|
|
|
try:
|
|
# Test authentication first
|
|
user_info = api.whoami()
|
|
if not return_slug:
|
|
print(f"✅ Authenticated as: {user_info['name']}")
|
|
|
|
# Create the collection
|
|
if not return_slug:
|
|
print(f"📚 Creating collection: '{title}'...")
|
|
collection = api.create_collection(
|
|
title=title,
|
|
description=description,
|
|
private=private,
|
|
namespace=namespace
|
|
)
|
|
|
|
if not return_slug:
|
|
print(f"✅ Collection created successfully!")
|
|
print(f"📋 Collection slug: {collection.slug}")
|
|
print(f"🔗 Collection URL: https://huggingface.co/collections/{collection.slug}")
|
|
|
|
return collection
|
|
|
|
except Exception as e:
|
|
print(f"❌ Error creating collection: {e}")
|
|
return None
|
|
|
|
def main():
|
|
# This script requires that the environment variable HF_TOKEN is set with your
|
|
# Hugging Face API token.
|
|
api = HfApi()
|
|
|
|
parser = argparse.ArgumentParser(description='Create a Huggingface Collection')
|
|
parser.add_argument('--name', '-n', help='The name/title of the Collection', required=True)
|
|
parser.add_argument('--description', '-d', help='The description for the Collection', required=True)
|
|
parser.add_argument('--namespace', '-ns', help='The namespace to add the Collection to', required=True)
|
|
parser.add_argument('--private', '-p', help='Create a private Collection', action='store_true') # Fixed
|
|
parser.add_argument('--return-slug', '-s', help='Only output the collection slug', action='store_true') # Fixed
|
|
|
|
args = parser.parse_args()
|
|
|
|
name = args.name
|
|
description = args.description
|
|
private = args.private
|
|
namespace = args.namespace
|
|
return_slug = args.return_slug
|
|
|
|
if not return_slug:
|
|
print("🚀 Creating Hugging Face Collection")
|
|
print(f"Title: {name}")
|
|
print(f"Description: {description}")
|
|
print(f"Namespace: {namespace}")
|
|
print(f"Private: {private}")
|
|
|
|
collection = create_collection(
|
|
title=name,
|
|
description=description,
|
|
private=private,
|
|
namespace=namespace,
|
|
return_slug=return_slug
|
|
)
|
|
|
|
if collection:
|
|
if return_slug:
|
|
print(collection.slug)
|
|
else:
|
|
print("\n🎉 Collection created successfully!")
|
|
print(f"Use this slug to add models: {collection.slug}")
|
|
else:
|
|
print("\n❌ Failed to create collection")
|
|
sys.exit(1)
|
|
|
|
if __name__ == "__main__":
|
|
main()
|