Spaces:
Sleeping
Sleeping
| import modal | |
| # Define the Modal image and app | |
| image = modal.Image.debian_slim(python_version="3.9") | |
| app = modal.App("example-app", image=image) | |
| # Define the volume | |
| flux_model_vol = modal.Volume.from_name("flux-model-vol", create_if_missing=True) | |
| # Load configuration (e.g., from a config file or environment variables) | |
| cpu = 8 # Set to 0 to disable CPU | |
| memory = 70000 # Memory in MB | |
| gpu = "a100-80gb" # Set to None to disable GPU | |
| # Dynamically construct the decorator arguments | |
| decorator_args = { | |
| "volumes": {"/data": flux_model_vol}, | |
| "secrets": [modal.Secret.from_name("huggingface-token")], | |
| "cpu": cpu, | |
| "memory": memory, | |
| } | |
| # Remove GPU if CPU is set | |
| if cpu > 0: | |
| print("CPU is set, removing GPU parameter.") | |
| decorator_args.pop("gpu", None) # Remove 'gpu' if it exists | |
| else: | |
| print("CPU is not set, keeping GPU parameter.") | |
| decorator_args["gpu"] = gpu | |
| # Debug: Print the final decorator arguments | |
| print("Decorator arguments:", decorator_args) | |
| # Apply the decorator dynamically | |
| def my_function(): | |
| import os | |
| # Example: List the contents of the volume | |
| print("Contents of /data:") | |
| print(os.listdir("/data")) | |
| # Your function code here | |
| return f"Function executed with CPU={cpu}, Memory={memory}, GPU={gpu if 'gpu' in decorator_args else 'None'}" | |
| # Call the function | |
| result = my_function.remote() | |
| print(result) |