コンテンツにスキップ

Federated Learning API: API 一覧

当ドキュメントでは、Federated Learning APIについて記述しています。

実行方式は一部APIを除き JSON-RPC v2.0 を利用します。

Pythonの実行環境では Federated Learning API をより簡単に扱うための API Client を使用することもできます。 詳しくは、 Federated Learning API一覧 (Python API Client) を参考にしてください。

JSON-RPC v2.0

リクエスト例:

JSON-RPC v2.0 を使用する場合は、各APIの仕様を参考に次のようなリクエストを作成してください。

  • method: str: 呼び出すAPIを指定します
  • params: dict: APIのパラメータを指定します。パラメータが不要な場合は、省略可能です。
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "fl.initialize_model_store",
  "params": {
    "model_store_ddc": "ddc:my_store"
  }
}

レスポンス例:

リクエストが成功した場合、次のようなレスポンスが返します。

  • result: 成功したリクエストのレスポンス
{"jsonrpc": "2.0", "result": {"id": "xxx", ...}, "id": 1}

リクエストがサーバ側で失敗した場合、次のようなレスポンスが返ります。

  • error: 失敗したリクエストのエラー情報
{"jsonrpc": "2.0", "error": {"code": -32601, "message": "Method not found"}, "id": "1"}

fl.get_server_version

Federated Learning API のサーバーバージョンを返します。

パラメータ

本メソッドにはパラメータはありません。

戻り値

Federated Learning API のサーバーバージョンを戻します。

実行例

リクエストデータ

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "fl.get_server_version",
  "params": {
  }
}

リクエスト実行

curl -H "Content-type: application/json" \
     -H "APIKey: a4e16fab-9077-4a13-a7d5-0f1fda63cd16" \
     -H "Secret: Do8feigevo8OhCi7OchoSan8zid7Fie3Aez4" \
     -X POST -d "@request.json" \
     https://localhost/api/v1/fl/jsonrpc

レスポンス

{
  "result": "0.0.2",
  "id": 1,
  "jsonrpc": "2.0"
}

fl.initialize_model_store

モデルストアを新規に作成します。

パラメータに指定したモデルストアが既に存在している場合は、本メソッドは何もしません。

パラメータ

  • model_store_ddc: string -- モデルストア名。

戻り値

モデルストアのデータセット情報が戻されます。 詳細は dataset_info を参照してください。

実行例

リクエストデータ

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "fl.initialize_model_store",
  "params": {
    "model_store_ddc": "ddc:my_store"
  }
}

リクエスト実行

curl -H "Content-type: application/json" \
     -H "APIKey: a4e16fab-9077-4a13-a7d5-0f1fda63cd16" \
     -H "Secret: Do8feigevo8OhCi7OchoSan8zid7Fie3Aez4" \
     -X POST -d "@request.json" \
     https://localhost/api/v1/fl/jsonrpc

レスポンス

{
  "result": {
    "id": 19,
    "session_id": null,
    "usename": "evwh_admin",
    "ddc_type": "table",
    "short_form": "my_store",
    "long_form": "my_store_1770065416.73731",
    "realname": "provenance.prov_07d769d7d240ba22d1d6c173f4b46add",
    "created_at": {
      "_type": "datetime",
      "val": "2026-02-02T20:50:16.737310+09:00"
    },
    "committed_at": {
      "_type": "datetime",
      "val": "2026-02-02T20:50:16.889086+09:00"
    },
    "prepared_activity_id": null
  },
  "id": 1,
  "jsonrpc": "2.0"
}

fl.exists_store

モデルストアの存在を確認します。

パラメータ

  • model_store_ddc: string -- モデルストア名。

戻り値

モデルストアが存在するか否かを戻します。

実行例

リクエストデータ

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "fl.exists_store",
  "params": {
    "model_store_ddc": "ddc:my_store"
  }
}

リクエスト実行

curl -H "Content-type: application/json" \
     -H "APIKey: a4e16fab-9077-4a13-a7d5-0f1fda63cd16" \
     -H "Secret: Do8feigevo8OhCi7OchoSan8zid7Fie3Aez4" \
     -X POST -d "@request.json" \
     https://localhost/api/v1/fl/jsonrpc

レスポンス

{
  "result": true,
  "id": 1,
  "jsonrpc": "2.0"
}

fl.delete_store

モデルストアを削除します。

パラメータ

  • model_store_ddc: string -- モデルストア名。
  • raise_if_no_exists: boolean -- 指定したモデルストアが存在しないときの処理を指定します。 本項目は省略可能です。 省略された場合は true となります。
    • true -- モデルストアが存在しなければエラーにします。
    • false -- モデルストアが存在しなければ何もしません。

戻り値

モデルストアが削除されたときは 1 が戻されます。 raise_if_no_exists に false を指定した場合は、モデルストアが存在しなければ 0 が戻されます。

実行例

リクエストデータ

{
    "id": 1,
    "jsonrpc": "2.0",
    "method": "fl.delete_store",
    "params": {
      "model_store_ddc": "ddc:my_store",
      "raise_if_no_exists": true
    }
}

リクエスト実行

curl -H "Content-type: application/json" \
     -H "APIKey: a4e16fab-9077-4a13-a7d5-0f1fda63cd16" \
     -H "Secret: Do8feigevo8OhCi7OchoSan8zid7Fie3Aez4" \
     -X POST -d "@request.json" \
     https://localhost/api/v1/fl/jsonrpc

レスポンス

{
  "result": 1,
  "id": 1,
  "jsonrpc": "2.0"
}

fl.put_model

モデルストアにモデルを登録します。

本メソッドは JSON-RPC ではなく、multipart/form-data 形式のデータを POST します。 詳細は実行例を参照してください。

パラメータ

  • model_store_ddc: string -- モデルストア名。
  • model_kind: string -- モデルの種類。 任意の文字列を指定できます。
  • model_description: string -- モデルの説明。 任意の文字列を指定できます。
  • model_meta: object -- モデルのメタ情報。 JSON Object 形式で任意の情報を指定できます。

戻り値

モデル情報が戻されます。 詳細は model_info を参照してください。

実行例

リクエストデータ

{
  "model_store_ddc": "ddc:my_store",
  "model_kind": "my_model",
  "model_description": "this is my sample model",
  "model_meta": {
    "version": "1",
    "created": "2025-07-01 01:02:03",
    "loss": 0.123
  }
}

リクエスト実行

curl -H "Content-type: multipart/form-data" \
     -H "APIKey: a4e16fab-9077-4a13-a7d5-0f1fda63cd16" \
     -H "Secret: Do8feigevo8OhCi7OchoSan8zid7Fie3Aez4" \
     -X POST \
     -F data="$(<request.json)" \
     -F file="@model.dat" \
     https://localhost/api/v1/fl/jsonrpc/upload/fl.put_model

レスポンス

{
  "end_datetime": {
    "_type": "datetime",
    "val": "2026-02-02T21:03:43.070207+09:00"
  },
  "hop_count": 0,
  "location": [
    0,
    0
  ],
  "model_description": "this is my sample model",
  "model_hash": "7c12772809c1c0c3deda6103b10fdfa0",
  "model_id": "1337adf6-a974-49a7-8541-d4a0e742f34c",
  "model_kind": "my_model",
  "model_meta": {
    "created": "2025-07-01 01:02:03",
    "loss": 0.123,
    "version": "1"
  },
  "model_size": 11,
  "model_state": 10,
  "round": 0,
  "start_datetime": {
    "_type": "datetime",
    "val": "2026-02-02T21:03:43.070203+09:00"
  },
  "tenant_id": "0a013239-2075-40f8-bfd4-78a025da2df9"
}

fl.put_aggregated_model

モデルストアに集約済みモデルを登録します。

本メソッドは JSON-RPC ではなく、multipart/form-data 形式のデータを POST します。 詳細は実行例を参照してください。

パラメータ

  • model_store_ddc: string -- モデルストア名。
  • model_kind: string -- モデルの種類。 任意の文字列を指定できます。
  • model_description: string -- モデルの説明。 任意の文字列を指定できます。
  • model_meta: object -- モデルのメタ情報。 JSON Object 形式で任意の情報を指定できます。

戻り値

モデル情報が戻されます。 詳細は model_info を参照してください。

実行例

リクエストデータ

{
  "model_store_ddc": "ddc:my_store",
  "model_kind": "my_model",
  "model_description": "this is my sample model",
  "model_meta": {
    "version": "1",
    "created": "2025-07-01 01:02:03",
    "loss": 0.123
  }
}

リクエスト実行

curl -H "Content-type: multipart/form-data" \
     -H "APIKey: a4e16fab-9077-4a13-a7d5-0f1fda63cd16" \
     -H "Secret: Do8feigevo8OhCi7OchoSan8zid7Fie3Aez4" \
     -X POST \
     -F data="$(<request.json)" \
     -F file="@model.dat" \
     https://localhost/api/v1/fl/jsonrpc/upload/fl.put_aggregated_model

レスポンス

{
  "end_datetime": {
    "_type": "datetime",
    "val": "2026-02-02T21:13:38.442172+09:00"
  },
  "hop_count": 0,
  "location": [
    0,
    0
  ],
  "model_description": "this is my sample model",
  "model_hash": "7c12772809c1c0c3deda6103b10fdfa0",
  "model_id": "97e8de6a-5794-41c8-af15-65090af98b7d",
  "model_kind": "my_model",
  "model_meta": {
    "created": "2025-07-01 01:02:03",
    "loss": 0.123,
    "version": "1"
  },
  "model_size": 11,
  "model_state": 30,
  "model_store_ddc": "my_store_1770066216.325904",
  "round": 0,
  "start_datetime": {
    "_type": "datetime",
    "val": "2026-02-02T21:13:38.442169+09:00"
  },
  "tenant_id": "0a013239-2075-40f8-bfd4-78a025da2df9"
}

fl.feedback

モデルストア内のモデルを上流のモデルストアにフィードバックします。

パラメータ

  • model_store_ddc: string -- モデルストア名。
  • model_id: string -- モデル ID。

戻り値

上流のモデルストア側に登録されたモデルのモデル情報が戻されます。

実行例

リクエストデータ

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "fl.feedback",
  "params": {
    "model_store_ddc": "ddc:my_store",
    "model_id": "1337adf6-a974-49a7-8541-d4a0e742f34c"
  }
}

リクエスト実行

curl -H "Content-type: application/json" \
     -H "APIKey: a4e16fab-9077-4a13-a7d5-0f1fda63cd16" \
     -H "Secret: Do8feigevo8OhCi7OchoSan8zid7Fie3Aez4" \
     -X POST -d "@request.json" \
     https://localhost/api/v1/fl/jsonrpc

レスポンス

{
  "result": {
    "start_datetime": {
      "_type": "datetime",
      "val": "2026-02-02T21:11:23.164858+09:00"
    },
    "end_datetime": {
      "_type": "datetime",
      "val": "2026-02-02T21:11:23.164861+09:00"
    },
    "location": [
      0,
      0
    ],
    "tenant_id": "0a013239-2075-40f8-bfd4-78a025da2df9",
    "model_id": "cea09504-9cdd-4eb1-a5a7-74bd43a12b32",
    "model_kind": "my_model",
    "model_description": "this is my sample model",
    "model_meta": {
      "version": "1",
      "created": "2025-07-01 01:02:03",
      "loss": 0.123
    },
    "model_state": 20,
    "model_hash": "7c12772809c1c0c3deda6103b10fdfa0",
    "model_size": 11,
    "round": 0,
    "hop_count": 0,
    "model_store_ddc": "my_store_1770066216.325904"
  },
  "id": 1,
  "jsonrpc": "2.0"
}

fl.load_model

モデル ID を指定して、モデルストアのレコードを取得します。

本メソッドは JSON-RPC ではなく、API のレスポンスとしてモデルデータそのものを返します。 詳細は実行例を参照してください。

パラメータ

  • model_store_ddc: string -- モデルストア名。
  • model_id: string -- モデル ID。

戻り値

モデルデータが戻されます。

実行例

リクエストデータ

{
  "model_store_ddc": "ddc:my_store",
  "model_id": "4da3acd8-4641-4687-a7e6-db4d7ae4ad5c"
}

リクエスト実行

curl -H "Content-type: application/json" \
     -H "APIKey: a4e16fab-9077-4a13-a7d5-0f1fda63cd16" \
     -H "Secret: Do8feigevo8OhCi7OchoSan8zid7Fie3Aez4" \
     -X POST -d "@request.json" \
     https://localhost/api/v1/fl/jsonrpc/download/fl.load_model \
> model.dat

レスポンス

レスポンスとしてモデルデータが戻されます。

fl.request_transfer

上流のモデルストアから最新の集約済みモデルを取得してモデルストアに格納します。

パラメータ

  • model_store_ddc: string -- モデルストア名。

戻り値

格納されたモデルのモデル情報が戻されます。

実行例

リクエストデータ

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "fl.request_transfer",
  "params": {
    "model_store_ddc": "ddc:my_store"
  }
}

リクエスト実行

curl -H "Content-type: application/json" \
     -H "APIKey: a4e16fab-9077-4a13-a7d5-0f1fda63cd16" \
     -H "Secret: Do8feigevo8OhCi7OchoSan8zid7Fie3Aez4" \
     -X POST -d "@request.json" \
     https://localhost/api/v1/fl/jsonrpc

レスポンス

  "result": {
    "start_datetime": {
      "_type": "datetime",
      "val": "2026-02-02T21:15:00.491964+09:00"
    },
    "end_datetime": {
      "_type": "datetime",
      "val": "2026-02-02T21:15:00.491967+09:00"
    },
    "location": [
      0,
      0
    ],
    "tenant_id": "0a013239-2075-40f8-bfd4-78a025da2df9",
    "model_id": "ba13004e-161b-4f10-96d5-eab4efe3f99f",
    "model_kind": "my_model",
    "model_description": "this is my sample model",
    "model_meta": {
      "version": "1",
      "created": "2025-07-01 01:02:03",
      "loss": 0.123
    },
    "model_state": 40,
    "model_hash": "7c12772809c1c0c3deda6103b10fdfa0",
    "model_size": 11,
    "round": 0,
    "hop_count": 0,
    "model_store_ddc": "my_store_1770066216.325904"
  },
  "id": 1,
  "jsonrpc": "2.0"
}

fl.get_model_info

指定したモデルストアの指定したモデルの情報を取得します。 モデル本体のデータは含まれません。

パラメータ

  • model_store_ddc: string -- モデルストア名。
  • model_id: string -- モデル ID。

戻り値

モデル情報が戻されます。 詳細は model_info を参照してください。

実行例

リクエストデータ

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "fl.get_model_info",
  "params": {
    "model_store_ddc": "ddc:my_store",
    "model_id": "1337adf6-a974-49a7-8541-d4a0e742f34c"
  }
}

リクエスト実行

curl -H "Content-type: application/json" \
     -H "APIKey: a4e16fab-9077-4a13-a7d5-0f1fda63cd16" \
     -H "Secret: Do8feigevo8OhCi7OchoSan8zid7Fie3Aez4" \
     -X POST -d "@request.json" \
     https://localhost/api/v1/fl/jsonrpc

レスポンス

{
  "result": {
    "start_datetime": {
      "_type": "datetime",
      "val": "2026-02-02T21:03:43.070203+09:00"
    },
    "end_datetime": {
      "_type": "datetime",
      "val": "2026-02-02T21:03:43.070207+09:00"
    },
    "location": [
      0,
      0
    ],
    "tenant_id": "0a013239-2075-40f8-bfd4-78a025da2df9",
    "model_id": "1337adf6-a974-49a7-8541-d4a0e742f34c",
    "model_kind": "my_model",
    "model_description": "this is my sample model",
    "model_meta": {
      "version": "1",
      "created": "2025-07-01 01:02:03",
      "loss": 0.123
    },
    "model_state": 10,
    "model_hash": "7c12772809c1c0c3deda6103b10fdfa0",
    "model_size": 11,
    "round": 0,
    "hop_count": 0
  },
  "id": 1,
  "jsonrpc": "2.0"
}

{ "end_datetime": { "_type": "datetime", "val": "2025-07-11T14:35:29.520628+09:00" }, "hop_count": 0, "location": [ 0.0, 0.0 ], "model_description": "this is my sample model", "model_hash": "e9a5b77d4b6794a47ad0ba1682185148", "model_id": "b9817ad7-3c69-4beb-ba45-633e139a59aa", "model_kind": "my_model", "model_meta": { "created": "2025-07-01 01:02:03", "loss": 0.123, "version": "1" }, "model_size": 17, "model_state": 10, "round": 0, "start_datetime": { "_type": "datetime", "val": "2025-07-11T14:35:29.520625+09:00" }, "tenant_id": "id-party" }

## fl.exists_model

指定したモデルストアの指定したモデルの存在を確認します。

### パラメータ

- model_store_ddc: `string` --
    モデルストア名。
- model_id: `string` --
    モデル ID。

### 戻り値

モデルが存在すれば true を返します。
存在しなければ false を返します。

### 実行例

#### リクエストデータ

```json
{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "fl.exists_model",
  "params": {
    "model_store_ddc": "my_store",
    "model_id": "b9817ad7-3c69-4beb-ba45-633e139a59aa"
  }
}

リクエスト実行

curl -H "Content-type: application/json" \
     -H "APIKey: a4e16fab-9077-4a13-a7d5-0f1fda63cd16" \
     -H "Secret: Do8feigevo8OhCi7OchoSan8zid7Fie3Aez4" \
     -X POST -d "@request.json" \
     https://localhost/api/v1/fl/jsonrpc

レスポンス

{
  "result": true,
  "id": 1,
  "jsonrpc": "2.0"
}

fl.delete_model

モデルストアからモデルを削除します。

パラメータ

  • model_store_ddc: string -- モデルストア名。
  • model_id: string -- モデル ID。

戻り値

1 が戻されます。

実行例

リクエストデータ

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "fl.delete_model",
  "params": {
    "model_store_ddc": "ddc:my_store",
    "model_id": "634e44c7-49b7-49ce-807c-cfd344fc3781"
  }
}

リクエスト実行

curl -H "Content-type: application/json" \
     -H "APIKey: a4e16fab-9077-4a13-a7d5-0f1fda63cd16" \
     -H "Secret: Do8feigevo8OhCi7OchoSan8zid7Fie3Aez4" \
     -X POST -d "@request.json" \
     https://localhost/api/v1/fl/jsonrpc

レスポンス

{
  "result": 1,
  "id": 1,
  "jsonrpc": "2.0"
}

fl.delete_all_model

指定したモデルストアの全てのモデルを削除します。

パラメータ

  • model_store_ddc: string -- モデルストア名。

戻り値

1 を返します。

実行例

リクエストデータ

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "fl.delete_all_model",
  "params": {
    "model_store_ddc": "ddc:my_store"
  }
}

リクエスト実行

curl -H "Content-type: application/json" \
     -H "APIKey: a4e16fab-9077-4a13-a7d5-0f1fda63cd16" \
     -H "Secret: Do8feigevo8OhCi7OchoSan8zid7Fie3Aez4" \
     -X POST -d "@request.json" \
     https://localhost/api/v1/fl/jsonrpc

レスポンス

{
  "result": 1,
  "id": 1,
  "jsonrpc": "2.0"
}

fl.get_models

モデルストアに登録されているモデルの情報を取得します。

パラメータ

  • model_store_ddc: string -- モデルストア名。
  • conds: condition -- 取得条件。
  • offset: integer -- 取得開始位置。
  • limit: integer -- 取得件数。
  • order: string -- 結果の並び替えの基準にするカラム名。

戻り値

モデル情報が配列として戻されます。 詳細は model_info を参照してください。

実行例

リクエストデータ

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "fl.get_models",
  "params": {
    "model_store_ddc": "my_store",
    "conds": {
      "=": ["model_state", 10]
    },
    "offset": 0,
    "limit": 1,
    "order": "-start_datetime"
  }
}

リクエスト実行

curl -H "Content-type: application/json" \
     -H "APIKey: a4e16fab-9077-4a13-a7d5-0f1fda63cd16" \
     -H "Secret: Do8feigevo8OhCi7OchoSan8zid7Fie3Aez4" \
     -X POST -d "@request.json" \
     https://localhost/api/v1/fl/jsonrpc

レスポンス

{
  "result": [
    {
      "start_datetime": {
        "_type": "datetime",
        "val": "2026-02-02T21:03:43.070203+09:00"
      },
      "end_datetime": {
        "_type": "datetime",
        "val": "2026-02-02T21:03:43.070207+09:00"
      },
      "location": "010100000000000000000000000000000000000000",
      "tenant_id": "0a013239-2075-40f8-bfd4-78a025da2df9",
      "model_id": "1337adf6-a974-49a7-8541-d4a0e742f34c",
      "model_kind": "my_model",
      "model_description": "this is my sample model",
      "model_meta": {
        "version": "1",
        "created": "2025-07-01 01:02:03",
        "loss": 0.123
      },
      "model_state": 10,
      "model_hash": "7c12772809c1c0c3deda6103b10fdfa0",
      "model_size": 11,
      "round": 0,
      "hop_count": 0
    }
  ],
  "id": 1,
  "jsonrpc": "2.0"
}

fl.get_model_info_latest

指定したモデルストアの最新のモデル情報を取得します。

パラメータ

  • model_store_ddc: string -- モデルストア名。

戻り値

モデル情報が戻されます。 詳細は model_info を参照してください。

実行例

リクエストデータ

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "fl.get_model_info_latest",
  "params": {
    "model_store_ddc": "ddc:my_store"
  }
}

リクエスト実行

curl -H "Content-type: application/json" \
     -H "APIKey: a4e16fab-9077-4a13-a7d5-0f1fda63cd16" \
     -H "Secret: Do8feigevo8OhCi7OchoSan8zid7Fie3Aez4" \
     -X POST -d "@request.json" \
     https://localhost/api/v1/fl/jsonrpc

レスポンス

{
  "result": {
    "start_datetime": {
      "_type": "datetime",
      "val": "2026-02-02T21:15:00.491964+09:00"
    },
    "end_datetime": {
      "_type": "datetime",
      "val": "2026-02-02T21:15:00.491967+09:00"
    },
    "location": [
      0,
      0
    ],
    "tenant_id": "0a013239-2075-40f8-bfd4-78a025da2df9",
    "model_id": "ba13004e-161b-4f10-96d5-eab4efe3f99f",
    "model_kind": "my_model",
    "model_description": "this is my sample model",
    "model_meta": {
      "version": "1",
      "created": "2025-07-01 01:02:03",
      "loss": 0.123
    },
    "model_state": 40,
    "model_hash": "7c12772809c1c0c3deda6103b10fdfa0",
    "model_size": 11,
    "round": 0,
    "hop_count": 0
  },
  "id": 1,
  "jsonrpc": "2.0"
}

fl.get_latest_feedbacked_models

指定したモデルストアから最新の feedbacked モデル情報の一覧を取得します。

パラメータ

  • model_store_ddc: string -- モデルストア名。
  • round: int -- 対象のラウンド。現在は使用されません。任意の整数を指定してください。

戻り値

モデル情報が配列として戻されます。 詳細は model_info を参照してください。

実行例

リクエストデータ

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "fl.get_latest_feedbacked_models",
  "params": {
    "model_store_ddc": "ddc:my_store",
    "round": 0
  }
}

リクエスト実行

curl -H "Content-type: application/json" \
     -H "APIKey: a4e16fab-9077-4a13-a7d5-0f1fda63cd16" \
     -H "Secret: Do8feigevo8OhCi7OchoSan8zid7Fie3Aez4" \
     -X POST -d "@request.json" \
     https://localhost/api/v1/fl/jsonrpc

レスポンス

{
  "result": [
    {
      "start_datetime": {
        "_type": "datetime",
        "val": "2026-02-02T21:11:23.164858+09:00"
      },
      "end_datetime": {
        "_type": "datetime",
        "val": "2026-02-02T21:11:23.164861+09:00"
      },
      "location": [
        0,
        0
      ],
      "tenant_id": "0a013239-2075-40f8-bfd4-78a025da2df9",
      "model_id": "cea09504-9cdd-4eb1-a5a7-74bd43a12b32",
      "model_kind": "my_model",
      "model_description": "this is my sample model",
      "model_meta": {
        "version": "1",
        "created": "2025-07-01 01:02:03",
        "loss": 0.123
      },
      "model_state": 20,
      "model_hash": "7c12772809c1c0c3deda6103b10fdfa0",
      "model_size": 11,
      "round": 0,
      "hop_count": 0
    }
  ],
  "id": 1,
  "jsonrpc": "2.0"
}

fl.get_latest_aggregated_model

指定したモデルストアから最新の aggregated モデル情報を取得します。

パラメータ

  • model_store_ddc: string -- モデルストア名。

戻り値

モデル情報が戻されます。 詳細は model_info を参照してください。

実行例

リクエストデータ

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "fl.get_latest_aggregated_model",
  "params": {
    "model_store_ddc": "ddc:my_store"
  }
}

リクエスト実行

curl -H "Content-type: application/json" \
     -H "APIKey: a4e16fab-9077-4a13-a7d5-0f1fda63cd16" \
     -H "Secret: Do8feigevo8OhCi7OchoSan8zid7Fie3Aez4" \
     -X POST -d "@request.json" \
     https://localhost/api/v1/fl/jsonrpc

レスポンス

{
  "result": {
    "start_datetime": {
      "_type": "datetime",
      "val": "2026-02-02T21:13:38.442169+09:00"
    },
    "end_datetime": {
      "_type": "datetime",
      "val": "2026-02-02T21:13:38.442172+09:00"
    },
    "location": [
      0,
      0
    ],
    "tenant_id": "0a013239-2075-40f8-bfd4-78a025da2df9",
    "model_id": "97e8de6a-5794-41c8-af15-65090af98b7d",
    "model_kind": "my_model",
    "model_description": "this is my sample model",
    "model_meta": {
      "version": "1",
      "created": "2025-07-01 01:02:03",
      "loss": 0.123
    },
    "model_state": 30,
    "model_hash": "7c12772809c1c0c3deda6103b10fdfa0",
    "model_size": 11,
    "round": 0,
    "hop_count": 0
  },
  "id": 1,
  "jsonrpc": "2.0"
}

fl.get_latest_transferred_model

指定したモデルストアから最新の transferred モデル情報を取得します。

パラメータ

  • model_store_ddc: string -- モデルストア名。

戻り値

モデル情報が戻されます。 詳細は model_info を参照してください。

実行例

リクエストデータ

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "fl.get_latest_transferred_model",
  "params": {
    "model_store_ddc": "ddc:my_store"
  }
}

リクエスト実行

curl -H "Content-type: application/json" \
     -H "APIKey: a4e16fab-9077-4a13-a7d5-0f1fda63cd16" \
     -H "Secret: Do8feigevo8OhCi7OchoSan8zid7Fie3Aez4" \
     -X POST -d "@request.json" \
     https://localhost/api/v1/fl/jsonrpc

レスポンス

{
  "result": {
    "start_datetime": {
      "_type": "datetime",
      "val": "2026-02-02T21:15:00.491964+09:00"
    },
    "end_datetime": {
      "_type": "datetime",
      "val": "2026-02-02T21:15:00.491967+09:00"
    },
    "location": [
      0,
      0
    ],
    "tenant_id": "0a013239-2075-40f8-bfd4-78a025da2df9",
    "model_id": "ba13004e-161b-4f10-96d5-eab4efe3f99f",
    "model_kind": "my_model",
    "model_description": "this is my sample model",
    "model_meta": {
      "version": "1",
      "created": "2025-07-01 01:02:03",
      "loss": 0.123
    },
    "model_state": 40,
    "model_hash": "7c12772809c1c0c3deda6103b10fdfa0",
    "model_size": 11,
    "round": 0,
    "hop_count": 0
  },
  "id": 1,
  "jsonrpc": "2.0"
}

fl.get_parties

上流に登録されているパーティ情報を取得します。

パラメータ

パラメータはありません。

戻り値

パーティ情報の一覧を返します。

実行例

リクエストデータ

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "fl.get_parties",
  "params": {
  }
}

リクエスト実行

curl -H "Content-type: application/json" \
     -H "APIKey: a4e16fab-9077-4a13-a7d5-0f1fda63cd16" \
     -H "Secret: Do8feigevo8OhCi7OchoSan8zid7Fie3Aez4" \
     -X POST -d "@request.json" \
     https://localhost/api/v1/fl/jsonrpc

レスポンス

{
  "result": [
    {
      "id": "88e6e82d-9cec-4749-8759-b610315d2ca5",
      "tenant_id": "0a013239-2075-40f8-bfd4-78a025da2df9",
      "tenant_name": "",
      "description": "sample party",
      "hop_count": 1,
      "created_at": {
        "_type": "datetime",
        "val": "2026-02-02T21:47:27.818204+09:00"
      },
      "updated_at": {
        "_type": "datetime",
        "val": "2026-02-02T21:47:27.818204+09:00"
      }
    }
  ],
  "id": 1,
  "jsonrpc": "2.0"
}

fl.create_party

上流にパーティを登録します。 呼び出し元となったEdgeは、構成情報から TENANT_IDTENANT_NAME を取得し、アップストリームへ転送します。

パラメータ

  • description: string -- パーティに対する任意の説明

戻り値

パーティ情報を返します。

実行例

リクエストデータ

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "fl.create_party",
  "params": {
    "description": "sample party"
  }
}

リクエスト実行

curl -H "Content-type: application/json" \
     -H "APIKey: a4e16fab-9077-4a13-a7d5-0f1fda63cd16" \
     -H "Secret: Do8feigevo8OhCi7OchoSan8zid7Fie3Aez4" \
     -X POST -d "@request.json" \
     https://localhost/api/v1/fl/jsonrpc

レスポンス

{
  "result": {
    "id": "88e6e82d-9cec-4749-8759-b610315d2ca5",
    "tenant_id": "0a013239-2075-40f8-bfd4-78a025da2df9",
    "tenant_name": "",
    "description": "sample party",
    "hop_count": 1,
    "created_at": {
      "_type": "datetime",
      "val": "2026-02-02T21:47:27.818204+09:00"
    },
    "updated_at": {
      "_type": "datetime",
      "val": "2026-02-02T21:47:27.818204+09:00"
    }
  },
  "id": 1,
  "jsonrpc": "2.0"
}

fl.delete_party

上流からパーティを削除します。

パラメータ

  • id: string -- パーティを識別するid

戻り値

削除された数を返します。

実行例

リクエストデータ

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "fl.delete_party",
  "params": {
    "id": "88e6e82d-9cec-4749-8759-b610315d2ca5"
  }
}

リクエスト実行

curl -H "Content-type: application/json" \
     -H "APIKey: a4e16fab-9077-4a13-a7d5-0f1fda63cd16" \
     -H "Secret: Do8feigevo8OhCi7OchoSan8zid7Fie3Aez4" \
     -X POST -d "@request.json" \
     https://localhost/api/v1/fl/jsonrpc

レスポンス

{
  "result": 1,
  "id": 1,
  "jsonrpc": "2.0"
}