Skip to main content

Fabric SDK

Official Python SDK for Fabric - Distributed AI Compute Network

Submit AI workloads to the Fabric network programmatically.

Installation

pip install fabric-compute-sdk

Quick Start

Option 1: Email/Password Authentication

from fabric_sdk import FabricClient

# Initialize client with email/password
client = FabricClient(
    api_url="https://api.fabric.carmel.so",
    email="your@email.com",
    password="your_password"
)

# Submit a job
job = client.submit_job(
    workload_type="llm_inference",
    params={
        "prompt": "Explain quantum computing in simple terms",
        "max_length": 200,
        "temperature": 0.7,
        "use_gpu": True
    },
    job_name="My LLM Inference Job"
)

print(f"Job submitted: {job['id']}")

# Wait for completion
result = client.wait_for_job(job['id'], timeout=300)
print(f"Job completed in {result['duration_seconds']}s")
print(f"Cost: ${result['actual_cost']}")

Option 2: API Key Authentication (Recommended for Google OAuth users)

from fabric_sdk import FabricClient

# Initialize client with API key
client = FabricClient(
    api_url="https://api.fabric.carmel.so",
    api_key="fb_live_..."  # Get this from dashboard Settings > API Keys
)

# Works exactly the same!
job = client.submit_job(
    workload_type="llm_inference",
    params={"prompt": "Explain quantum computing"},
    job_name="My Job"
)

Why use API keys?

  • No password needed (great for Google/GitHub OAuth users)
  • More secure for CI/CD pipelines
  • Easy to rotate and revoke
  • Each project can have its own key

Workflows - Zero-Config Job Submission

Instead of configuring dozens of parameters, use workflows - preset configurations for common use cases.

Bioinformatics Examples

# Sequence alignment - automatically sets all alignment parameters
job = client.submit_job(
    workload_type="ml_preprocess",
    params={
        "data_url": "https://your-bucket.s3.amazonaws.com/sequences.fasta",
        "workflow": "sequence_alignment"
    }
)

# Variant analysis - optimized for genomic variants
job = client.submit_job(
    workload_type="ml_preprocess",
    params={
        "data_url": "https://your-bucket.s3.amazonaws.com/variants.vcf",
        "workflow": "variant_analysis"
    }
)

# Protein property calculation
job = client.submit_job(
    workload_type="ml_preprocess",
    params={
        "data_url": "https://your-bucket.s3.amazonaws.com/proteins.fasta",
        "workflow": "protein_properties"
    }
)

ML Training Examples

# Quick classification - fast training with reasonable defaults
job = client.submit_job(
    workload_type="ml_train",
    params={
        "data_url": "https://your-bucket.s3.amazonaws.com/labeled_data.csv",
        "workflow": "quick_classification"
    }
)

# High accuracy - slower but more thorough hyperparameter search
job = client.submit_job(
    workload_type="ml_train",
    params={
        "data_url": "https://your-bucket.s3.amazonaws.com/labeled_data.csv",
        "workflow": "high_accuracy"
    }
)

# Survival analysis - for time-to-event data
job = client.submit_job(
    workload_type="ml_train",
    params={
        "data_url": "https://your-bucket.s3.amazonaws.com/survival_data.csv",
        "workflow": "survival_analysis"
    }
)

Image Processing Examples

# Cell segmentation - optimized for microscopy images
job = client.submit_job(
    workload_type="image_preprocess",
    params={
        "image_url": "https://your-bucket.s3.amazonaws.com/cells.tiff",
        "workflow": "cell_segmentation_prep"
    }
)

# ImageNet preparation - resize and normalize for deep learning
job = client.submit_job(
    workload_type="image_preprocess",
    params={
        "image_url": "https://your-bucket.s3.amazonaws.com/image.jpg",
        "workflow": "imagenet_prep"
    }
)

# Fluorescence quantification - for DAPI, GFP, etc.
job = client.submit_job(
    workload_type="image_preprocess",
    params={
        "image_url": "https://your-bucket.s3.amazonaws.com/fluorescence.tiff",
        "workflow": "fluorescence_quantification"
    }
)

Image Classification Examples

# Zero-shot classification - classify without training
job = client.submit_job(
    workload_type="image_label",
    params={
        "image_url": "https://your-bucket.s3.amazonaws.com/image.jpg",
        "workflow": "zero_shot_classification",
        "candidate_labels": ["cat", "dog", "bird", "fish"]
    }
)

# Object detection - find and locate objects
job = client.submit_job(
    workload_type="image_label",
    params={
        "image_url": "https://your-bucket.s3.amazonaws.com/image.jpg",
        "workflow": "object_detection"
    }
)

Override Workflow Defaults

Workflows set sensible defaults, but you can override any parameter:

job = client.submit_job(
    workload_type="ml_train",
    params={
        "data_url": "https://...",
        "workflow": "quick_classification",
        # Override specific settings
        "max_iterations": 200,      # More iterations
        "test_size": 0.3,           # Larger test set
        "use_gpu": True             # Force GPU
    }
)

Available Workflow Categories

ML Preprocessing (25+ workflows)

  • Bioinformatics: sequence_alignment, variant_analysis, protein_properties, phylogenetic_prep
  • Sports/Trajectory: trajectory_analysis, play_classification
  • General: basic_cleaning, anomaly_detection_prep, clustering_prep

ML Labeling (12+ workflows)

  • Clustering: quick_clustering, auto_clustering, hierarchical_clustering, density_clustering
  • Segmentation: customer_segmentation, fine_segmentation, binary_threshold

ML Training (20+ workflows)

  • Classification: quick_classification, balanced_classification, high_accuracy, interpretable
  • Regression: quick_regression, ridge_regression, lasso_regression
  • Neural Nets: neural_net_starter, neural_net_deep
  • Specialized: survival_analysis, differential_expression, biomarker_discovery

ML Inference (10+ workflows)

  • classification_inference, regression_inference, batch_inference, anomaly_scoring

Image Preprocessing (15+ workflows)

  • Standard: imagenet_prep, object_detection_prep, high_resolution_prep
  • Microscopy: fluorescence_quantification, cell_segmentation_prep, dapi_analysis

Image Labeling (13+ workflows)

  • zero_shot_classification, object_detection, visual_clustering, feature_extraction

Image Training (12+ workflows)

  • quick_train, balanced_train, resnet_classifier, vit_classifier, cell_image_classifier

Image Inference (12+ workflows)

  • image_classification, imagenet_resnet50, cell_classification, batch_inference

Features

  • Dual Authentication - Email/password OR API keys
  • 100+ Workflows - Preset configurations for common use cases
  • API Key Management - Create, list, and revoke keys programmatically
  • Job Submission - Submit 30+ production workload types
  • Batch Submission - Submit 1000s of jobs in seconds (100x faster!)
  • Custom Workloads - Upload and run your own Python code
  • Parallel Processing - Distribute work across multiple nodes
  • Job Monitoring - Track progress and get results
  • Credit Management - Check balance and purchase credits
  • Node Discovery - List available compute nodes
  • Auto-Retry - Built-in network resilience
  • Type Hints - Full TypeScript-style typing support

Supported Workload Types (30+)

ML Pipeline (8)

  • ml_preprocess, ml_label, ml_train, ml_inference
  • image_preprocess, image_label, image_train, image_inference

Compute & Simulation (5)

  • cpu_compute_benchmark, gpu_compute_benchmark
  • eigenvalue_decomposition, financial_forecast_simulation, agent_simulation

Data Processing (5)

  • data_cleaning, feature_extraction, csv_vectorization
  • data_augmentation, outlier_detection

AI Inference (7)

  • llm_inference, llm_inference_batch, image_classification
  • embedding_generation, sentiment_analysis
  • text_summarization, question_answering

Media Processing (5)

  • video_transcode, audio_to_text, video_object_detection
  • image_resize_batch, video_summarization

Web & HTTP (2)

  • http_microtask, custom_python

Custom Workloads

Upload and run your own Python code:

# Upload custom workload
workload = client.upload_custom_workload(
    name="my-data-processor",
    description="Process proprietary data format",
    zip_path="./my_workload.zip"
)

# Run it
job = client.submit_job(
    workload_type="custom_python",
    params={
        "custom_workload_id": workload["id"],
        "data_url": "https://..."
    }
)

Parallel Processing

Distribute work across multiple nodes:

workload = client.upload_custom_workload(
    name="batch-processor",
    zip_path="./batch_workload.zip",
    parallel_mode=True,
    files_per_shard=100  # 100 files per node
)

# Submit with 10,000 input files - runs on ~100 nodes in parallel
job = client.submit_job(
    workload_type="custom_python",
    params={"custom_workload_id": workload["id"]}
)

Documentation

Complete documentation, guides, and examples are available in the Fabric Dashboard.

Key Resources

  • Workflows Reference - All 100+ preset workflows
  • Custom Workloads - Build and deploy your own code
  • ML Pipeline Guide - End-to-end machine learning
  • API Reference - Complete endpoint documentation
  • Examples - Ready-to-run code samples

Support

Access the Fabric Dashboard for documentation, support, and account management.

License

Apache License 2.0

Copyright 2025 Carmel Labs, Inc.

Metadata

Release files for fabric-compute-sdk 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fabric-compute-sdk 1.1.0
File Size Uploaded Provenance
fabric_compute_sdk-1.1.0.tar.gz 24.1 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for fabric-compute-sdk 1.1.0
File Interpreter ABI Platform
fabric_compute_sdk-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 46.0 kB

Release files / fabric_compute_sdk-1.1.0.tar.gz

Download URL fabric_compute_sdk-1.1.0.tar.gz
Size 24.1 kB
Tags Source
SHA-256 checksum
How to use checksums
d1fd59a477f16ce65d6b980d9f9abbef0d279a7e846671ff2bc2bd0a921155f5
BLAKE2b-256 checksum
How to use checksums
2729cc3204259709e2039a71b51cbfca8bd58a31f75761a3ee3637c9f72fc2f8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.14

Release files / fabric_compute_sdk-1.1.0-py3-none-any.whl

Download URL fabric_compute_sdk-1.1.0-py3-none-any.whl
Size 21.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3d6941966387c27d610434204e7b68a7488149af9512f3f2df692f611f794cfc
BLAKE2b-256 checksum
How to use checksums
4763f318984dd4a561ad2dc9e3c03cbfb7e0f6fa7f47d3883da7334192f9fd01
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.14

Security for fabric-compute-sdk 1.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page