@assistant/actions
TypeScript icon, indicating that this package has built-in type declarations

1.1.0 • Public • Published

Actions API Node.js Client Library

This library provides an easy way to call the Actions API. The library wraps the Actions API.

Quickstart

Installing the client library

npm install @assistant/actions

Using the client library

The code below makes a call to the sendInteraction endpoint to play one round of conversation of a user's Action, using the provided query text:

import {ActionsTestingClient} from '@assistant/actions';

/**
 * Make request to Actions API to send a query to an Action for the
 * given project ID.
 */
async function sendInteraction(projectId = 'your-project-id', queryText = 'example query text') {
  const request = {
    parent: `projects/${projectId}`,
    input: {query: queryText}
  };
  // Create client
  const actionsTestingClient = new ActionsTestingClient();
  // Send request to sendInteraction endpoint to play one round of conversation
  const res = await actionsTestingClient.sendInteraction(request);
  return res[0];
}

The code below makes a call to the writePreview endpoint to updates a user's project preview from draft:

import {ActionsSdkClient} from '@assistant/actions';

/**
 * Make request to Actions API to write preview from draft for the
 * given project ID.
 */
async function writePreviewFromDraft(projectId = 'your-project-id') {
  // Create request payload
  const request = {
    parent: `projects/${projectId}`,
    reviewSettings: {sandbox: {value: true}},
    draft: {}
  };
  const [responsePromise, responseCallback] = getStreamResponsePromise();
  // Create client
  const actionsSdkClient = new ActionsSdkClient();
  // Send write preview request to stream endpoint
  const writePreviewStream = actionsSdkClient.writePreview(responseCallback);
  writePreviewStream.write(request);
  writePreviewStream.end();
  return await responsePromise;
}

/** Gets a resonse promise and callback for a stream request. */
function getStreamResponsePromise() {
  let writeSuccess: any, writeFailure: any;
  const responsePromise = new Promise((resolve, reject) => {
    writeSuccess = resolve;
    writeFailure = reject;
  });
  const responseCallback = (err: any, resp: any) => {
      !err ? writeSuccess(resp) : writeFailure(err);
  }
  return [responsePromise, responseCallback]
}

References & Issues

Make Contributions

Please read and follow the steps in the CONTRIBUTING.md.

License

See LICENSE.

Package Sidebar

Install

npm i @assistant/actions

Weekly Downloads

4

Version

1.1.0

License

Apache-2.0

Unpacked Size

5.05 MB

Total Files

80

Last publish

Collaborators

  • assistant