0.8.3 • Published 11 months ago

@coherentglobal/spark-execute-sdk v0.8.3

Weekly downloads
-
License
ISC
Repository
-
Last release
11 months ago

Spark Execute SDK

About the Project

A Software Development Kit (SDK) that can run either Spark model web-assembly or Calling an HTTPS endpoint.

How to's

Installation

npm install @coherentglobal/spark-execute-sdk

or

yarn add @coherentglobal/spark-execute-sdk

Usage

Configuration

Both Online and Offline Config is enabled

const config = {
  parallel: 1, // parallel (threads) to be used to run the model in parallel
  sparkEndpoint: {
    url: "https://excel.dev.coherent.global", // Spark Endpoint to be used to run model using Spark SaaS
    tenant: "tenant", // Spark tenant name
    authType: public | syntheticKey | bearerToken, // public endpoint don't require token / synthetic key
    // If syntheticKey
    syntheticKey: "apiKey" or generateSyntheticKey(), // value or a func - func call every time making API call, user will do cache
    // If bearerToken
    bearerToken: generateToken(), //a func - func call every time making API call, user will do cache
  },
  nodegenModels: [
    {
      versionId: "uuid",
      type: "base64",
      binary: Blob | Base64 | BinaryUnit | Func(versionId), // a binary zipped file or a function the will get the zipped file
      preventCleanup: true | false, // prevent model from being unload (default: false)
      instance: int, // number of model instance (default: 1)
      metadata: {
        // Spark Model Metadata
      }
    }
  ]
}

Online Only Configuration

const config = {
  sparkEndpoint: {
    url: "https://excel.dev.coherent.global", // Spark Endpoint to be used to run model using Spark SaaS
    tenant: "tenant", // Spark tenant name
    authType: public | syntheticKey | bearerToken, // public endpoint don't require token / synthetic key
    // If syntheticKey
    syntheticKey: "apiKey" || generateSyntheticKey(), // value or a func - func call every time making API call, user will do cache
    // If bearerToken
    bearerToken: "token" || generateToken(), //a func - func call every time making API call, user will do cache
  },
  nodegenModels: [],
};

Offline Only Configuration

const config = {
  nodegenModels: [
    {
      versionId: "uuid",
      type: "base64",
      binary: Blob | Base64 | BinaryUnit | Func(versionId), // a binary zipped file or a function the will get the zipped file
      preventCleanup: true | false, // prevent model from being unload (default: false)
      replica: int, // number of model instance (default: 1)
      metadata: {
        // Spark Model Metadata
      },
    },
  ],
};

Methods

Initialize Spark Execute SDK

Instantiate the Model Class.

const spark = new Spark(config);

Execute

(async) execute(input)

Perform the calculation. The sdk will use the request_meta.version_uuid of input argument to locate the model

const response = await spark.execute(input).catch((err) => {
  // Do something here
});

or

const response = await spark.execute(input, version_id).catch((err) => {
  // Do something here
});

executeWithCancellationToken(input)

Perform the calculation with cancellationToken. The sdk will use the request_meta.version_uuid of input argument to locate the model

const execute = spark.executeWithCancellationToken(input)

// Cancel the execution (best effort)
execute.cancellationToken.cancel()

execute.response.then((result) => {
  // Do something here
})
.catch((err) => {
  // Do something here
  // If error is instance of Spark.WasmRunnerErrors.ExecuteCancelled, meaning the request has been cancelled
});

or

const execute = spark.executeWithCancellationToken(input)

// Cancel the execution (best effort)
execute.cancellationToken.cancel()

execute.response.then((result) => {
  // Do something here
})
.catch((err) => {
  // Do something here
  // If error is instance of Spark.WasmRunnerErrors.ExecuteCancelled, meaning the request has been cancelled
});

Note: The second parameter (version_id) is optional if version_id is already included on request_meta

Sample Input

{
  "request_data": {
    "inputs": {
      "Input": 1
    }
  },
  "request_meta": {
    "version_id": "<model id>",
    "transaction_date": "2022-09-19T04:17:17.142Z",
    "call_purpose": "Spark - API Tester",
    "source_system": "",
    "correlation_id": "",
    "requested_output": ""
  }
}

DEMO

DEMO LINK- https://codesandbox.io/s/autumn-hill-1342ln?file=/index.html

0.8.3

11 months ago

0.8.2

11 months ago

0.8.1

2 years ago

0.8.0

2 years ago

0.7.3

2 years ago

0.6.0

2 years ago

0.4.19

2 years ago

0.4.17

2 years ago

0.4.18

2 years ago

0.4.16

2 years ago

0.4.15

2 years ago

0.4.14

2 years ago

0.4.13

2 years ago

0.4.9

3 years ago

0.3.9

3 years ago

0.3.16

3 years ago

0.3.15

3 years ago

0.3.14

3 years ago

0.3.13

3 years ago

0.3.12

3 years ago

0.3.11

3 years ago

0.3.10

3 years ago

0.4.10

3 years ago

0.4.11

3 years ago

0.4.12

3 years ago

0.4.5

3 years ago

0.4.4

3 years ago

0.4.7

3 years ago

0.3.8

3 years ago

0.4.1

3 years ago

0.4.0

3 years ago

0.4.3

3 years ago

0.4.2

3 years ago

0.3.7

3 years ago

0.3.6

3 years ago

0.3.5

3 years ago

0.3.4

3 years ago

0.3.3

3 years ago

0.3.2

3 years ago

0.3.1

3 years ago

0.3.0

3 years ago

0.2.0

3 years ago

0.1.0

3 years ago

1.0.0

3 years ago