| #!/usr/bin/env python | |
| """ | |
| Register this app with Hugging Face Spaces SDK. | |
| This file is used for deploying the app to Hugging Face Spaces. | |
| """ | |
| import os | |
| import subprocess | |
| import sys | |
| from huggingface_hub import SpaceHardware, SpaceStage, SpaceSDK | |
| def create_space(): | |
| """Create or update a Hugging Face Space.""" | |
| # Get the Space name or use a default | |
| space_name = os.environ.get("SPACE_NAME", "personal-rag-assistant") | |
| owner = os.environ.get("HF_USERNAME") | |
| if not owner: | |
| print("Please set the HF_USERNAME environment variable to your Hugging Face username.") | |
| sys.exit(1) | |
| # Initialize the SDK | |
| sdk = SpaceSDK( | |
| space_id=f"{owner}/{space_name}", | |
| token=os.environ.get("HF_TOKEN") | |
| ) | |
| # Check if space exists, if not create it | |
| try: | |
| space_info = sdk.get_space_runtime() | |
| print(f"Space {owner}/{space_name} exists.") | |
| exists = True | |
| except Exception: | |
| exists = False | |
| # Create or update the space | |
| if not exists: | |
| print(f"Creating new space: {owner}/{space_name}") | |
| sdk.create_space( | |
| space_hardware=SpaceHardware.CPU_BASIC, | |
| space_storage=1, | |
| space_sleep_time=3600, # 1 hour of inactivity before sleep | |
| space_stage=SpaceStage.RUNNING, | |
| ) | |
| print(f"Space URL: https://huggingface.co/spaces/{owner}/{space_name}") | |
| return sdk | |
| if __name__ == "__main__": | |
| create_space() |