Introduction to Huggingface Hub
Huggingface Hub is a platform that provides a comprehensive set of tools and APIs to build, train, and deploy machine learning models. It enables seamless collaboration among developers, data scientists, and researchers by offering a centralized repository for model sharing and discovery.
Useful API Examples
1. Creating a Model Repository
from huggingface_hub import HfApi api = HfApi() repo_url = api.create_repo(name="my-awesome-model", private=True) print(f"Model repository created at: {repo_url}")
2. Uploading a Model
from huggingface_hub import upload_file upload_file(path_or_fileobj="pytorch_model.bin", path_in_repo="my-awesome-model/pytorch_model.bin", repo_id="username/my-awesome-model") print("Model uploaded successfully!")
3. Downloading a Model
from huggingface_hub import hf_hub_download model_path = hf_hub_download(repo_id="username/my-awesome-model", filename="pytorch_model.bin") print(f"Model downloaded to: {model_path}")
4. Listing All Repositories of a User
from huggingface_hub import HfApi api = HfApi() user_repos = api.list_repos(username="username") for repo in user_repos: print(repo)
5. Deleting a Model Repository
from huggingface_hub import HfApi api = HfApi() api.delete_repo(name="my-awesome-model", username="username") print("Model repository deleted successfully.")
Building an App with Huggingface Hub APIs
Below is a simple example of a web application that utilizes Huggingface Hub APIs to manage model repositories. The app enables users to upload, download, and delete models from the Hub.
App Example
from flask import Flask, request, jsonify from huggingface_hub import HfApi, upload_file, hf_hub_download app = Flask(__name__) api = HfApi() @app.route('/create_repo', methods=['POST']) def create_repo(): data = request.json repo_url = api.create_repo(name=data['name'], private=data['private']) return jsonify({"repo_url": repo_url}) @app.route('/upload_model', methods=['POST']) def upload_model(): data = request.json upload_file(path_or_fileobj=data['file_path'], path_in_repo=f"{data['repo_name']}/{data['file_name']}", repo_id=data['repo_id']) return jsonify({"status": "Model uploaded successfully!"}) @app.route('/download_model', methods=['GET']) def download_model(): repo_id = request.args.get('repo_id') filename = request.args.get('filename') model_path = hf_hub_download(repo_id=repo_id, filename=filename) return jsonify({"model_path": model_path}) @app.route('/delete_repo', methods=['DELETE']) def delete_repo(): data = request.json api.delete_repo(name=data['name'], username=data['username']) return jsonify({"status": "Model repository deleted successfully."}) if __name__ == '__main__': app.run(debug=True)
This example showcases the integration of Huggingface Hub’s functionalities into a Flask web application, highlighting the ease of use and flexibility of the APIs.
Hash: 61f652e7088dbd0a6d0f59f18265ba2aef2f1d5a8c7715277dd31ff45e01fcb4