Skip to content

ai-wordsmith/wordsmith-node-sdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Wordsmith API client for Node.js

Intro to Wordsmith

Wordsmith makes it easy to generate thousands of stories, reports, and articles in the time it takes to write just one. Wordsmith is a natural language generation tool that enables users to turn data into text using dynamic templates. The platform is easy to learn, and powerful enough to make each piece of content totally unique.

How you interact with Wordsmith

The Wordsmith API allows developers to generate new content using the Templates created in the Wordsmith web app by users at your company. Developers can use the API to send new data which will trigger the generation of new text content. You have complete control over when you generate and use the content.

Installation

Run npm install wordsmith-node-sdk --save in your console.

Usage

Every resource is accessible via the wordsmith instance:

var wordsmith = require('wordsmith-node-sdk')('your_api_key', 'your_user_agent');
// wordsmith.{METHOD} or wordsmith.{RESOURCE}.{METHOD}

All resources return a Promise for easy asynchronous management.

Available Resources & Methods

List Projects

Returns an array of Projects

wordsmith.projects.all()
  .then(function(projects) {
    // do something with projects
  })
  .catch(function(error) {
    // deal with errors
  });

Find a Project

Returns a specific Project based on its slug-name

wordsmith.projects.find('YOUR_PROJECT_SLUG')
  .then(function(project) {
    // do something with project
  })
  .catch(function(error) {
    // deal with errors
  });

Get the data schema of a Project

Returns a the data schema of a specific Project. The data schema details the data that must be passed when generating content (see below).

wordsmith.projects.find('YOUR_PROJECT_SLUG')
  .then(function(project) {
    return project.schema;
  })
  .then(function(schema) {
    // do something with schema
  })
  .catch(function(error) {
    // deal with errors
  });

/*
Schema:

  {
    a: "Number",
    b: "Number",
    c: "Number"
  }
*/

List Templates

Returns an array of Templates

wordsmith.projects.find('YOUR_PROJECT_SLUG')
  .then(function(project) {
    return project.templates.all();
  })
  .then(function(templates) {
    // do something with templates
  })
  .catch(function(error) {
    // deal with errors
  });

Find a Template

Returns a single Template based on its slug-name

wordsmith.projects.find('YOUR_PROJECT_SLUG')
  .then(function(project) {
    return project.templates.find('YOUR_TEMPLATE_SLUG');
  })
  .then(function(template) {
    // do something with template
  })
  .catch(function(error) {
    // deal with errors
  });

Generate Content

Turns data into narrative content. Data should be in the form of an object with keys for each data variable your Template uses. To see which keys are required, look at the data schema returned by project.schema above.

wordsmith.projects.find('YOUR_PROJECT_SLUG')
  .then(function(project) {
    return project.templates.find('YOUR_TEMPLATE_SLUG');
  })
  .then(function(template) {
    return template.generate(YOUR_DATA_OBJECT);
  })
  .then(function(content) {
    // do something with content
  })
  .catch(function(error) {
    // deal with errors
  });

/*
Data object example:

    {
      a: 1,
      b: 2,
      c: 3
    }
*/

Test Generate Content

Test your implementation of the generate content function. Will return with an error or a success message and will not bill your organization.

wordsmith.projects.find('YOUR_PROJECT_SLUG')
  .then(function(project) {
    return project.templates.find('YOUR_TEMPLATE_SLUG');
  })
  .then(function(template) {
    return template.test(YOUR_DATA_OBJECT);
  })
  .then(function(content) {
    // do something with content
  })
  .catch(function(error) {
    // deal with errors
  });

/*
Data object example:

    {
      a: 1,
      b: 2,
      c: 3
    }
*/

Development

Run tests using npm test from the root of the repo.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/automatedinsightsinc/wordsmith-node-sdk

About

A wrapper around the Wordsmith API for Node

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published