@coherentglobal/spark-execute-sdk
TypeScript icon, indicating that this package has built-in type declarations

0.8.3 • Public • Published

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

Readme

Keywords

none

Package Sidebar

Install

npm i @coherentglobal/spark-execute-sdk

Weekly Downloads

11

Version

0.8.3

License

ISC

Unpacked Size

716 kB

Total Files

48

Last publish

Collaborators

  • mnaustria
  • shinmarq
  • vu.nguyen.coherent