0.0.6 • Published 2 days ago

instill-sdk v0.0.6

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
2 days ago

Overview

Typescript SDK for Instill AI products

Unix Build Status NPM License NPM Version NPM Downloads

!IMPORTANT
This SDK tool is under heavy development!!
Currently there has yet to be a stable version release, please feel free to open any issue regarding this SDK in our community repo

Setup

Requirements

  • Node 16+
  • npm 7+ | pnpm 6+ | yarn 1+

installation

npm i instill-sdk
yarn add instill-sdk
pnpm add instill-sdk

Usage:

// node.js
const InstillClient = require("instill-sdk").default;

// next.js
import InstillClient from "instill-sdk";

config

baseUrl: string
appVersion: string
apiToken: string

Example app templetes

local

import { useEffect, useState } from "react";
import InstillClient, {
  Nullable,
  User,
} from "instill-sdk";

export default function TypescriptSdkDemo() {
  const [user, setUser] = useState<User[]>([]);

  const client = new InstillClient(
    "http://localhost:8080",
    "v1beta",
    "<your_api_token>" // get console API token from `http://localhost:3000/settings`
  );

  useEffect(() => {
    client.Auth.getUserQuery()
      .then((data: any) => {
        console.log("data", data);
        setUser(data);
      })
      .catch((error: any) => {
        console.log("error", error);
      });
  }, []);

  return (
    <>
      <h1>User Data</h1>
      <pre style={{ backgroundColor: "white" }}>
        {JSON.stringify(user, null, 4)}
      </pre>
    </>
  );
}

With Token

import { useEffect, useState } from "react";
import InstillClient, {
  Nullable,
  Pipeline,
  User,
} from "instill-sdk";

export default function TypescriptSdkDemo() {
  const [pipelines, setPipelines] = useState<Pipeline[]>([]);
  const [user, setUser] = useState<User[]>([]);

  const client = new InstillClient(
    "https://api.instill.tech",
    "v1beta",
    "<your_api_token>" // console API token
  );

  useEffect(() => {
    client.Auth.getUserQuery()
      .then((data: any) => {
        console.log("data", data);
        setUser(data);
      })
      .catch((error: any) => {
        console.log("error", error);
      });

    client.Pipeline.listPipelinesQuery({
      pageSize: null,
      nextPageToken: null,
    })
      .then((data: any) => {
        console.log("data", data);
        setPipelines(data);
      })
      .catch((error: any) => {
        console.log("error", error);
      });
  }, []);

  return (
    <>
      <h1>User Data</h1>
      <pre style={{ backgroundColor: "white" }}>
        {JSON.stringify(user, null, 4)}
      </pre>

      <h1>Pipelines List</h1>
      <pre style={{ backgroundColor: "white" }}>
        {JSON.stringify(pipelines, null, 4)}
      </pre>
    </>
  );
}

Next APP

Node APP

API Reference

Pipelines

create Pipeline

userName : check your userName: https://console.instill.tech/settings

client.PipelineClient.createUserPipelineMutation("<userName>",
  {
    "id": "overseas-blue-lobster",
    "recipe": {
      "version": "v1beta",
      "components": [
        {
          "id": "start",
          "resource_name": "",
          "configuration": {
            "metadata": {
              "text": {
                "instillFormat": "string",
                "type": "string",
                "title": "text"
              }
            }
          },
          "definition_name": "operator-definitions/op-start"
        },
        {
          "id": "end",
          "resource_name": "",
          "configuration": {
            "metadata": {
              "output": {
                "title": "output"
              }
            },
            "input": {
              "output": "{ai_1.output.texts}"
            }
          },
          "definition_name": "operator-definitions/op-end"
        },
        {
          "id": "ai_1",
          "resource_name": "users/namananand-instill-ai/connector-resources/ai2",
          "configuration": {
            "task": "TASK_TEXT_GENERATION",
            "input": {
              "prompt": "{start.text}",
              "model": "gpt-3.5-turbo"
            }
          },
          "definition_name": "connector-definitions/ai-openai"
        }
      ]
    }
  }
).then((response) => {
  console.log(response.data)
})
.catch(error => {
  console.log(error)
})
functionparams
listPipelinesQuerypageSize, nextPageToken, enablePagination
listUserPipelinesQuerypageSize, nextPageToken, userName, enablePagination
getUserPipelineQuerypipelineName
ListUserPipelineReleasesQueryuserName, pipelineName, pageSize, nextPageToken
getUserPipelineReleaseQuerypipelineReleaseName
watchUserPipelineReleaseQuerypipelineReleaseName
createUserPipelineMutationuserName, payload
updateUserPipelineMutationpayload
deleteUserPipelineMutationpipelineName
renameUserPipelineMutationpayload
createUserPipelineReleaseMutationpipelineName, payload
updateUserPipelineReleaseMutationpipelineReleaseName, payload
deleteUserPipelineReleaseMutationpipelineReleaseName
triggerUserPipelineActionpipelineName, payload, returnTraces, shareCode
triggerAsyncUserPipelineActionpipelineName, payload, returnTraces
setDefaultUserPipelineReleaseMutationpipelineReleaseName
restoreUserPipelineReleaseMutationpipelineReleaseName
triggerUserPipelineReleaseActionpipelineReleaseName, payload, returnTraces
triggerAsyncUserPipelineReleaseActionpipelineReleaseName, payload, returnTraces

Connector

Create new connector

userName : check your userName: https://console.instill.tech/settings

query.ConnectorClient.createUserConnectorMutation("<userName>",
  {
    "id": "open-ai-model-1",
    "connector_definition_name": "connector-definitions/ai-openai",
    "configuration": {
      "organization": "my-org",
      "api_key": "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"
    }
  }
).then((response) => {
  console.log(response.data)
})
.catch(error => {
  console.log(error)
})
functionparams
listConnectorsQuerypageSize, nextPageToken, filter
listUserConnectorsQueryuserName, pageSize, nextPageToken, filter
listConnectorDefinitionsQueryconnectorDefinitionName
getConnectorDefinitionQueryconnectorDefinitionName
getUserConnectorQueryconnectorName
watchUserConnectorconnectorName
createUserConnectorMutationentityName, payload
deleteUserConnectorMutationconnectorName
updateUserConnectorMutationpayload
renameUserConnectorpayload
testUserConnectorConnectionActionconnectorName
connectUserConnectorActionconnectorName
disconnectUserConnectorActionconnectorName

Metric

functionparams
listPipelineTriggerRecordsQuerypageSize, nextPageToken, filter
listTriggeredPipelineQuerypageSize, nextPageToken, filter
listTriggeredPipelineChartQuerypageSize, nextPageToken, filter

Model

functionparams
getModelDefinitionQuerymodelDefinitionName
listModelDefinitionsQuerypageSize, nextPageToken
getUserModelQuerymodelName
listModelsQuerypageSize, nextPageToken
listUserModelsQueryuserName, pageSize, nextPageToken
getUserModelReadmeQuerymodelName
watchUserModelmodelName
createUserModelMutationuserName, payload
updateModelMutationpayload
deleteUserModelMutationmodelName
deployUserModelActionmodelName
undeployUserModeleActionmodelName

Operation

functionparams
getOperationQueryoperationName
checkUntilOperationIsDoenoperationName

Oraganization

functionparams
getOrganizationMembershipQueryorganizationID, userID
getOrganizationQueryorganizationID
getUserMembershipQueryorganizationID, userID
getUserMembershipsQueryuserID
listOrganizationsQuerypageSize, nextPageToken, filter
createOrganizationMutationpayload
deleteOrganizationMutationorganizationName
deleteUserMembershipMutationorganizationID, userID
updateOrganizationMembershipMutationpayload
updateOrganizationMutationpayload
updateUserMembershipMutationpayload

Mgmt

create API token

client.AuthClient.createApiTokenMutation({
  "id": "aa",
  "ttl": -1
}).then((response) => {
  console.log(response.data)
})
.catch(error => {
  console.log(error)
})
functionparams
getUserQueryuserName
getAuthenticatedUserQuery
checkUserIdExistid
getApiTokenQuerytokenName
listApiTokensQuerypageSize, nextPageToken
updateAuthenticatedUserMutationpayload
createApiTokenMutationpayload
deleteApiTokenMutationtokenName
checkNamespaceid

Contribution Guidelines:

Please refer to the Contributing Guidelines for more details.

Release Notes:

Release

Genrate proto-ts

  • run ./generate_proto.sh
  • it will genrate protobuf into dist/protogen-ts

Support:

Contact details for help and support resources. This list isn't exhaustive but covers major aspects usually included in most SDK design documents.

0.0.6

2 days ago

0.0.5

5 days ago

0.0.4

6 days ago

0.0.3

3 months ago

0.0.2

4 months ago

0.0.13

4 months ago

0.0.1

5 months ago