1.0.2 • Published 6 months ago

opengradient-solidml v1.0.2

Weekly downloads
-
License
MIT
Repository
-
Last release
6 months ago

OpenGradient SolidML Library

SolidML library is a set of Solidity interfaces and precompiles that allow smart contract developers to use OpenGradient native inference capabilities directly from smart contracts. Developers can run inference AI and ML models through a simple function call executed atomically within the same transaction.

Benefits

The main benefits of running inference through SolidML include:

  • Atomic execution: You can atomically execute inferences as part of the EVM transaction that triggers it; this makes it easier to ensure state consistency
  • Simple interface: You can run inferences through a simple function call without the need for callback functions and handlers
  • Composability: through the use of smart contract transactions, you can chain together multiple models using arbitrarily complex logic - supporting advanced real-world use cases
  • Native verification: The OpenGradient network protocol natively validates inference validity proofs (e.g., ZKML and TEE). This means that smart contracts can trust the results without explicit verification.

Installation

You can install SolidML library by running:

npm i opengradient-solidml

SolidML Example

pragma solidity ^0.8.10;

import "opengradient-solidml/src/OGInference.sol";

contract Test {
    ModelInput memory modelInput = ModelInput(
        new TensorLib.MultiDimensionalNumberTensor[](1),
        new TensorLib.StringTensor[](0));

    TensorLib.Number[] memory numbers = new TensorLib.Number[](2);
    numbers[0] = TensorLib.Number(7286679744720459, 17); // 0.07286679744720459
    numbers[1] = TensorLib.Number(4486280083656311, 16); // 0.4486280083656311
    modelInput.numbers[0] = TensorLib.numberTensor1D("input", numbers);

    ModelOutput memory output = OG_INFERENCE_CONTRACT.runModelInference(
        ModelInferenceRequest(
            ModelInferenceMode.ZK, "QmbbzDwqSxZSgkz1EbsNHp2mb67rYeUYHYWJ4wECE24S7A", 
            modelInput));
}

Read SolidML library documentation and how-to guides here.

1.0.2

6 months ago