Distributed AI

Good to know: All Distributed AI interfaces need to use token as the request header.

Uploading Dataset

Upload the dataset to obtain a file path as a parameter of other APIs.

POST https://www.phoenix.global/sdk/computation/deAI/uploadFile

Upload a file to server

Headers

Request Body

{
    "code":200,
    "msg":"111@gmail.com/2023-10-24T12:07:12Zy_train.csv"
}

The usage of curl and golang sdk is as follows:

curl --location 'https://www.phoenix.global/sdk/computation/deAI/uploadFile' \
--header 'token: eyJhbGciOiJIUzIxxxxxxxxxxxxx' \
--form 'file=@"your local file path"'

Evaluating CCD Cost for CNN

POST https://www.phoenix.global/sdk/computation/deAI/queryGuarantee

Evaluate the number of ccds required for training CNN model

Headers

Request Body

{
    "code": 200,
    "msg": "success",
    "ccd_cost": 27870365208168000
}

The usage of curl and golang sdk is as follows:

curl --location 'https://www.phoenix.global/sdk/computation/deAI/queryGuarantee' \
--header 'token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJFbWFpbCI6IjExMUBnbWFpbC5jb20iLCJleHAiOjE2OTgxNTg1ODl9.lZPScQLs1ScGS6KPqUp1lg5XdOqnGLQyOsO3wMugps8' \
--header 'Content-Type: application/json' \
--data-raw '{
  "epoch": 2,
  "jobName": "CNN Classification Job",
  "model": "CNN",
  "scale_ratio": 255,
  "category": 3,
  "channel": 1,
  "train_shard": 0.8,
  "x_train": "111@gmail.com/2023-10-24T13:42:46Zx_train.zip",
  "y_train": "111@gmail.com/2023-10-24T13:22:36Zy_train.csv"
}'

Evaluating CCD Cost for LSTM

POST https://www.phoenix.global/sdk/computation/deAI/queryGuarantee

Evaluate the number of ccds required for training LSTM model

Headers

Request Body

{
    "code": 200,
    "msg": "success",
    "ccd_cost": 27870365208168000
}

The usage of curl and golang sdk is as follows:

curl --location 'https://www.phoenix.global/sdk/computation/deAI/queryGuarantee' \
--header 'token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJFbWFpbCI6IjExMUBnbWFpbC5jb20iLCJleHAiOjE2OTgxNTg1ODl9.lZPScQLs1ScGS6KPqUp1lg5XdOqnGLQyOsO3wMugps8' \
--header 'Content-Type: application/json' \
--data-raw '{
  "epoch": 2,
  "jobName": "LSTM Job",
  "model": "LSTM",
  "train_shard": 0.8,
  "x_train": "111@gmail.com/2023-10-24T13:53:15Zjena_climate.csv",
  "input_width":24,
  "label_width":24,
  "shift":24,
  "sequence_stride":1,
  "sampling_rate":1
}'

Creating a CNN Job

POST https://www.phoenix.global/sdk/computation/deAI/createJob

Creating a CNN job

Headers

Request Body

{
    "code":200,
    "msg":"Success",
    "data":"59576164105114941297104078936238635731163357384303362249410479244945241708329"
}

The usage of curl and golang sdk is as follows:

curl --location 'https://www.phoenix.global/sdk/computation/deAI/createJob' \
--header 'token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJFbWFpbCI6IjExMUBnbWFpbC5jb20iLCJleHAiOjE2OTgxNTg1ODl9.lZPScQLs1ScGS6KPqUp1lg5XdOqnGLQyOsO3wMugps8' \
--header 'Content-Type: application/json' \
--data-raw '{
    "jobName": "CNN Classification Job",
    "computation": "Distributed AI",
    "batchSize": 64
}'

Creating a LSTM Job

POST https://www.phoenix.global/sdk/computation/deAI/createJob

Creating a LSTM Job

Headers

Request Body

{
    "code":200,
    "msg":"Success",
    "data":"59576164105114941297104078936238635731163357384303362249410479244945241708329"
}

The usage of curl and golang sdk is as follows:

curl --location 'https://www.phoenix.global/sdk/computation/deAI/createJob' \
--header 'token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJFbWFpbCI6IjExMUBnbWFpbC5jb20iLCJleHAiOjE2OTgxNTg1ODl9.lZPScQLs1ScGS6KPqUp1lg5XdOqnGLQyOsO3wMugps8' \
--header 'Content-Type: application/json' \
--data-raw '{
    "jobName": "LSTM Job",
    "computation": "Distributed AI",
    "batchSize": 64
}'

Evaluating CCD Cost for Inference

POST https://www.phoenix.global/sdk/computation/deAI/inferenceCost

Evaluating ccd cost for inference

Headers

Request Body

{
    "code": 200,
    "msg": "success",
    "ccd_cost": 13271602480080000
}

The usage of curl and golang sdk is as follows:

curl --location 'https://www.phoenix.global/sdk/computation/deAI/inferenceCost' \
--header 'token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJFbWFpbCI6IjIyMkBnbWFpbC5jb20iLCJleHAiOjE3MDAwMzQ2NTN9.0NhuhoPX-AuIxjRiF0V4N-idYr_3tAjTUEafOD67DS0' \
--header 'Content-Type: application/json' \
--data-raw '{
  "data_path": "222@gmail.com/2023-11-15T06:00:19Zx_train.zip",
  "jobID": "86336785146289395195200824626469818031842412882953927198307248471561534896799"
}'

Inference

POST https://www.phoenix.global/sdk/computation/deAI/inference

Inference

Headers

Request Body

{
    "code": 200,
    "msg": "Inference success",
    "infer_id": 13
}

The usage of curl and golang sdk is as follows:

curl --location 'https://www.phoenix.global/sdk/computation/deAI/inference' \
--header 'token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJFbWFpbCI6IjIyMkBnbWFpbC5jb20iLCJleHAiOjE3MDAwMzQ2NTN9.0NhuhoPX-AuIxjRiF0V4N-idYr_3tAjTUEafOD67DS0' \
--header 'Content-Type: application/json' \
--data '{
  "jobID": "86336785146289395195200824626469818031842412882953927198307248471561534896799"
}'

Querying Inference Result

POST https://www.phoenix.global/sdk/computation/deAI/queryInfer

Querying a inference result by id

Headers

Request Body

{
    "code": 200,
    "msg": "success",
    "data": {
        "tx_hash": "0x76233b90445f34e6c0c19d056b3d04ec06c2f36844c6b777c74493a9b3ea3124",
        "result": "https://phoenix.global/ai/resultFiles/predicted_222@gmail.com_5CNN_mnist.csv",
        "submitTime": 1700037265,
        "ccd_cost": "0.01327160248"
    }
}

The usage of curl and golang sdk is as follows:

curl --location 'https://www.phoenix.global/sdk/computation/deAI/queryInfer' \
--header 'token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJFbWFpbCI6IjIyMkBnbWFpbC5jb20iLCJleHAiOjE3MDAwMzkzMjV9.gKHqa2-Q7zxFcEle0bzv-o8x2__1949TWDclZrAK51Q' \
--header 'Content-Type: application/json' \
--data '{
  "id": 21
}'

Querying Inference Result List

POST https://www.phoenix.global/sdk/computation/deAI/queryInferList

Querying inference result list

Headers

Request Body

{
    "code": 200,
    "msg": "success",
    "size": 10,
    "page": 1,
    "totalPages": 1,
    "totalCount": 2,
    "data": [
        {
            "tx_hash": "0x76233b90445f34e6c0c19d056b3d04ec06c2f36844c6b777c74493a9b3ea3124",
            "result": "https://phoenix.global/ai/resultFiles/predicted_222@gmail.com_5CNN_mnist.csv",
            "submitTime": 1700037265,
            "ccd_cost": "0.01327160248"
        },
        {
            "tx_hash": "0x7ff8ee03deb93d608503bb59c183ecc9ed0e16be9599289af0938b4c20bdd91c",
            "result": "https://phoenix.global/ai/resultFiles/predicted_222@gmail.com_4CNN_mnist.csv",
            "submitTime": 1700037108,
            "ccd_cost": "0.01327160248"
        }
    ]
}

The usage of curl and golang sdk is as follows:

curl --location 'https://www.phoenix.global/sdk/computation/deAI/queryInferList' \
--header 'token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJFbWFpbCI6IjIyMkBnbWFpbC5jb20iLCJleHAiOjE3MDAwNDM4ODN9.i68m1VKJ894NxAd83HXGLUkvrobmAJ3yWo3aJPs4YT4' \
--header 'Content-Type: application/json' \
--data '{
  "jobID": "86336785146289395195200824626469818031842412882953927198307248471561534896799",
  "pageNo": 1,
  "pageSize": 10
}'