Skip to content

Code examples

Alex Dobson-Pleming edited this page May 23, 2025 · 1 revision

List all federated models

from api_sdk.client import APIClient
from api_sdk.models import FlModel

BASE_URL = "http://localhost:8000/api"
TOKEN    = "your_api_token_here"

client = APIClient(BASE_URL, TOKEN)
models: list[FlModel] = client.list_models()

for m in models:
    print(
        f"{m.id}: {m.name} | "
        f"accuracy={m.accuracy!r}, "
        f"generalisability={m.generalisability!r}, "
        f"privacy={m.privacy!r}"
    )

Fetch a single federated model by ID

from api_sdk.client import APIClient
from api_sdk.models import FlModel

client = APIClient(BASE_URL, TOKEN)
model: FlModel = client.get_model(model_id=1)

print("Fetched model:")
print(f"  ID:               {model.id}")
print(f"  Name:             {model.name}")
print(f"  Accuracy:         {model.accuracy}")
print(f"  Generalisability: {model.generalisability}")
print(f"  Privacy score:    {model.privacy}")

List all local models for a federated model

from api_sdk.client import APIClient
from api_sdk.models import LocalModel

client = APIClient(BASE_URL, TOKEN)
locals_: list[LocalModel] = client.list_local_models(fl_model_id=1)

for lm in locals_:
    print(
        f"{lm.id}: {lm.name} (fed={lm.fl_model}) | "
        f"privacy={lm.privacy!r}, "
        f"leakage={lm.leakage_chance!r}, "
        f"noise={lm.noise!r}"
    )

Create a new federated model

from api_sdk.client import APIClient
from api_sdk.models import FlModel

client = APIClient(BASE_URL, TOKEN)
new_fed = FlModel(
    name="MyAwesomeFL",
    accuracy=0.92,
    generalisability=0.88,
    privacy=0.65
)

created: FlModel = client.create_model(new_fed)
print(f"Created FL model {created.id} → {created.name}")

Create a federated model and immediately add a local model

from api_sdk.client import APIClient
from api_sdk.models import FlModel, LocalModel

client = APIClient(BASE_URL, TOKEN)

# 1. Create the federated model
fed = FlModel(
    name="JointModel",
    accuracy=0.80,
    generalisability=0.77,
    privacy=0.55
)
created_fed = client.create_model(fed)

# 2. Now create a local model tied to it
local = LocalModel(
    fl_model=created_fed.id,
    name="ClientA",
    privacy=0.60,
    leakage_chance=0.05,
    noise=0.02
)
created_local = client.create_local_model(local)

print(f"→ FL model {created_fed.id} has new local {created_local.id}")